FreeEnergyLambdMgr.h

Go to the documentation of this file.
00001 
00007 //-----------------------------------------------------------------------------
00008 // ALambdaManager contains a (potentially long) list of LambdaControl objects.
00009 // written by David Hurwitz, March to May 1998.
00010 //-----------------------------------------------------------------------------
00011 #if !defined(LAMBDMGR_HPP)
00012   #define LAMBDMGR_HPP
00013 
00014 const int kLambdaNumToStart = 16; // to start, there's room for this num objects.
00015 const int kLambdaMultiplier = 4;  // each time array size is exceeded,
00016                                   // its size is increased by this many times.
00017 
00018 class ALambdaManager {
00019 private:
00020   ALambdaControl*  m_pPmfBlocks;  // the list of objects
00021   int  m_NumObjects;              // the number of objects in the list
00022   int  m_MaxNum;                  // the maximum number of objects allowed in
00023                                   // the list without allocating more memory
00024   int  m_ActiveIndex;             // keep track of which LambdaControl is active
00025   ALambdaControl m_Dummy;
00026 
00027 public:
00028   ALambdaManager();
00029   ~ALambdaManager();
00030   ALambdaControl&  operator[] (int index);
00031   void    Clear();
00032   int     Add(ALambdaControl& PmfBlock);
00033   int     GetNumObjects() {return(m_NumObjects);}
00034   Bool_t  GetLambdas(double& LambdaKf, double& LambdaRef);
00035   Bool_t  IsTimeToPrint();
00036   Bool_t  IsFirstStep();
00037   Bool_t  IsTimeToPrint_dU_dLambda();
00038   Bool_t  IsTimeToClearAccumulator();
00039   Bool_t  IsEndOf_MCTI_Step();
00040   Bool_t  IsEndOf_MCTI();
00041   int     GetNumStepsSoFar();
00042   int     GetNumAccumStepsSoFar();
00043   void    PrintHeader(double dT);
00044   void    PrintLambdaHeader(double dT);
00045   void    Print_dU_dLambda_Summary(double Sum_dU_dLambdas);
00046   void    PrintSomeSpaces();
00047   void    Print_MCTI_Integration();
00048   void    IncCurrStep() {m_Dummy.IncCurrStep();}
00049   int     GetTotalNumSteps();
00050   void    Integrate_MCTI();
00051   void    Accumulate(double dU_dLambda);
00052   double  GetAccumulation();
00053   double  GetIntegration();
00054   void    ZeroAccumulator();
00055   int     GetNum_dU_dLambda();
00056 };
00057 
00058 #endif
00059 

Generated on Wed Nov 22 01:17:14 2017 for NAMD by  doxygen 1.4.7