#include <QMCJastrowElectronNuclear.h>
Public Member Functions | |
QMCJastrowElectronNuclear () | |
~QMCJastrowElectronNuclear () | |
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-nuclear Jastrow function and its derivatives at X using a given set of QMCJastrowParameters. | |
double | jastrowOnGrid (QMCJastrowParameters &JP, int Electron, Array2D< double > &R, Array2D< double > &grid, Array1D< double > &integrand) |
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. | |
Protected Attributes | |
Array1D< double > | p_a |
Array1D< Array2D< double > > | p2_xa |
Array1D< double > | p3_xxa |
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 45 of file QMCJastrowElectronNuclear.h.
QMCJastrowElectronNuclear::QMCJastrowElectronNuclear | ( | ) |
Definition at line 16 of file QMCJastrowElectronNuclear.cpp.
QMCJastrowElectronNuclear::~QMCJastrowElectronNuclear | ( | ) |
Definition at line 18 of file QMCJastrowElectronNuclear.cpp.
References Array1D< T >::deallocate(), Array1D< T >::dim1(), p2_xa, p3_xxa, and p_a.
void QMCJastrowElectronNuclear::initialize | ( | QMCInput * | input | ) |
Initializes the class with the data controlling the calculation.
input | input data for the calculation |
Definition at line 28 of file QMCJastrowElectronNuclear.cpp.
References Array1D< T >::allocate(), Array1D< T >::dim1(), QMCWavefunction::getNumberElectrons(), QMCJastrowParameters::getNumberNEParameters(), globalInput, QMCInput::JP, p2_xa, p3_xxa, p_a, and QMCInput::WF.
Referenced by QMCJastrow::initialize().
void QMCJastrowElectronNuclear::evaluate | ( | QMCJastrowParameters & | JP, | |
QMCWalkerData * | wData, | |||
Array2D< double > & | X | |||
) |
Evaluates the electron-nuclear 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 54 of file QMCJastrowElectronNuclear.cpp.
References QMCMolecule::Atom_Labels, QMCFlags::calculate_Derivatives, Array2D< T >::dim1(), Array1D< T >::dim1(), QMCCorrelationFunction::evaluate(), QMCInput::flags, QMCCorrelationFunction::get_p2_xa(), QMCCorrelationFunction::get_p3_xxa(), QMCCorrelationFunction::get_p_a(), QMCJastrowParameters::getElectronDownNuclearParameters(), QMCJastrowParameters::getElectronUpNuclearParameters(), QMCCorrelationFunction::getFirstDerivativeValue(), QMCCorrelationFunction::getFunctionValue(), QMCJastrowParameters::getNucleiTypes(), QMCMolecule::getNumberAtoms(), QMCWavefunction::getNumberElectrons(), QMCJastrowParameters::getNumberNEupParameters(), QMCCorrelationFunction::getSecondDerivativeValue(), globalInput, QMCInput::JP, QMCFlags::link_Jastrow_parameters, QMCInput::Molecule, QMCFlags::optimize_EN_Jastrows, p2_xa, p3_xxa, p_a, QMCWalkerData::riA, QMCWalkerData::riA_uvec, QMCWalkerData::U, QMCWalkerData::U_x, QMCWalkerData::U_xx, QMCWalkerData::UiA, QMCWalkerData::UiA_x, QMCWalkerData::UiA_xx, QMCInput::WF, and QMCWalkerData::whichE.
Referenced by QMCJastrow::evaluate().
double QMCJastrowElectronNuclear::jastrowOnGrid | ( | QMCJastrowParameters & | JP, | |
int | Electron, | |||
Array2D< double > & | R, | |||
Array2D< double > & | grid, | |||
Array1D< double > & | integrand | |||
) |
Definition at line 189 of file QMCJastrowElectronNuclear.cpp.
References QMCMolecule::Atom_Labels, QMCMolecule::Atom_Positions, Array2D< T >::dim1(), Array1D< T >::dim1(), QMCJastrowParameters::getElectronDownNuclearParameters(), QMCJastrowParameters::getElectronUpNuclearParameters(), QMCCorrelationFunction::getFunctionValue(), QMCJastrowParameters::getNucleiTypes(), QMCMolecule::getNumberAtoms(), QMCWavefunction::getNumberElectrons(), globalInput, QMCInput::Molecule, MathFunctions::rij(), and QMCInput::WF.
Referenced by QMCPotential_Energy::evaluatePsuedoPotential().
double QMCJastrowElectronNuclear::get_p_a_ln | ( | int | ai | ) |
Partial derivative of the natural log of this function with respect to parameter ai.
Definition at line 49 of file QMCJastrowElectronNuclear.cpp.
References p_a.
Referenced by QMCJastrow::evaluate().
Array2D< double > * QMCJastrowElectronNuclear::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 44 of file QMCJastrowElectronNuclear.cpp.
References p2_xa.
Referenced by QMCJastrow::evaluate().
double QMCJastrowElectronNuclear::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 39 of file QMCJastrowElectronNuclear.cpp.
References p3_xxa.
Referenced by QMCJastrow::evaluate().
Array1D<double> QMCJastrowElectronNuclear::p_a [protected] |
Definition at line 96 of file QMCJastrowElectronNuclear.h.
Referenced by evaluate(), get_p_a_ln(), initialize(), and ~QMCJastrowElectronNuclear().
Array1D< Array2D<double> > QMCJastrowElectronNuclear::p2_xa [protected] |
Definition at line 97 of file QMCJastrowElectronNuclear.h.
Referenced by evaluate(), get_p2_xa_ln(), initialize(), and ~QMCJastrowElectronNuclear().
Array1D<double> QMCJastrowElectronNuclear::p3_xxa [protected] |
Definition at line 98 of file QMCJastrowElectronNuclear.h.
Referenced by evaluate(), get_p3_xxa_ln(), initialize(), and ~QMCJastrowElectronNuclear().