NAMD
FreeEnergyLambda.h
Go to the documentation of this file.
1 
7 // written by David Hurwitz, March to May 1998.
8 
9 #if !defined(LAMBDA_HPP)
10  #define LAMBDA_HPP
11 
13 private:
14 
15  // don't forget to change operator= if member variables change
16  int m_NumSteps; // for pmf block
17  int m_NumEquilSteps; // for mcti block
18  int m_NumAccumSteps; // "
19  int m_NumRepeats; // "
20  int m_NumPrintSteps; // for pmf & mcti blocks
21  int m_StartStep; // "
22  int m_StopStep; // "
23  double m_LambdaKf; // "
24  double m_LambdaRef; // "
25  feptask_t m_Task; // "
26  double m_Sum_dU_dLambda; // for accumulating dU/dLambda
27  int m_Num_dU_dLambda; // number averaged
28  double m_MCTI_Integration; // for accumulating <dU/dLambda> * dLambda
29 
30  static int m_CurrStep; // for all pmf & mcti blocks
31 
32 public:
34  void Init(ALambdaControl& PriorBlock);
35  double GetLambdaKf();
36  double GetLambdaRef();
37  Bool_t IsActive();
44  void PrintHeader(double dT);
45  void PrintLambdaHeader(double dT);
46  void IncCurrStep() {m_CurrStep++;}
48  void GetTaskStr(char* Str);
49  void GetPaddedTaskStr(char* Str);
50  void Integrate_MCTI();
51  void Accumulate(double dU_dLambda);
52  double GetIntegration();
53  double GetAccumulation();
54  void ZeroAccumulator() {
55  m_Sum_dU_dLambda = 0.0;
56  m_Num_dU_dLambda = 0;
57  }
58 
59  int GetNumSteps();
60  int GetNumStepsSoFar() {return(m_CurrStep-m_StartStep);}
62  int GetNum_dU_dLambda() {return(m_Num_dU_dLambda);}
63  void SetNumSteps(int Steps) {m_NumSteps=Steps;}
64  void SetNumEquilSteps(int Steps) {m_NumEquilSteps=Steps;}
65  void SetNumAccumSteps(int Steps) {m_NumAccumSteps=Steps;}
66  void SetNumPrintSteps(int Steps) {m_NumPrintSteps=Steps;}
67  void SetNumRepeats(int Repeats) {m_NumRepeats=Repeats;}
68  void SetStartStep(int Step) {m_StartStep=Step;}
69  void SetStopStep(int Step) {m_StopStep=Step;}
70  void SetLambdaKf(double LambdaKf) {m_LambdaKf=LambdaKf;}
71  void SetLambdaRef(double LambdaRef){m_LambdaRef=LambdaRef;}
72  void SetTask(feptask_t Task) {m_Task=Task;}
73  feptask_t GetTask() {return(m_Task);}
74 
75 private:
76  Bool_t IsLastStep();
77  int GetLastStep();
78 };
79 
80 #endif
81 
void SetNumEquilSteps(int Steps)
void GetPaddedTaskStr(char *Str)
void GetTaskStr(char *Str)
double GetIntegration()
void SetNumSteps(int Steps)
void SetLambdaRef(double LambdaRef)
void PrintHeader(double dT)
Bool_t IsTimeToPrint_dU_dLambda()
double GetAccumulation()
void SetTask(feptask_t Task)
void SetLambdaKf(double LambdaKf)
feptask_t GetTask()
Bool_t
void PrintLambdaHeader(double dT)
feptask_t
void SetStopStep(int Step)
void SetNumPrintSteps(int Steps)
void Accumulate(double dU_dLambda)
void SetNumRepeats(int Repeats)
ALambdaControl & operator=(ALambdaControl &PmfBlock)
void SetNumAccumSteps(int Steps)
Bool_t IsTimeToPrint()
void Init(ALambdaControl &PriorBlock)
void SetStartStep(int Step)
Bool_t IsTimeToClearAccumulator()
Bool_t IsEndOf_MCTI_Step()