montecarlo/metropolishastingsmontecarlo.h
00001 #ifndef MONTECARLOMETROPOLISHASTINGS_H
00002 #define MONTECARLOMETROPOLISHASTINGS_H
00003 #include <armadillo>
00004 using namespace arma;
00005 
00006 #include "montecarlo.h"
00007 #include "../hamiltonian/hamiltonian.h"
00008 #include "../wavefunction/wavefunction.h"
00009 
00013 class MetropolisHastingsMonteCarlo : public MonteCarlo
00014 {
00015 public:
00016     MetropolisHastingsMonteCarlo(Config *config);
00017     void sample(int nCycles);
00018 
00019     ~MetropolisHastingsMonteCarlo();
00020 private:
00021     int myRank;
00022 //    vec waveGradientOld;
00023 //    vec waveGradientNew;
00024     vec quantumForceNew;
00025     vec quantumForceOld;
00026 //    vec forceVectorSum;
00027 //    vec forceVectorDiff ;
00028     vec2 positionDiff ;
00029     Hamiltonian* hamiltonian;
00030     bool firstSample;
00031     double diffConstant;
00032 };
00033 
00034 #endif // MONTECARLOMETROPOLISHASTINGS_H
 All Classes Functions