QMCPACK
HamiltonianRef Class Reference
+ Collaboration diagram for HamiltonianRef:

Public Types

using FullPrecRealType = QMCTraits::FullPrecRealType
 
using Walker_t = OperatorBase::Walker_t
 
using ValueType = OperatorBase::ValueType
 
using RealType = OperatorBase::RealType
 

Public Member Functions

 HamiltonianRef (const RefVector< OperatorBase >)
 
FullPrecRealType evaluateValueAndDerivatives (ParticleSet &P, const opt_variables_type &optvars, Vector< ValueType > &dlogpsi, Vector< ValueType > &dhpsioverpsi)
 the same evaluateValueAndDerivatives as QMCHamiltonian More...
 
FullPrecRealType evaluate (ParticleSet &P)
 the same evaluate as QMCHamiltonian More...
 
int size () const
 

Private Attributes

const RefVector< OperatorBaseHrefs_
 collected references More...
 

Detailed Description

Definition at line 22 of file HamiltonianRef.h.

Member Typedef Documentation

◆ FullPrecRealType

Definition at line 25 of file HamiltonianRef.h.

◆ RealType

Definition at line 28 of file HamiltonianRef.h.

◆ ValueType

Definition at line 27 of file HamiltonianRef.h.

◆ Walker_t

Definition at line 26 of file HamiltonianRef.h.

Constructor & Destructor Documentation

◆ HamiltonianRef()

Definition at line 20 of file HamiltonianRef.cpp.

20 : Hrefs_(refs) {}
const RefVector< OperatorBase > Hrefs_
collected references

Member Function Documentation

◆ evaluate()

FullPrecRealType evaluate ( ParticleSet P)

the same evaluate as QMCHamiltonian

Definition at line 34 of file HamiltonianRef.cpp.

References APP_ABORT, HamiltonianRef::Hrefs_, and qmcplusplus::isnan().

35 {
36  FullPrecRealType LocalEnergy = 0.0;
37  for (int i = 0; i < Hrefs_.size(); ++i)
38  {
39  const auto LocalEnergyComponent = Hrefs_[i].get().evaluate(P);
40  if (qmcplusplus::isnan(LocalEnergyComponent))
41  APP_ABORT("HamiltonianRef::evaluate component " + Hrefs_[i].get().getName() + " returns NaN\n");
42  LocalEnergy += LocalEnergyComponent;
43  }
44  return LocalEnergy;
45 }
QMCTraits::FullPrecRealType FullPrecRealType
#define APP_ABORT(msg)
Widely used but deprecated fatal error macros from legacy code.
Definition: AppAbort.h:27
const RefVector< OperatorBase > Hrefs_
collected references
bool isnan(float a)
return true if the value is NaN.
Definition: math.cpp:18

◆ evaluateValueAndDerivatives()

FullPrecRealType evaluateValueAndDerivatives ( ParticleSet P,
const opt_variables_type optvars,
Vector< ValueType > &  dlogpsi,
Vector< ValueType > &  dhpsioverpsi 
)

the same evaluateValueAndDerivatives as QMCHamiltonian

Definition at line 22 of file HamiltonianRef.cpp.

References HamiltonianRef::Hrefs_.

26 {
27  FullPrecRealType LocalEnergy(0);
28  for (OperatorBase& Href : Hrefs_)
29  LocalEnergy += Href.evaluateValueAndDerivatives(P, optvars, dlogpsi, dhpsioverpsi);
30  return LocalEnergy;
31 }
QMCTraits::FullPrecRealType FullPrecRealType
const RefVector< OperatorBase > Hrefs_
collected references

◆ size()

int size ( void  ) const
inline

Definition at line 41 of file HamiltonianRef.h.

References HamiltonianRef::Hrefs_.

41 { return Hrefs_.size(); }
const RefVector< OperatorBase > Hrefs_
collected references

Member Data Documentation

◆ Hrefs_

const RefVector<OperatorBase> Hrefs_
private

collected references

Definition at line 45 of file HamiltonianRef.h.

Referenced by HamiltonianRef::evaluate(), HamiltonianRef::evaluateValueAndDerivatives(), and HamiltonianRef::size().


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