sisi4s
Loading...
Searching...
No Matches
FiniteSizeCorrection.hpp
Go to the documentation of this file.
1#ifndef FINITE_SIZE_CORRECTION_DEFINED
2#define FINITE_SIZE_CORRECTION_DEFINED
3
6#include <math/Vector.hpp>
7namespace sisi4s {
9public:
11 FiniteSizeCorrection(std::vector<Argument> const &argumentList);
12 virtual ~FiniteSizeCorrection();
13
17 virtual void run();
18
22 virtual void dryRun();
23
24protected:
25 int NG;
26 static constexpr int DEFAULT_NUM_FIBONACCI = 128;
27 std::vector<double> GLengths;
28 std::vector<double> averageSGs;
29 std::vector<double> meanErrorSG;
30 std::vector<double> structureFactors;
31 std::vector<double> VofG;
32 double GC;
33 double inter3D;
34 double sum3D;
35 class Momentum;
38 void readFromFile();
40 // template <typename F>
41 // F calculateStructureFactor(Tensor<F> &Vabij);
42
44
45 void constructFibonacciGrid(double R, int N);
46 void interpolation3D();
47 bool IsInSmallBZ(Vector<double> point,
48 double scale,
49 std::vector<sisi4s::Vector<double>> smallBZ);
50 double SGxVG(sisi4s::Inter1D<double> Int1d, double x);
51 double
52 integrate(sisi4s::Inter1D<double> Int1d, double start, double end, int steps);
53 double simpson(sisi4s::Inter1D<double> Int1d, double x, double h);
55
57 void dryInterpolation3D();
59
60 void extrapolation(double minG, double maxG, int basisSetExtrapolation);
61 double simplestWindow(double Gmin, double Gmax, double G);
62 double integrateSimplestWindow(double Gmin, double Gmax);
63 double leastSquareFit(std::vector<double> fitabsG, std::vector<double> fitSF);
64
66};
67} // namespace sisi4s
68
69#endif
#define ALGORITHM_REGISTRAR_DECLARATION(NAME)
Auxiliary macro declaring the algorithm registrar for the algorithm type of the given name....
Definition Algorithm.hpp:169
Definition FiniteSizeCorrection.cxx:77
Definition Algorithm.hpp:26
Definition FiniteSizeCorrection.hpp:8
void calculateComplexStructureFactor()
Definition FiniteSizeCorrection.cxx:352
static constexpr int DEFAULT_NUM_FIBONACCI
Definition FiniteSizeCorrection.hpp:26
double SGxVG(sisi4s::Inter1D< double > Int1d, double x)
Definition FiniteSizeCorrection.cxx:969
void dryCalculateFiniteSizeCorrection()
Definition FiniteSizeCorrection.cxx:1036
void interpolation3D()
Definition FiniteSizeCorrection.cxx:555
void dryInterpolation3D()
Definition FiniteSizeCorrection.cxx:920
void calculateFiniteSizeCorrection()
Definition FiniteSizeCorrection.cxx:975
Momentum * fibonacciGrid
Definition FiniteSizeCorrection.hpp:36
std::vector< double > structureFactors
Definition FiniteSizeCorrection.hpp:30
virtual ~FiniteSizeCorrection()
Definition FiniteSizeCorrection.cxx:33
void calculateRealStructureFactor()
Definition FiniteSizeCorrection.cxx:123
double simplestWindow(double Gmin, double Gmax, double G)
std::vector< double > VofG
Definition FiniteSizeCorrection.hpp:31
double GC
Definition FiniteSizeCorrection.hpp:32
void readFromFile()
Definition FiniteSizeCorrection.cxx:109
bool IsInSmallBZ(Vector< double > point, double scale, std::vector< sisi4s::Vector< double > > smallBZ)
Definition FiniteSizeCorrection.cxx:927
std::vector< double > averageSGs
Definition FiniteSizeCorrection.hpp:28
virtual void run()
Calculates the finite size correction.
Definition FiniteSizeCorrection.cxx:35
double integrate(sisi4s::Inter1D< double > Int1d, double start, double end, int steps)
Definition FiniteSizeCorrection.cxx:952
Momentum * cartesianGrid
Definition FiniteSizeCorrection.hpp:37
double leastSquareFit(std::vector< double > fitabsG, std::vector< double > fitSF)
void dryCalculateStructureFactor()
Definition FiniteSizeCorrection.cxx:483
double inter3D
Definition FiniteSizeCorrection.hpp:33
void extrapolation(double minG, double maxG, int basisSetExtrapolation)
void constructFibonacciGrid(double R, int N)
Definition FiniteSizeCorrection.cxx:536
int NG
Definition FiniteSizeCorrection.hpp:25
virtual void dryRun()
Performs a Dry Run.
Definition FiniteSizeCorrection.cxx:62
std::vector< double > meanErrorSG
Definition FiniteSizeCorrection.hpp:29
double sum3D
Definition FiniteSizeCorrection.hpp:34
double integrateSimplestWindow(double Gmin, double Gmax)
std::vector< double > GLengths
Definition FiniteSizeCorrection.hpp:27
Definition Interpolation.hpp:12
Definition Vector.hpp:9
Definition Integration.hpp:24
Definition Algorithm.hpp:10