00001 // QMcBeaver 00002 // 00003 // Constructed by 00004 // 00005 // Michael Todd Feldmann 00006 // and 00007 // David Randall "Chip" Kent IV 00008 // 00009 // Copyright 2000. All rights reserved. 00010 // 00011 // drkent@users.sourceforge.net mtfeldmann@users.sourceforge.net 00012 00013 #ifndef FixedCuspPadeCorrelationFunction_H 00014 #define FixedCuspPadeCorrelationFunction_H 00015 00016 #include "QMCCorrelationFunction.h" 00017 #include "QMCPolynomial.h" 00018 00019 00026 class FixedCuspPadeCorrelationFunction : public QMCCorrelationFunction 00027 { 00028 protected: 00029 double FunctionValue; 00030 double dFunctionValue; 00031 double d2FunctionValue; 00032 00033 private: 00034 Polynomial Numerator; 00035 QMCPolynomial Denominator; 00036 00037 public: 00038 00039 void initializeParameters(Array1D<int> & BeginningIndexOfParameterType, 00040 Array1D<double> &Parameters, 00041 Array1D<int> & BeginningIndexOfConstantType, 00042 Array1D<double> & Constants); 00043 00044 void evaluate( double r ); 00045 00046 bool isSingular(); 00047 00048 Array1D<Complex> getPoles(); 00049 00050 double getFunctionValue(); 00051 double getFunctionValue(double r); 00052 00053 double get_p_a(int ai); 00054 00055 double getFirstDerivativeValue(); 00056 double get_p2_xa(int ai); 00057 00058 double getSecondDerivativeValue(); 00059 double get_p3_xxa(int ai); 00060 00061 Array1D<double> getNumeratorCoeffs(); 00062 00063 Array1D<double> getDenominatorCoeffs(); 00064 00065 void print(ostream& strm); 00066 }; 00067 00068 #endif