00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef ZeroThreeBodyCorrelationFunction_H
00014 #define ZeroThreeBodyCorrelationFunction_H
00015
00016 #include "QMCThreeBodyCorrelationFunction.h"
00017
00023 class ZeroThreeBodyCorrelationFunction : public QMCThreeBodyCorrelationFunction
00024 {
00025 public:
00026
00027 void initializeParameters(int electron_nucleus, int electron_electron,
00028 Array1D<double> &Parameters, int C, double max);
00029
00030 bool setElectron(bool first, Array1D<double> &xyz, double dist);
00031
00032 void evaluate(Array1D<double> &xyz12, double r12);
00033
00034 double getFunctionValue();
00035 double getFunctionValue(double r12, double r1, double r2);
00036 double get_p_a(int ai);
00037
00038 Array1D<double> * getElectron1Gradient();
00039 Array1D<double> * getElectron2Gradient();
00040
00041 double get_p2_xa(bool e1, int xyz, int ai);
00042
00043 double getLaplacianValue();
00044 double get_p3_xxa(int ai);
00045
00046 double getCutoffDist();
00047
00048 private:
00049
00050 Array1D<double> grad1;
00051 Array1D<double> grad2;
00052 };
00053
00054 #endif