QMCJastrow Class Reference

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

#include <QMCJastrow.h>

List of all members.

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
QMCInputInput


Detailed Description

This class calculates the value 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$.

Definition at line 54 of file QMCJastrow.h.


Constructor & Destructor Documentation

QMCJastrow::QMCJastrow (  ) 

Definition at line 23 of file QMCJastrow.cpp.

QMCJastrow::~QMCJastrow (  ) 


Member Function Documentation

void QMCJastrow::initialize ( QMCInput input  ) 

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.

Parameters:
X $3N$ dimensional configuration of electrons represented by a $N \times 3$ 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  ) 

void QMCJastrow::evaluate ( QMCJastrowParameters JP,
Array1D< QMCWalkerData * > &  walkerData,
Array1D< Array2D< double > * > &  X,
int  num,
int  start 
)

QMCDouble QMCJastrow::getJastrow ( int  which  ) 

Gets the value of the Jastrow function for the last evaluated electronic configuration and parameter set.

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

Returns:
Jastrow function value ($J=exp(\sum{u_{i,j}(r_{i,j})})$).

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.

$\ln(J)=\sum{u_{i,j}(r_{i,j})}$

Returns:
natural log of the Jastrow function ($\ln(J)=\sum{u_{i,j}(r_{i,j})}$)

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.

$\nabla\ln(J)=\nabla\sum{u_{i,j}(r_{i,j})}$

Returns:
gradient natural log of the Jastrow function ($\nabla\ln(J)=\nabla\sum{u_{i,j}(r_{i,j})}$)

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.

$\nabla^2\ln(J)=\nabla^2\sum{u_{i,j}(r_{i,j})}$

Returns:
gradient natural log of the Jastrow function ($\nabla^2\ln(J)=\nabla^2\sum{u_{i,j}(r_{i,j})}$)

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  ) 


Member Data Documentation

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

Definition at line 207 of file QMCJastrow.h.

Referenced by evaluate(), initialize(), and operator=().


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

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