jastrow/jastrow.h
00001 #ifndef JASTROW_H
00002 #define JASTROW_H
00003 
00004 #include <armadillo>
00005 
00006 using namespace arma;
00007 
00008 class Config;
00009 
00013 class Jastrow
00014 {
00015 public:
00016     Jastrow(Config * config);
00017 
00018     double evaluate(vec2 r[]);
00019     double ratio(vec2 &rNew, int movedParticle);
00020     void setParameters(double *parameters);
00021     void calculateDistances(vec2 r[]);
00022     void initialize(vec2 positions[]);
00023     void acceptMove(int movedParticle);
00024     double argument(int i, int j, mat &distances);
00025 
00026     void gradient(vec2 r[], vec &rGradient);
00027     void rejectMove();
00028     ~Jastrow();
00029     double laplacePartial(vec2 r[]);
00030 private:
00031     int nParticles;
00032     int nDimensions;
00033     double beta;
00034     mat a;
00035 
00036     mat distancesOld;
00037     mat distancesNew;
00038     mat jastrowArgumentsOld;
00039     mat jastrowArgumentsNew;
00040     vec jastrowGradient;
00041     vec2 rpiVec;
00042 
00043     vec2 *rOld;
00044     vec2 *rNew;
00045 };
00046 
00047 #endif // JASTROW_H
 All Classes Functions