00001 #ifndef QMCEquilibrationArray_H 00002 #define QMCEquilibrationArray_H 00003 00004 #define EQ 15 00005 00006 #include "QMCExtendedProperties.h" 00007 #include "IeeeMath.h" 00008 00009 using namespace std; 00010 00018 class QMCEquilibrationArray 00019 { 00020 private: 00021 00025 QMCExtendedProperties Eq_Array[EQ]; 00026 00031 QMCExtendedProperties ZeroProperties; 00032 00036 int decorr_objects; 00037 00043 int getDecorrObjectIndex(); 00044 00052 long power(int a,int b); 00053 00057 bool calc_density; 00058 00062 int nBasisFunc; 00063 00067 bool calc_forces; 00068 00073 Array2D<double> ten_thousand_samples; 00074 00075 int over_ten_thousand; 00076 00077 public: 00078 00082 QMCEquilibrationArray(); 00083 00087 void zeroOut(); 00088 00092 void setCalcDensity(bool calcDensity, int nbasisfunctions); 00093 00097 void setCalcForces(bool calcForces, int dim1, int dim2); 00098 00106 void newSample 00107 (QMCProperties * timeStepProperties, double totalWeight, int nWalkers); 00108 00114 QMCProperties * chooseDecorrObject(); 00115 00122 Stopwatch * getPropagationStopwatch(); 00123 00130 Stopwatch * getEquilibrationStopwatch(); 00131 00136 void startTimers(); 00137 00141 void stopTimers(); 00142 00147 void toXML(ostream& strm); 00148 00154 bool readXML(istream& strm); 00155 00156 }; 00157 00158 #endif