QMCThreeBodyJastrow Class Reference

This class calculates the value of the three body part of the Jastrow function and its first two derivatives. More...

#include <QMCThreeBodyJastrow.h>

List of all members.

Public Member Functions

 QMCThreeBodyJastrow ()
 ~QMCThreeBodyJastrow ()
void initialize (QMCInput *input)
 Initializes the class with the data controlling the calculation.
void evaluate (QMCJastrowParameters &JP, QMCWalkerData *wData, Array2D< double > &X)
 Evaluates the three body Jastrow function and its derivatives at X using a given set of QMCJastrowParameters.
double get_p_a_ln (int ai)
 Partial derivative of the natural log of this function with respect to parameter ai.
Array2D< double > * get_p2_xa_ln (int ai)
 Second partial derivative of the natural log of this function with respect to parameters x and ai.
double get_p3_xxa_ln (int ai)
 Third partial derivative of the natural log of this function with respect to parameters x, x, and ai.
double jastrowOnGrid (QMCJastrowParameters &JP, int E, Array2D< double > &R, Array2D< double > &grid, Array1D< double > &integrand)
 When calculating the overlap integral for psuedopotentials, we need to evaluate the ratio of the Jastrow at each grid point to the Jastrow at its original position.

Protected Attributes

QMCWalkerDatawd
Array1D< double > p_a
Array1D< Array2D< double > > p2_xa
Array1D< double > p3_xxa
Array1D
< QMCThreeBodyCorrelationFunctionParameters > * 
EupEdnNuclear
Array1D
< QMCThreeBodyCorrelationFunctionParameters > * 
EupEupNuclear
Array1D
< QMCThreeBodyCorrelationFunctionParameters > * 
EdnEdnNuclear

Private Member Functions

void packageDerivatives ()
void updateOne (QMCJastrowParameters &JP, Array2D< double > &X)
void updateAll (QMCJastrowParameters &JP, Array2D< double > &X)
void collectForPair (int Electron1, int Electron2, int Nuclei, QMCThreeBodyCorrelationFunctionParameters *paramset)


Detailed Description

This class calculates the value of the three body part of the Jastrow function and its first two derivatives.

The wavefunction is assumed to be of the form

\[ \Psi_{QMC} = \Psi_{Trial}J \]

where $\Psi_{Trial}$ is a wavefunction calculated using a standard QM method and

\[ J=exp(\sum{u_{i,j}(r_{i,j})}) \]

is a Jastrow type correlation function. $u_{ij}(r_{ij})$ are QMCCorrelationFunction describing the interactions of particles $i$ and $j$. The sum can be broken up into electron-electron and electron-nuclear components. This class contains functions describing correlations between a nucleus and two electrons.

Definition at line 47 of file QMCThreeBodyJastrow.h.


Constructor & Destructor Documentation

QMCThreeBodyJastrow::QMCThreeBodyJastrow (  ) 

Definition at line 16 of file QMCThreeBodyJastrow.cpp.

QMCThreeBodyJastrow::~QMCThreeBodyJastrow (  ) 

Definition at line 20 of file QMCThreeBodyJastrow.cpp.


Member Function Documentation

void QMCThreeBodyJastrow::initialize ( QMCInput input  ) 

Initializes the class with the data controlling the calculation.

Parameters:
input input data for the calculation

Definition at line 24 of file QMCThreeBodyJastrow.cpp.

Referenced by QMCJastrow::initialize().

void QMCThreeBodyJastrow::evaluate ( QMCJastrowParameters JP,
QMCWalkerData wData,
Array2D< double > &  X 
)

Evaluates the three body Jastrow function and its derivatives at X using a given set of QMCJastrowParameters.

Parameters:
JP Jastrow parameters to use during the evaluation
X $3N$ dimensional configuration of electrons represented by a $N \times 3$ matrix

Definition at line 43 of file QMCThreeBodyJastrow.cpp.

References updateAll(), updateOne(), wd, and QMCWalkerData::whichE.

Referenced by QMCJastrow::evaluate().

double QMCThreeBodyJastrow::get_p_a_ln ( int  ai  ) 

Partial derivative of the natural log of this function with respect to parameter ai.

Definition at line 38 of file QMCThreeBodyJastrow.cpp.

References p_a.

Referenced by QMCJastrow::evaluate().

Array2D< double > * QMCThreeBodyJastrow::get_p2_xa_ln ( int  ai  ) 

Second partial derivative of the natural log of this function with respect to parameters x and ai.

Definition at line 33 of file QMCThreeBodyJastrow.cpp.

References p2_xa.

Referenced by QMCJastrow::evaluate().

double QMCThreeBodyJastrow::get_p3_xxa_ln ( int  ai  ) 

Third partial derivative of the natural log of this function with respect to parameters x, x, and ai.

Definition at line 28 of file QMCThreeBodyJastrow.cpp.

References p3_xxa.

Referenced by QMCJastrow::evaluate().

double QMCThreeBodyJastrow::jastrowOnGrid ( QMCJastrowParameters JP,
int  E,
Array2D< double > &  R,
Array2D< double > &  grid,
Array1D< double > &  integrand 
)

When calculating the overlap integral for psuedopotentials, we need to evaluate the ratio of the Jastrow at each grid point to the Jastrow at its original position.

Parameters:
E is the index of the electron being moved to the different grid points
R the array of all electron positions
grid the grid points for electron E
integrand the value of the Jastrow at each of the grid points
Returns:
the Jastrow at the original position (the denominator)

Definition at line 190 of file QMCThreeBodyJastrow.cpp.

References QMCMolecule::Atom_Labels, QMCMolecule::Atom_Positions, Array2D< T >::dim1(), Array1D< T >::dim1(), EdnEdnNuclear, EupEdnNuclear, EupEupNuclear, QMCJastrowParameters::getElectronDownElectronDownNuclearParameters(), QMCJastrowParameters::getElectronUpElectronDownNuclearParameters(), QMCJastrowParameters::getElectronUpElectronUpNuclearParameters(), QMCThreeBodyCorrelationFunction::getFunctionValue(), QMCJastrowParameters::getNucleiTypes(), QMCMolecule::getNumberAtoms(), QMCWavefunction::getNumberElectrons(), globalInput, QMCInput::Molecule, MathFunctions::rij(), and QMCInput::WF.

Referenced by QMCPotential_Energy::evaluatePsuedoPotential().

void QMCThreeBodyJastrow::packageDerivatives (  )  [private]

void QMCThreeBodyJastrow::updateOne ( QMCJastrowParameters JP,
Array2D< double > &  X 
) [private]

void QMCThreeBodyJastrow::updateAll ( QMCJastrowParameters JP,
Array2D< double > &  X 
) [private]

void QMCThreeBodyJastrow::collectForPair ( int  Electron1,
int  Electron2,
int  Nuclei,
QMCThreeBodyCorrelationFunctionParameters paramset 
) [inline, private]


Member Data Documentation

Definition at line 108 of file QMCThreeBodyJastrow.h.

Referenced by collectForPair(), evaluate(), updateAll(), and updateOne().

Array1D<double> QMCThreeBodyJastrow::p_a [protected]

Definition at line 110 of file QMCThreeBodyJastrow.h.

Referenced by get_p_a_ln(), and packageDerivatives().

Array1D< Array2D<double> > QMCThreeBodyJastrow::p2_xa [protected]

Definition at line 111 of file QMCThreeBodyJastrow.h.

Referenced by get_p2_xa_ln(), and packageDerivatives().

Array1D<double> QMCThreeBodyJastrow::p3_xxa [protected]

Definition at line 112 of file QMCThreeBodyJastrow.h.

Referenced by get_p3_xxa_ln(), and packageDerivatives().

Definition at line 114 of file QMCThreeBodyJastrow.h.

Referenced by jastrowOnGrid(), packageDerivatives(), updateAll(), and updateOne().

Definition at line 115 of file QMCThreeBodyJastrow.h.

Referenced by jastrowOnGrid(), packageDerivatives(), updateAll(), and updateOne().

Definition at line 116 of file QMCThreeBodyJastrow.h.

Referenced by jastrowOnGrid(), packageDerivatives(), updateAll(), and updateOne().


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

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