QMCPACK
GaussianTimesRN< T >::BasicGaussian Struct Reference
+ Collaboration diagram for GaussianTimesRN< T >::BasicGaussian:

Public Member Functions

 BasicGaussian (real_type sig=1.0, real_type c=1.0, int p=0)
 
void resetGaussian (real_type sig, real_type c, int p)
 
void reset ()
 
void setgrid (real_type r)
 
real_type f (real_type r, real_type rr)
 
real_type df (real_type r, real_type rr)
 
real_type evaluate (real_type r, real_type rr, real_type &du, real_type &d2u)
 

Public Attributes

real_type Sigma
 
real_type Coeff
 
int Power
 
real_type MinusSigma
 
real_type CoeffP
 
real_type CoeffPP
 
real_type PowerC
 

Detailed Description

template<class T>
struct qmcplusplus::GaussianTimesRN< T >::BasicGaussian

Definition at line 31 of file GaussianTimesRN.h.

Constructor & Destructor Documentation

◆ BasicGaussian()

Member Function Documentation

◆ df()

real_type df ( real_type  r,
real_type  rr 
)
inline

Definition at line 76 of file GaussianTimesRN.h.

References GaussianTimesRN< T >::BasicGaussian::Coeff, GaussianTimesRN< T >::BasicGaussian::CoeffP, qmcplusplus::exp(), GaussianTimesRN< T >::BasicGaussian::MinusSigma, qmcplusplus::pow(), GaussianTimesRN< T >::BasicGaussian::Power, and GaussianTimesRN< T >::BasicGaussian::PowerC.

77  {
78  if (Power == 0)
79  return CoeffP * r * std::exp(MinusSigma * rr);
80  else if (Power == 1)
81  return (Coeff + CoeffP * r) * std::exp(MinusSigma * rr);
82  else
83  {
84  return std::pow(r, Power - 1) * (PowerC + CoeffP * rr) * std::exp(MinusSigma * rr);
85  }
86  }
MakeReturn< BinaryNode< FnPow, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t, typename CreateLeaf< Vector< T2, C2 > >::Leaf_t > >::Expression_t pow(const Vector< T1, C1 > &l, const Vector< T2, C2 > &r)
MakeReturn< UnaryNode< FnExp, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t exp(const Vector< T1, C1 > &l)

◆ evaluate()

real_type evaluate ( real_type  r,
real_type  rr,
real_type du,
real_type d2u 
)
inline

Definition at line 88 of file GaussianTimesRN.h.

References GaussianTimesRN< T >::BasicGaussian::Coeff, GaussianTimesRN< T >::BasicGaussian::CoeffP, GaussianTimesRN< T >::BasicGaussian::CoeffPP, qmcplusplus::exp(), GaussianTimesRN< T >::BasicGaussian::MinusSigma, qmcplusplus::pow(), and GaussianTimesRN< T >::BasicGaussian::Power.

89  {
90  T v = std::exp(MinusSigma * rr);
91  if (Power == 0)
92  {
93  du += CoeffP * r * v;
94  d2u += (CoeffP + CoeffPP * rr) * v;
95  return Coeff * v;
96  }
97  else
98  {
99  return std::pow(r, Power) * Coeff * v;
100  }
101  }
MakeReturn< BinaryNode< FnPow, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t, typename CreateLeaf< Vector< T2, C2 > >::Leaf_t > >::Expression_t pow(const Vector< T1, C1 > &l, const Vector< T2, C2 > &r)
MakeReturn< UnaryNode< FnExp, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t exp(const Vector< T1, C1 > &l)

◆ f()

real_type f ( real_type  r,
real_type  rr 
)
inline

Definition at line 66 of file GaussianTimesRN.h.

References GaussianTimesRN< T >::BasicGaussian::Coeff, qmcplusplus::exp(), GaussianTimesRN< T >::BasicGaussian::MinusSigma, qmcplusplus::pow(), and GaussianTimesRN< T >::BasicGaussian::Power.

67  {
68  if (Power == 0)
69  return Coeff * std::exp(MinusSigma * rr);
70  else if (Power == 1)
71  return r * Coeff * std::exp(MinusSigma * rr);
72  else
73  return std::pow(r, Power) * Coeff * std::exp(MinusSigma * rr);
74  }
MakeReturn< BinaryNode< FnPow, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t, typename CreateLeaf< Vector< T2, C2 > >::Leaf_t > >::Expression_t pow(const Vector< T1, C1 > &l, const Vector< T2, C2 > &r)
MakeReturn< UnaryNode< FnExp, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t exp(const Vector< T1, C1 > &l)

◆ reset()

◆ resetGaussian()

◆ setgrid()

void setgrid ( real_type  r)
inline

Definition at line 64 of file GaussianTimesRN.h.

64 {}

Member Data Documentation

◆ Coeff

◆ CoeffP

◆ CoeffPP

◆ MinusSigma

◆ Power

◆ PowerC

◆ Sigma


The documentation for this struct was generated from the following file: