CambridgeThreeBodyCorrelationFunction Class Reference

This is the three body correlation function described in Phys Rev B 70, 235119 (2004). More...

#include <CambridgeThreeBodyCorrelationFunction.h>

Inheritance diagram for CambridgeThreeBodyCorrelationFunction:

QMCThreeBodyCorrelationFunction

List of all members.

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 $r$.
double getFunctionValue ()
 Gets the value of the correlation function for the last evaluated $r$.
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


Detailed Description

This is the three body correlation function described in Phys Rev B 70, 235119 (2004).

Definition at line 24 of file CambridgeThreeBodyCorrelationFunction.h.


Constructor & Destructor Documentation

CambridgeThreeBodyCorrelationFunction::CambridgeThreeBodyCorrelationFunction (  ) 

CambridgeThreeBodyCorrelationFunction::~CambridgeThreeBodyCorrelationFunction (  ) 


Member Function Documentation

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]

void CambridgeThreeBodyCorrelationFunction::evaluate ( Array1D< double > &  xyz12,
double  r12 
) [virtual]

double CambridgeThreeBodyCorrelationFunction::getFunctionValue (  )  [virtual]

Gets the value of the correlation function for the last evaluated $r$.

Implements QMCThreeBodyCorrelationFunction.

Definition at line 480 of file CambridgeThreeBodyCorrelationFunction.cpp.

References FunctionValue.

double CambridgeThreeBodyCorrelationFunction::getFunctionValue ( double  r12,
double  r1,
double  r2 
) [virtual]

Evaluate the function as fast as possible by skipping the evaluation of the derivatives.

Implements QMCThreeBodyCorrelationFunction.

Definition at line 485 of file CambridgeThreeBodyCorrelationFunction.cpp.

References C, coeffs, d1, d1pow, d2, d2pow, L, Nee, Nen, and r12pow.

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 
)

Definition at line 373 of file CambridgeThreeBodyCorrelationFunction.cpp.

References dU_dr1, dU_dr12, dU_dr2, L, r1, r12, r12v, r1v, r2, and r2v.

Referenced by evaluate().

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().


Member Data Documentation

Definition at line 27 of file CambridgeThreeBodyCorrelationFunction.h.

Referenced by evaluate(), and getFunctionValue().

Definition at line 30 of file CambridgeThreeBodyCorrelationFunction.h.

Referenced by evaluate(), and getLaplacianValue().

Definition at line 58 of file CambridgeThreeBodyCorrelationFunction.h.

Referenced by evaluate(), and setElectron().

Definition at line 58 of file CambridgeThreeBodyCorrelationFunction.h.

Referenced by evaluate(), and setElectron().

Definition at line 59 of file CambridgeThreeBodyCorrelationFunction.h.

Referenced by evaluate(), and setElectron().

Definition at line 59 of file CambridgeThreeBodyCorrelationFunction.h.

Referenced by evaluate(), and setElectron().

Definition at line 60 of file CambridgeThreeBodyCorrelationFunction.h.

Referenced by evaluate(), and setElectron().

Definition at line 60 of file CambridgeThreeBodyCorrelationFunction.h.

Referenced by evaluate(), and setElectron().

Definition at line 62 of file CambridgeThreeBodyCorrelationFunction.h.

Referenced by evaluate(), and setElectron().

Definition at line 62 of file CambridgeThreeBodyCorrelationFunction.h.

Referenced by evaluate(), and setElectron().

Definition at line 63 of file CambridgeThreeBodyCorrelationFunction.h.

Referenced by evaluate(), and setElectron().

Definition at line 63 of file CambridgeThreeBodyCorrelationFunction.h.

Referenced by evaluate(), and setElectron().

Definition at line 64 of file CambridgeThreeBodyCorrelationFunction.h.

Referenced by evaluate(), and setElectron().

Definition at line 64 of file CambridgeThreeBodyCorrelationFunction.h.

Referenced by evaluate(), and setElectron().

Definition at line 66 of file CambridgeThreeBodyCorrelationFunction.h.

Referenced by evaluate(), get_p_a(), and setElectron().

Definition at line 66 of file CambridgeThreeBodyCorrelationFunction.h.

Definition at line 66 of file CambridgeThreeBodyCorrelationFunction.h.

Referenced by evaluate(), get_p3_xxa(), and setElectron().

Definition at line 67 of file CambridgeThreeBodyCorrelationFunction.h.

Referenced by evaluate(), and getLapPoly().

Definition at line 67 of file CambridgeThreeBodyCorrelationFunction.h.

Referenced by evaluate(), and getLapPoly().

Definition at line 67 of file CambridgeThreeBodyCorrelationFunction.h.

Referenced by evaluate(), and getLapPoly().

Definition at line 69 of file CambridgeThreeBodyCorrelationFunction.h.

Referenced by getLapPoly(), and setElectron().

Definition at line 69 of file CambridgeThreeBodyCorrelationFunction.h.

Referenced by getLapPoly(), and setElectron().

Definition at line 69 of file CambridgeThreeBodyCorrelationFunction.h.

Referenced by evaluate(), and getLapPoly().


The documentation for this class was generated from the following files:

Generated on Sat Jul 5 16:14:00 2008 for QMcBeaver by  doxygen 1.5.6