00001 // QMcBeaver 00002 // 00003 // Constructed by 00004 // 00005 // Michael Todd Feldmann 00006 // and 00007 // David Randall "Chip" Kent IV 00008 // 00009 // Copyright 2000-2. All rights reserved. 00010 // 00011 // drkent@users.sourceforge.net mtfeldmann@users.sourceforge.net 00012 00013 #ifndef QMCDerivativeProperties_H 00014 #define QMCDerivativeProperties_H 00015 00016 #include "QMCProperties.h" 00017 #include "QMCPropertyArrays.h" 00018 00024 class QMCDerivativeProperties 00025 { 00026 public: 00034 QMCDerivativeProperties(QMCProperties * properties, 00035 QMCPropertyArrays * fwProperties, 00036 double dt); 00037 00043 double getEffectiveTimeStep(); 00044 00051 double getEffectiveTimeStepVariance(); 00052 00059 double getEffectiveTimeStepStandardDeviation(); 00060 00070 double getVirialRatio(int whichFW); 00071 00078 double getVirialRatioVariance(int whichFW); 00079 00087 double getVirialRatioStandardDeviation(int whichFW); 00088 00089 Array1D<double> getCorrelatedSamples(int whichKind); 00090 00098 double getParameterValue(); 00099 double getSampleVariance(); 00100 00105 Array1D<double> getParameterGradient(); 00106 00111 Array2D<double> getParameterHessian(); 00112 00117 Array2D<double> getParameterHamiltonian(); 00118 00123 Array2D<double> getParameterOverlap(); 00124 00125 00129 friend ostream& operator <<(ostream& strm, QMCDerivativeProperties &rhs); 00130 00131 private: 00132 bool typePRL; 00133 QMCProperties * properties; 00134 QMCPropertyArrays * fwProperties; 00135 double dt; 00136 }; 00137 00138 #endif