#include <QMCJastrowElectronElectron.h>
Public Member Functions | |
QMCJastrowElectronElectron () | |
~QMCJastrowElectronElectron () | |
void | initialize (QMCInput *input) |
Initializes the class with the data controlling the calculation. | |
void | evaluate (QMCJastrowParameters &JP, QMCWalkerData *wData, Array2D< double > &X) |
Evaluates the electron-electron 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 the function with respect to parameter ai. | |
Array2D< double > * | get_p2_xa_ln (int ai) |
Second Partial derivative of the natural log of the function with respect to parameters x and ai. | |
double | get_p3_xxa_ln (int ai) |
Third partial derivative of the natural log of the 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 | |
Array1D< double > | p_a |
Array1D< Array2D< double > > | p2_xa |
Array1D< double > | p3_xxa |
Private Member Functions | |
void | updateOne (QMCJastrowParameters &JP, Array2D< double > &X) |
The QMCJastrowElectronElectron::evaluate redirects here if we are only evaluating 1 electron. | |
void | updateAll (QMCJastrowParameters &JP, Array2D< double > &X) |
The QMCJastrowElectronElectron::evaluate redirects here if we are evaluating all electrons. | |
void | collectForPair (int el1, int el2, QMCCorrelationFunction *U_Function, Array2D< double > &X, int index, int numP) |
Private Attributes | |
QMCWalkerData * | wd |
The wavefunction is assumed to be of the form
where is a wavefunction calculated using a standard QM method and
is a Jastrow type correlation function. are QMCCorrelationFunction describing the interactions of particles and . The sum can be broken up into electron-electron and electron-nuclear components.
Definition at line 42 of file QMCJastrowElectronElectron.h.
QMCJastrowElectronElectron::QMCJastrowElectronElectron | ( | ) |
Definition at line 16 of file QMCJastrowElectronElectron.cpp.
QMCJastrowElectronElectron::~QMCJastrowElectronElectron | ( | ) |
Definition at line 18 of file QMCJastrowElectronElectron.cpp.
References Array1D< T >::deallocate(), Array1D< T >::dim1(), p2_xa, p3_xxa, and p_a.
void QMCJastrowElectronElectron::initialize | ( | QMCInput * | input | ) |
Initializes the class with the data controlling the calculation.
input | input data for the calculation |
Definition at line 28 of file QMCJastrowElectronElectron.cpp.
References Array1D< T >::allocate(), Array1D< T >::dim1(), QMCJastrowParameters::getNumberEEParameters(), QMCWavefunction::getNumberElectrons(), globalInput, QMCInput::JP, p2_xa, p3_xxa, p_a, wd, and QMCInput::WF.
Referenced by QMCJastrow::initialize().
void QMCJastrowElectronElectron::evaluate | ( | QMCJastrowParameters & | JP, | |
QMCWalkerData * | wData, | |||
Array2D< double > & | X | |||
) |
Evaluates the electron-electron Jastrow function and its derivatives at X using a given set of QMCJastrowParameters.
JP | Jastrow parameters to use during the evaluation | |
X | dimensional configuration of electrons represented by a matrix |
Definition at line 56 of file QMCJastrowElectronElectron.cpp.
References updateAll(), updateOne(), wd, and QMCWalkerData::whichE.
Referenced by QMCJastrow::evaluate().
double QMCJastrowElectronElectron::get_p_a_ln | ( | int | ai | ) |
Partial derivative of the natural log of the function with respect to parameter ai.
Definition at line 51 of file QMCJastrowElectronElectron.cpp.
References p_a.
Referenced by QMCJastrow::evaluate().
Array2D< double > * QMCJastrowElectronElectron::get_p2_xa_ln | ( | int | ai | ) |
Second Partial derivative of the natural log of the function with respect to parameters x and ai.
Definition at line 46 of file QMCJastrowElectronElectron.cpp.
References p2_xa.
Referenced by QMCJastrow::evaluate().
double QMCJastrowElectronElectron::get_p3_xxa_ln | ( | int | ai | ) |
Third partial derivative of the natural log of the function with respect to parameters x, x, and ai.
Definition at line 41 of file QMCJastrowElectronElectron.cpp.
References p3_xxa.
Referenced by QMCJastrow::evaluate().
double QMCJastrowElectronElectron::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.
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 |
Definition at line 292 of file QMCJastrowElectronElectron.cpp.
References Array2D< T >::dim1(), Array1D< T >::dim1(), QMCCorrelationFunctionParameters::getCorrelationFunction(), QMCJastrowParameters::getElectronDownElectronDownParameters(), QMCJastrowParameters::getElectronUpElectronDownParameters(), QMCJastrowParameters::getElectronUpElectronUpParameters(), QMCCorrelationFunction::getFunctionValue(), QMCWavefunction::getNumberElectrons(), globalInput, MathFunctions::rij(), and QMCInput::WF.
Referenced by QMCPotential_Energy::evaluatePsuedoPotential().
void QMCJastrowElectronElectron::updateOne | ( | QMCJastrowParameters & | JP, | |
Array2D< double > & | X | |||
) | [private] |
The QMCJastrowElectronElectron::evaluate redirects here if we are only evaluating 1 electron.
JP | Jastrow parameters to use during the evaluation | |
X | dimensional configuration of electrons represented by a matrix |
Definition at line 68 of file QMCJastrowElectronElectron.cpp.
References collectForPair(), Array2D< T >::dim1(), QMCInput::flags, QMCCorrelationFunctionParameters::getCorrelationFunction(), QMCJastrowParameters::getElectronDownElectronDownParameters(), QMCJastrowParameters::getElectronUpElectronDownParameters(), QMCJastrowParameters::getElectronUpElectronUpParameters(), QMCWavefunction::getNumberElectrons(), QMCCorrelationFunctionParameters::getTotalNumberOfParameters(), globalInput, QMCFlags::link_Jastrow_parameters, wd, QMCInput::WF, and QMCWalkerData::whichE.
Referenced by evaluate().
void QMCJastrowElectronElectron::updateAll | ( | QMCJastrowParameters & | JP, | |
Array2D< double > & | X | |||
) | [private] |
The QMCJastrowElectronElectron::evaluate redirects here if we are evaluating all electrons.
JP | Jastrow parameters to use during the evaluation | |
X | dimensional configuration of electrons represented by a matrix |
Definition at line 152 of file QMCJastrowElectronElectron.cpp.
References collectForPair(), Array2D< T >::dim1(), Array1D< T >::dim1(), QMCInput::flags, QMCCorrelationFunctionParameters::getCorrelationFunction(), QMCJastrowParameters::getElectronDownElectronDownParameters(), QMCJastrowParameters::getElectronUpElectronDownParameters(), QMCJastrowParameters::getElectronUpElectronUpParameters(), QMCWavefunction::getNumberElectrons(), QMCCorrelationFunctionParameters::getTotalNumberOfParameters(), globalInput, QMCFlags::link_Jastrow_parameters, p2_xa, p3_xxa, p_a, and QMCInput::WF.
Referenced by evaluate().
void QMCJastrowElectronElectron::collectForPair | ( | int | el1, | |
int | el2, | |||
QMCCorrelationFunction * | U_Function, | |||
Array2D< double > & | X, | |||
int | index, | |||
int | numP | |||
) | [inline, private] |
Definition at line 226 of file QMCJastrowElectronElectron.cpp.
References QMCFlags::calculate_Derivatives, QMCCorrelationFunction::evaluate(), QMCInput::flags, QMCCorrelationFunction::get_p2_xa(), QMCCorrelationFunction::get_p3_xxa(), QMCCorrelationFunction::get_p_a(), QMCCorrelationFunction::getFirstDerivativeValue(), QMCCorrelationFunction::getFunctionValue(), QMCCorrelationFunction::getSecondDerivativeValue(), globalInput, QMCFlags::optimize_EE_Jastrows, p2_xa, p3_xxa, p_a, QMCWalkerData::rij, QMCWalkerData::rij_uvec, QMCWalkerData::U, QMCWalkerData::U_x, QMCWalkerData::U_xx, QMCWalkerData::Uij, QMCWalkerData::Uij_x, QMCWalkerData::Uij_xx, and wd.
Referenced by updateAll(), and updateOne().
Array1D<double> QMCJastrowElectronElectron::p_a [protected] |
Definition at line 104 of file QMCJastrowElectronElectron.h.
Referenced by collectForPair(), get_p_a_ln(), initialize(), updateAll(), and ~QMCJastrowElectronElectron().
Array1D< Array2D<double> > QMCJastrowElectronElectron::p2_xa [protected] |
Definition at line 105 of file QMCJastrowElectronElectron.h.
Referenced by collectForPair(), get_p2_xa_ln(), initialize(), updateAll(), and ~QMCJastrowElectronElectron().
Array1D<double> QMCJastrowElectronElectron::p3_xxa [protected] |
Definition at line 106 of file QMCJastrowElectronElectron.h.
Referenced by collectForPair(), get_p3_xxa_ln(), initialize(), updateAll(), and ~QMCJastrowElectronElectron().
QMCWalkerData* QMCJastrowElectronElectron::wd [private] |
Definition at line 109 of file QMCJastrowElectronElectron.h.
Referenced by collectForPair(), evaluate(), initialize(), and updateOne().