#include <CambridgeThreeBodyCorrelationFunction.h>
Public Member Functions | |
CambridgeThreeBodyCorrelationFunction () | |
~CambridgeThreeBodyCorrelationFunction () | |
void | initializeParameters (int electron_nucleus, int electron_electron, Array1D< double > &Parameters, int power, double max_dist) |
Initializes the correlation function with a specified set of parameters. | |
bool | setElectron (bool first, Array1D< double > &xyz, double dist) |
void | evaluate (Array1D< double > &xyz12, double r12) |
Evaluates the correlation function and its first two derivatives at . | |
double | getFunctionValue () |
Gets the value of the correlation function for the last evaluated . | |
double | getFunctionValue (double r12, double r1, double r2) |
Evaluate the function as fast as possible by skipping the evaluation of the derivatives. | |
double | get_p_a (int ai) |
Partial derivative of function with respect to parameter ai. | |
double | getLapPoly (double term, double lterm, double mterm, double nterm, double l2term, double m2term, double n2term, double lnterm, double mnterm, double p1, double p2, double d1p1, double d1p2, double d2p1, double d2p2) |
Array1D< double > * | getElectron1Gradient () |
Gets the gradient of the correlation function for electron 1 at the last evaluated configuration. | |
Array1D< double > * | getElectron2Gradient () |
Gets the gradient of the correlation function for electron 2 at the last evaluated configuration. | |
double | get_p2_xa (bool e1, int xyz, int ai) |
Second Partial derivative of function with respect to parameters x and ai. | |
double | getLaplacianValue () |
Gets the value of the Laplacian of the correlation function with respect to electrons one and two at the last evaluated configuration. | |
double | get_p3_xxa (int ai) |
Third Partial derivative of function with respect to parameters x, x, and ai. | |
double | getCutoffDist () |
Returns the cutoff for the electron-nucleus distance for this function. | |
void | print (ostream &strm) |
Override this function if there's some Jastrow specific message you want to print. | |
Protected Attributes | |
double | FunctionValue |
Array1D< double > | grad1 |
Array1D< double > | grad2 |
double | LaplacianValue |
Array1D< double > | p_a |
Array2D< double > | p2_x1a |
Array2D< double > | p2_x2a |
Array1D< double > | p2_x1L |
Array1D< double > | p2_x2L |
Array1D< double > | p3_xxa |
Private Attributes | |
double * | d1pow |
double * | d2pow |
double * | r12pow |
double * | d1pow1 |
double * | d2pow1 |
double * | r12pow1 |
double * | d1pow2 |
double * | d2pow2 |
double * | r12pow2 |
double * | coeffs |
int | Nen |
int | Nee |
int | C |
double | cutoff |
double | L |
double | pre1 |
double | pre2 |
double | d1pre1 |
double | d1pre2 |
double | d2pre1 |
double | d2pre2 |
double | pre1_L |
double | pre2_L |
double | d1pre1_L |
double | d1pre2_L |
double | d2pre1_L |
double | d2pre2_L |
double | dU_L |
double | dU_Lr |
double | dU_Lrr |
double | dU_dr1 |
double | dU_dr2 |
double | dU_dr12 |
double | r1 |
double | r2 |
double | r12 |
double | d1 |
double | d2 |
Array1D< double > | r1v |
Array1D< double > | r2v |
Array1D< double > | r12v |
Definition at line 24 of file CambridgeThreeBodyCorrelationFunction.h.
CambridgeThreeBodyCorrelationFunction::CambridgeThreeBodyCorrelationFunction | ( | ) |
CambridgeThreeBodyCorrelationFunction::~CambridgeThreeBodyCorrelationFunction | ( | ) |
void CambridgeThreeBodyCorrelationFunction::initializeParameters | ( | int | electron_nucleus, | |
int | electron_electron, | |||
Array1D< double > & | Parameters, | |||
int | power, | |||
double | max_dist | |||
) | [virtual] |
Initializes the correlation function with a specified set of parameters.
This must be called every time the parameters are changed.
Implements QMCThreeBodyCorrelationFunction.
Definition at line 8 of file CambridgeThreeBodyCorrelationFunction.cpp.
References QMCFlags::a_diag, Array2D< T >::allocate(), Array1D< T >::allocate(), C, QMCFlags::calculate_Derivatives, coeffs, cutoff, d1pow, d1pow1, d1pow2, d2pow, d2pow1, d2pow2, Array1D< T >::dim1(), QMCInput::flags, globalInput, grad1, grad2, L, Nee, Nen, p2_x1a, p2_x1L, p2_x2a, p2_x2L, p3_xxa, p_a, print(), r12pow, r12pow1, and r12pow2.
bool CambridgeThreeBodyCorrelationFunction::setElectron | ( | bool | first, | |
Array1D< double > & | xyz, | |||
double | dist | |||
) | [virtual] |
Implements QMCThreeBodyCorrelationFunction.
Definition at line 414 of file CambridgeThreeBodyCorrelationFunction.cpp.
References C, QMCFlags::calculate_Derivatives, d1, d1pow, d1pow1, d1pow2, d1pre1, d1pre1_L, d1pre2, d1pre2_L, d2, d2pow, d2pow1, d2pow2, d2pre1, d2pre1_L, d2pre2, d2pre2_L, dU_L, dU_Lrr, QMCInput::flags, globalInput, L, Nen, pre1, pre1_L, pre2, pre2_L, r1, r1v, r2, and r2v.
void CambridgeThreeBodyCorrelationFunction::evaluate | ( | Array1D< double > & | xyz12, | |
double | r12 | |||
) | [virtual] |
Evaluates the correlation function and its first two derivatives at .
Implements QMCThreeBodyCorrelationFunction.
Definition at line 151 of file CambridgeThreeBodyCorrelationFunction.cpp.
References QMCFlags::calculate_Derivatives, coeffs, d1, d1pow, d1pow1, d1pow2, d1pre1, d1pre1_L, d1pre2, d1pre2_L, d2, d2pow, d2pow1, d2pow2, d2pre1, d2pre1_L, d2pre2, d2pre2_L, dU_dr1, dU_dr12, dU_dr2, dU_L, dU_Lrr, QMCInput::flags, FunctionValue, getLapPoly(), globalInput, grad1, grad2, L, LaplacianValue, Nee, Nen, QMCFlags::optimize_L, p2_x1a, p2_x1L, p2_x2a, p2_x2L, p3_xxa, p_a, pre1, pre1_L, pre2, pre2_L, r12, r12pow, r12pow1, r12pow2, r12v, r1v, and r2v.
double CambridgeThreeBodyCorrelationFunction::getFunctionValue | ( | ) | [virtual] |
Gets the value of the correlation function for the last evaluated .
Implements QMCThreeBodyCorrelationFunction.
Definition at line 480 of file CambridgeThreeBodyCorrelationFunction.cpp.
References FunctionValue.
double CambridgeThreeBodyCorrelationFunction::getFunctionValue | ( | double | r12, | |
double | r1, | |||
double | r2 | |||
) | [virtual] |
double CambridgeThreeBodyCorrelationFunction::get_p_a | ( | int | ai | ) | [virtual] |
Partial derivative of function with respect to parameter ai.
Implements QMCThreeBodyCorrelationFunction.
Definition at line 527 of file CambridgeThreeBodyCorrelationFunction.cpp.
References d1, d2, dU_L, QMCInput::flags, globalInput, QMCFlags::optimize_L, and p_a.
double CambridgeThreeBodyCorrelationFunction::getLapPoly | ( | double | term, | |
double | lterm, | |||
double | mterm, | |||
double | nterm, | |||
double | l2term, | |||
double | m2term, | |||
double | n2term, | |||
double | lnterm, | |||
double | mnterm, | |||
double | p1, | |||
double | p2, | |||
double | d1p1, | |||
double | d1p2, | |||
double | d2p1, | |||
double | d2p2 | |||
) |
Array1D< double > * CambridgeThreeBodyCorrelationFunction::getElectron1Gradient | ( | ) | [virtual] |
Gets the gradient of the correlation function for electron 1 at the last evaluated configuration.
Implements QMCThreeBodyCorrelationFunction.
Definition at line 540 of file CambridgeThreeBodyCorrelationFunction.cpp.
References grad1.
Array1D< double > * CambridgeThreeBodyCorrelationFunction::getElectron2Gradient | ( | ) | [virtual] |
Gets the gradient of the correlation function for electron 2 at the last evaluated configuration.
Implements QMCThreeBodyCorrelationFunction.
Definition at line 545 of file CambridgeThreeBodyCorrelationFunction.cpp.
References grad2.
double CambridgeThreeBodyCorrelationFunction::get_p2_xa | ( | bool | e1, | |
int | xyz, | |||
int | ai | |||
) | [virtual] |
Second Partial derivative of function with respect to parameters x and ai.
Implements QMCThreeBodyCorrelationFunction.
Definition at line 550 of file CambridgeThreeBodyCorrelationFunction.cpp.
References d1, d2, QMCInput::flags, globalInput, QMCFlags::optimize_L, p2_x1a, p2_x1L, p2_x2a, and p2_x2L.
double CambridgeThreeBodyCorrelationFunction::getLaplacianValue | ( | ) | [virtual] |
Gets the value of the Laplacian of the correlation function with respect to electrons one and two at the last evaluated configuration.
Implements QMCThreeBodyCorrelationFunction.
Definition at line 568 of file CambridgeThreeBodyCorrelationFunction.cpp.
References LaplacianValue.
double CambridgeThreeBodyCorrelationFunction::get_p3_xxa | ( | int | ai | ) | [virtual] |
Third Partial derivative of function with respect to parameters x, x, and ai.
Implements QMCThreeBodyCorrelationFunction.
Definition at line 573 of file CambridgeThreeBodyCorrelationFunction.cpp.
References d1, d2, dU_Lrr, QMCInput::flags, globalInput, QMCFlags::optimize_L, and p3_xxa.
double CambridgeThreeBodyCorrelationFunction::getCutoffDist | ( | ) | [virtual] |
Returns the cutoff for the electron-nucleus distance for this function.
Implements QMCThreeBodyCorrelationFunction.
Definition at line 586 of file CambridgeThreeBodyCorrelationFunction.cpp.
References cutoff.
void CambridgeThreeBodyCorrelationFunction::print | ( | ostream & | strm | ) | [virtual] |
Override this function if there's some Jastrow specific message you want to print.
It will be called right after the Jastrow is initialized.
Reimplemented from QMCThreeBodyCorrelationFunction.
Definition at line 591 of file CambridgeThreeBodyCorrelationFunction.cpp.
References C, coeffs, cutoff, QMCInput::flags, globalInput, L, Nee, Nen, and QMCFlags::optimize_L.
Referenced by initializeParameters().
double CambridgeThreeBodyCorrelationFunction::FunctionValue [protected] |
Definition at line 27 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), and getFunctionValue().
Array1D<double> CambridgeThreeBodyCorrelationFunction::grad1 [protected] |
Definition at line 28 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), getElectron1Gradient(), initializeParameters(), and ~CambridgeThreeBodyCorrelationFunction().
Array1D<double> CambridgeThreeBodyCorrelationFunction::grad2 [protected] |
Definition at line 29 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), getElectron2Gradient(), initializeParameters(), and ~CambridgeThreeBodyCorrelationFunction().
double CambridgeThreeBodyCorrelationFunction::LaplacianValue [protected] |
Definition at line 30 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), and getLaplacianValue().
Array1D<double> CambridgeThreeBodyCorrelationFunction::p_a [protected] |
Definition at line 32 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), get_p_a(), initializeParameters(), and ~CambridgeThreeBodyCorrelationFunction().
Array2D<double> CambridgeThreeBodyCorrelationFunction::p2_x1a [protected] |
Definition at line 33 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), get_p2_xa(), initializeParameters(), and ~CambridgeThreeBodyCorrelationFunction().
Array2D<double> CambridgeThreeBodyCorrelationFunction::p2_x2a [protected] |
Definition at line 34 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), get_p2_xa(), initializeParameters(), and ~CambridgeThreeBodyCorrelationFunction().
Array1D<double> CambridgeThreeBodyCorrelationFunction::p2_x1L [protected] |
Definition at line 35 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), get_p2_xa(), initializeParameters(), and ~CambridgeThreeBodyCorrelationFunction().
Array1D<double> CambridgeThreeBodyCorrelationFunction::p2_x2L [protected] |
Definition at line 36 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), get_p2_xa(), initializeParameters(), and ~CambridgeThreeBodyCorrelationFunction().
Array1D<double> CambridgeThreeBodyCorrelationFunction::p3_xxa [protected] |
Definition at line 37 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), get_p3_xxa(), initializeParameters(), and ~CambridgeThreeBodyCorrelationFunction().
double* CambridgeThreeBodyCorrelationFunction::d1pow [private] |
Definition at line 40 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by CambridgeThreeBodyCorrelationFunction(), evaluate(), getFunctionValue(), initializeParameters(), setElectron(), and ~CambridgeThreeBodyCorrelationFunction().
double* CambridgeThreeBodyCorrelationFunction::d2pow [private] |
Definition at line 41 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by CambridgeThreeBodyCorrelationFunction(), evaluate(), getFunctionValue(), initializeParameters(), setElectron(), and ~CambridgeThreeBodyCorrelationFunction().
double* CambridgeThreeBodyCorrelationFunction::r12pow [private] |
Definition at line 42 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by CambridgeThreeBodyCorrelationFunction(), evaluate(), getFunctionValue(), initializeParameters(), and ~CambridgeThreeBodyCorrelationFunction().
double* CambridgeThreeBodyCorrelationFunction::d1pow1 [private] |
Definition at line 44 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by CambridgeThreeBodyCorrelationFunction(), evaluate(), initializeParameters(), setElectron(), and ~CambridgeThreeBodyCorrelationFunction().
double* CambridgeThreeBodyCorrelationFunction::d2pow1 [private] |
Definition at line 45 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by CambridgeThreeBodyCorrelationFunction(), evaluate(), initializeParameters(), setElectron(), and ~CambridgeThreeBodyCorrelationFunction().
double* CambridgeThreeBodyCorrelationFunction::r12pow1 [private] |
Definition at line 46 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by CambridgeThreeBodyCorrelationFunction(), evaluate(), initializeParameters(), and ~CambridgeThreeBodyCorrelationFunction().
double* CambridgeThreeBodyCorrelationFunction::d1pow2 [private] |
Definition at line 48 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by CambridgeThreeBodyCorrelationFunction(), evaluate(), initializeParameters(), setElectron(), and ~CambridgeThreeBodyCorrelationFunction().
double* CambridgeThreeBodyCorrelationFunction::d2pow2 [private] |
Definition at line 49 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by CambridgeThreeBodyCorrelationFunction(), evaluate(), initializeParameters(), setElectron(), and ~CambridgeThreeBodyCorrelationFunction().
double* CambridgeThreeBodyCorrelationFunction::r12pow2 [private] |
Definition at line 50 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by CambridgeThreeBodyCorrelationFunction(), evaluate(), initializeParameters(), and ~CambridgeThreeBodyCorrelationFunction().
double* CambridgeThreeBodyCorrelationFunction::coeffs [private] |
Definition at line 52 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by CambridgeThreeBodyCorrelationFunction(), evaluate(), getFunctionValue(), initializeParameters(), print(), and ~CambridgeThreeBodyCorrelationFunction().
int CambridgeThreeBodyCorrelationFunction::Nen [private] |
Definition at line 54 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), getFunctionValue(), initializeParameters(), print(), and setElectron().
int CambridgeThreeBodyCorrelationFunction::Nee [private] |
Definition at line 54 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), getFunctionValue(), initializeParameters(), and print().
int CambridgeThreeBodyCorrelationFunction::C [private] |
Definition at line 54 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by getFunctionValue(), initializeParameters(), print(), and setElectron().
double CambridgeThreeBodyCorrelationFunction::cutoff [private] |
Definition at line 55 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by getCutoffDist(), initializeParameters(), and print().
double CambridgeThreeBodyCorrelationFunction::L [private] |
Definition at line 56 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), getFunctionValue(), getLapPoly(), initializeParameters(), print(), and setElectron().
double CambridgeThreeBodyCorrelationFunction::pre1 [private] |
Definition at line 58 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), and setElectron().
double CambridgeThreeBodyCorrelationFunction::pre2 [private] |
Definition at line 58 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), and setElectron().
double CambridgeThreeBodyCorrelationFunction::d1pre1 [private] |
Definition at line 59 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), and setElectron().
double CambridgeThreeBodyCorrelationFunction::d1pre2 [private] |
Definition at line 59 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), and setElectron().
double CambridgeThreeBodyCorrelationFunction::d2pre1 [private] |
Definition at line 60 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), and setElectron().
double CambridgeThreeBodyCorrelationFunction::d2pre2 [private] |
Definition at line 60 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), and setElectron().
double CambridgeThreeBodyCorrelationFunction::pre1_L [private] |
Definition at line 62 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), and setElectron().
double CambridgeThreeBodyCorrelationFunction::pre2_L [private] |
Definition at line 62 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), and setElectron().
double CambridgeThreeBodyCorrelationFunction::d1pre1_L [private] |
Definition at line 63 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), and setElectron().
double CambridgeThreeBodyCorrelationFunction::d1pre2_L [private] |
Definition at line 63 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), and setElectron().
double CambridgeThreeBodyCorrelationFunction::d2pre1_L [private] |
Definition at line 64 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), and setElectron().
double CambridgeThreeBodyCorrelationFunction::d2pre2_L [private] |
Definition at line 64 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), and setElectron().
double CambridgeThreeBodyCorrelationFunction::dU_L [private] |
Definition at line 66 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), get_p_a(), and setElectron().
double CambridgeThreeBodyCorrelationFunction::dU_Lr [private] |
Definition at line 66 of file CambridgeThreeBodyCorrelationFunction.h.
double CambridgeThreeBodyCorrelationFunction::dU_Lrr [private] |
Definition at line 66 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), get_p3_xxa(), and setElectron().
double CambridgeThreeBodyCorrelationFunction::dU_dr1 [private] |
Definition at line 67 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), and getLapPoly().
double CambridgeThreeBodyCorrelationFunction::dU_dr2 [private] |
Definition at line 67 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), and getLapPoly().
double CambridgeThreeBodyCorrelationFunction::dU_dr12 [private] |
Definition at line 67 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), and getLapPoly().
double CambridgeThreeBodyCorrelationFunction::r1 [private] |
Definition at line 69 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by getLapPoly(), and setElectron().
double CambridgeThreeBodyCorrelationFunction::r2 [private] |
Definition at line 69 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by getLapPoly(), and setElectron().
double CambridgeThreeBodyCorrelationFunction::r12 [private] |
Definition at line 69 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), and getLapPoly().
double CambridgeThreeBodyCorrelationFunction::d1 [private] |
Definition at line 70 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), get_p2_xa(), get_p3_xxa(), get_p_a(), getFunctionValue(), and setElectron().
double CambridgeThreeBodyCorrelationFunction::d2 [private] |
Definition at line 70 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), get_p2_xa(), get_p3_xxa(), get_p_a(), getFunctionValue(), and setElectron().
Array1D<double> CambridgeThreeBodyCorrelationFunction::r1v [private] |
Definition at line 72 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), getLapPoly(), setElectron(), and ~CambridgeThreeBodyCorrelationFunction().
Array1D<double> CambridgeThreeBodyCorrelationFunction::r2v [private] |
Definition at line 73 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), getLapPoly(), setElectron(), and ~CambridgeThreeBodyCorrelationFunction().
Array1D<double> CambridgeThreeBodyCorrelationFunction::r12v [private] |
Definition at line 74 of file CambridgeThreeBodyCorrelationFunction.h.
Referenced by evaluate(), getLapPoly(), and ~CambridgeThreeBodyCorrelationFunction().