-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathStepper.h
More file actions
36 lines (29 loc) · 987 Bytes
/
Stepper.h
File metadata and controls
36 lines (29 loc) · 987 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#ifndef _STEPPER_H
#define _STEPPER_H
#include "BigDouble.h"
class SlaterDeterminant;
class LatticeState;
class WaveFunction;
/*! \brief Class to perform a Monte Carlo step, by swaping nearest neighbours spins.
*
*/
class Stepper {
public:
Stepper(LatticeState* latstate, WaveFunction* wav, SlaterDeterminant* amp)
: m_amp(amp),m_latstate(latstate),m_wav(wav) {}
virtual ~Stepper() {}
virtual void Reset()=0;
virtual BigDouble trystep()=0;
virtual void step()=0;
virtual BigDouble weight()=0;
virtual BigDouble weight() const=0;
virtual double transprob()=0;
const SlaterDeterminant* GetAmp() const {return m_amp;}
const LatticeState* GetLatticeState() const {return m_latstate;}
const WaveFunction* GetWaveFunction() const {return m_wav;}
protected:
SlaterDeterminant* m_amp;
LatticeState* m_latstate;
WaveFunction* m_wav;
};
#endif//_STEPPER_H