#include <QMCJastrow.h>
Public Member Functions | |
QMCJastrow () | |
~QMCJastrow () | |
void | initialize (QMCInput *input) |
Initializes the class with the data controlling the calculation. | |
void | evaluate (Array1D< QMCWalkerData * > &walkerData, Array1D< Array2D< double > * > &X, int num, int start) |
Evaluates the Jastrow function and its derivatives at X using the QMCJastrowParameters stored in the QMCInput class. | |
void | evaluate (Array2D< double > &R) |
void | evaluate (QMCJastrowParameters &JP, Array1D< QMCWalkerData * > &walkerData, Array1D< Array2D< double > * > &X, int num, int start) |
Evaluates the Jastrow function and its derivatives at X using a given set of QMCJastrowParameters. | |
QMCDouble | getJastrow (int which) |
Gets the value of the Jastrow function for the last evaluated electronic configuration and parameter set. | |
double | get_p_a (int which, int ai) |
The partial derivative of this function with repspect to parameter ai. | |
double | getLnJastrow (int which) |
Gets the value of the natural log of the Jastrow function for the last evaluated electronic configuration and parameter set. | |
double | get_p_a_ln (int which, int ai) |
The first partial derivative of the ln of this function with repspect to parameter ai. | |
Array2D< double > * | getGradientLnJastrow (int which) |
Gets the gradient of the natural log of the Jastrow function with respect to the cartesian electronic coordinates for the last evaluated electronic configuration and parameter set. | |
Array2D< double > * | get_p2_xa_ln (int which, int ai) |
The second partial derivative of the ln of this function with repspect to parameters x and ai. | |
double | getLaplacianLnJastrow (int which) |
Gets the laplacian of the natural log of the Jastrow function with respect to the cartesian electronic coordinates for the last evaluated electronic configuration and parameter set. | |
double | get_p3_xxa_ln (int which, int ai) |
The third partial derivative of the ln of this function with repspect to parameters x, x, and ai. | |
void | operator= (const QMCJastrow &rhs) |
Protected Attributes | |
Array1D< double > | sum_U |
Array1D< Array2D< double > > | grad_sum_U |
Array1D< double > | laplacian_sum_U |
Array2D< double > | p_a |
Array2D< Array2D< double > > | p2_xa |
Array2D< double > | p3_xxa |
Private Attributes | |
QMCJastrowElectronNuclear | JastrowElectronNuclear |
QMCJastrowElectronElectron | JastrowElectronElectron |
QMCThreeBodyJastrow | ThreeBodyJastrow |
QMCInput * | Input |
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 .
Definition at line 54 of file QMCJastrow.h.
QMCJastrow::QMCJastrow | ( | ) |
Definition at line 23 of file QMCJastrow.cpp.
QMCJastrow::~QMCJastrow | ( | ) |
Definition at line 27 of file QMCJastrow.cpp.
References Array2D< T >::deallocate(), Array1D< T >::deallocate(), Array2D< T >::dim1(), Array1D< T >::dim1(), Array2D< T >::dim2(), grad_sum_U, laplacian_sum_U, p2_xa, p3_xxa, p_a, and sum_U.
void QMCJastrow::initialize | ( | QMCInput * | input | ) |
Initializes the class with the data controlling the calculation.
input | input data for the calculation |
Definition at line 45 of file QMCJastrow.cpp.
References Array2D< T >::allocate(), Array1D< T >::allocate(), Array2D< T >::dim1(), Array2D< T >::dim2(), QMCInput::flags, QMCWavefunction::getNumberElectrons(), QMCJastrowParameters::getNumberJWParameters(), QMCFlags::getNumGPUWalkers(), globalInput, grad_sum_U, QMCThreeBodyJastrow::initialize(), QMCJastrowElectronElectron::initialize(), QMCJastrowElectronNuclear::initialize(), Input, JastrowElectronElectron, JastrowElectronNuclear, QMCInput::JP, laplacian_sum_U, p2_xa, p3_xxa, p_a, sum_U, ThreeBodyJastrow, QMCFlags::use_three_body_jastrow, QMCFlags::walkers_per_pass, and QMCInput::WF.
Referenced by QMCSCFJastrow::initialize(), and QMCReadAndEvaluateConfigs::initialize().
void QMCJastrow::evaluate | ( | Array1D< QMCWalkerData * > & | walkerData, | |
Array1D< Array2D< double > * > & | X, | |||
int | num, | |||
int | start | |||
) |
Evaluates the Jastrow function and its derivatives at X using the QMCJastrowParameters stored in the QMCInput class.
This function only evaluates on the CPU. It is set up to process the walkers that the GPU did not process.
X | dimensional configuration of electrons represented by a matrix indexed by walker | |
num | how many walkers to process | |
start | where the GPU left off (is 0 when the GPU isn't used) |
Definition at line 114 of file QMCJastrow.cpp.
References Input, and QMCInput::JP.
Referenced by QMCReadAndEvaluateConfigs::AddNewConfigToProperites(), QMCSCFJastrow::calculate_CorrelatedSampling(), QMCSCFJastrow::evaluate(), and evaluate().
void QMCJastrow::evaluate | ( | Array2D< double > & | R | ) |
Definition at line 120 of file QMCJastrow.cpp.
References evaluate(), QMCWalkerData::initialize(), Input, QMCInput::JP, and QMCWalkerData::updateDistances().
void QMCJastrow::evaluate | ( | QMCJastrowParameters & | JP, | |
Array1D< QMCWalkerData * > & | walkerData, | |||
Array1D< Array2D< double > * > & | X, | |||
int | num, | |||
int | start | |||
) |
Evaluates the 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 133 of file QMCJastrow.cpp.
References QMCFlags::calculate_Derivatives, QMCThreeBodyJastrow::evaluate(), QMCJastrowElectronElectron::evaluate(), QMCJastrowElectronNuclear::evaluate(), QMCInput::flags, QMCThreeBodyJastrow::get_p2_xa_ln(), QMCJastrowElectronNuclear::get_p2_xa_ln(), QMCJastrowElectronElectron::get_p2_xa_ln(), QMCThreeBodyJastrow::get_p3_xxa_ln(), QMCJastrowElectronNuclear::get_p3_xxa_ln(), QMCJastrowElectronElectron::get_p3_xxa_ln(), QMCThreeBodyJastrow::get_p_a_ln(), QMCJastrowElectronNuclear::get_p_a_ln(), QMCJastrowElectronElectron::get_p_a_ln(), QMCJastrowParameters::getNumberEEParameters(), QMCJastrowParameters::getNumberJWParameters(), QMCJastrowParameters::getNumberNEParameters(), globalInput, grad_sum_U, Input, JastrowElectronElectron, JastrowElectronNuclear, QMCInput::JP, laplacian_sum_U, p2_xa, p3_xxa, p_a, Stopwatch::reset(), showTimings, Stopwatch::start(), Stopwatch::stop(), sum_U, ThreeBodyJastrow, Stopwatch::timeUS(), and QMCFlags::use_three_body_jastrow.
QMCDouble QMCJastrow::getJastrow | ( | int | which | ) |
Gets the value of the Jastrow function for the last evaluated electronic configuration and parameter set.
Definition at line 74 of file QMCJastrow.cpp.
References sum_U.
Referenced by QMCSCFJastrow::calculate_CorrelatedSampling(), QMCSCFJastrow::calculate_Psi_quantities(), and get_p_a().
double QMCJastrow::get_p_a | ( | int | which, | |
int | ai | |||
) |
The partial derivative of this function with repspect to parameter ai.
Definition at line 79 of file QMCJastrow.cpp.
References getJastrow(), and p_a.
double QMCJastrow::getLnJastrow | ( | int | which | ) |
Gets the value of the natural log of the Jastrow function for the last evaluated electronic configuration and parameter set.
Definition at line 84 of file QMCJastrow.cpp.
References sum_U.
Referenced by QMCReadAndEvaluateConfigs::calc_log_weight_current().
double QMCJastrow::get_p_a_ln | ( | int | which, | |
int | ai | |||
) |
The first partial derivative of the ln of this function with repspect to parameter ai.
Definition at line 89 of file QMCJastrow.cpp.
References p_a.
Referenced by QMCSCFJastrow::calculate_JastrowDerivatives().
Array2D< double > * QMCJastrow::getGradientLnJastrow | ( | int | which | ) |
Gets the gradient of the natural log of the Jastrow function with respect to the cartesian electronic coordinates for the last evaluated electronic configuration and parameter set.
Definition at line 94 of file QMCJastrow.cpp.
References grad_sum_U.
Referenced by QMCReadAndEvaluateConfigs::calc_E_Local_current().
Array2D< double > * QMCJastrow::get_p2_xa_ln | ( | int | which, | |
int | ai | |||
) |
The second partial derivative of the ln of this function with repspect to parameters x and ai.
Definition at line 99 of file QMCJastrow.cpp.
References p2_xa.
Referenced by QMCSCFJastrow::calculate_JastrowDerivatives().
double QMCJastrow::getLaplacianLnJastrow | ( | int | which | ) |
Gets the laplacian of the natural log of the Jastrow function with respect to the cartesian electronic coordinates for the last evaluated electronic configuration and parameter set.
Definition at line 104 of file QMCJastrow.cpp.
References laplacian_sum_U.
Referenced by QMCReadAndEvaluateConfigs::calc_E_Local_current().
double QMCJastrow::get_p3_xxa_ln | ( | int | which, | |
int | ai | |||
) |
The third partial derivative of the ln of this function with repspect to parameters x, x, and ai.
Definition at line 109 of file QMCJastrow.cpp.
References p3_xxa.
Referenced by QMCSCFJastrow::calculate_JastrowDerivatives().
void QMCJastrow::operator= | ( | const QMCJastrow & | rhs | ) |
Definition at line 272 of file QMCJastrow.cpp.
References QMCInput::flags, grad_sum_U, Input, JastrowElectronElectron, JastrowElectronNuclear, laplacian_sum_U, sum_U, ThreeBodyJastrow, and QMCFlags::use_three_body_jastrow.
Array1D<double> QMCJastrow::sum_U [protected] |
Definition at line 190 of file QMCJastrow.h.
Referenced by evaluate(), getJastrow(), getLnJastrow(), initialize(), operator=(), and ~QMCJastrow().
Array1D< Array2D<double> > QMCJastrow::grad_sum_U [protected] |
Definition at line 191 of file QMCJastrow.h.
Referenced by evaluate(), getGradientLnJastrow(), initialize(), operator=(), and ~QMCJastrow().
Array1D<double> QMCJastrow::laplacian_sum_U [protected] |
Definition at line 192 of file QMCJastrow.h.
Referenced by evaluate(), getLaplacianLnJastrow(), initialize(), operator=(), and ~QMCJastrow().
Array2D<double> QMCJastrow::p_a [protected] |
Definition at line 194 of file QMCJastrow.h.
Referenced by evaluate(), get_p_a(), get_p_a_ln(), initialize(), and ~QMCJastrow().
Array2D< Array2D<double> > QMCJastrow::p2_xa [protected] |
Definition at line 195 of file QMCJastrow.h.
Referenced by evaluate(), get_p2_xa_ln(), initialize(), and ~QMCJastrow().
Array2D<double> QMCJastrow::p3_xxa [protected] |
Definition at line 196 of file QMCJastrow.h.
Referenced by evaluate(), get_p3_xxa_ln(), initialize(), and ~QMCJastrow().
Definition at line 199 of file QMCJastrow.h.
Referenced by evaluate(), initialize(), and operator=().
Definition at line 205 of file QMCJastrow.h.
Referenced by evaluate(), initialize(), and operator=().
Definition at line 206 of file QMCJastrow.h.
Referenced by evaluate(), initialize(), and operator=().
QMCInput* QMCJastrow::Input [private] |
Definition at line 207 of file QMCJastrow.h.
Referenced by evaluate(), initialize(), and operator=().