QMCPACK
RadialWF Class Reference
+ Collaboration diagram for RadialWF:

Public Member Functions

double NormDeriv (double r, double u)
 
Vec2 PseudoDerivs (double r, Vec2 &u_and_du)
 
Vec2 NormalDerivs (double r, Vec2 &u_and_du)
 
Vec2 ScalarRelDerivs (double r, Vec2 &u_and_du)
 
int CountNodes ()
 
void IntegrateOut ()
 
double PartialNorm ()
 
double LogDerivative ()
 
void Solve (double tolerance=1.0e-8)
 
void Normalize ()
 
void SetGrid (std::shared_ptr< Grid > &newgrid)
 
void SetPotential (Potential *newPot)
 
PotentialGetPotential ()
 
void Write (IOSectionClass &out)
 
void Read (IOSectionClass &in)
 

Public Attributes

std::shared_ptr< Gridgrid
 
CubicSplineCommon u
 
CubicSplineCommon dudr
 
int n
 
int l
 
int CoreNodes
 
double Energy
 
double Occupancy
 
double Weight
 
std::string Label
 

Private Member Functions

int TurningIndex ()
 
double IntegrateInOut (int &tindex)
 
void OriginBC (double r0, double &u0, double &du0)
 
void InfinityBC (double rend, double &uend, double &duend)
 

Private Attributes

Array< Vec2, 1 > uduVec
 
Array< double, 1 > normVec
 
Potentialpot
 

Detailed Description

Definition at line 24 of file RadialWF.h.

Member Function Documentation

◆ CountNodes()

int CountNodes ( )

◆ GetPotential()

Potential* GetPotential ( )

◆ InfinityBC()

void InfinityBC ( double  rend,
double &  uend,
double &  duend 
)
private

◆ IntegrateInOut()

double IntegrateInOut ( int &  tindex)
private

◆ IntegrateOut()

void IntegrateOut ( )

◆ LogDerivative()

double LogDerivative ( )

◆ NormalDerivs()

Vec2 NormalDerivs ( double  r,
Vec2 u_and_du 
)
inline

Definition at line 140 of file RadialWF.h.

References Energy, l, pot, and Potential::V().

Referenced by RegularDerivs::operator()().

141 {
142  Vec2 derivs;
143  double V = pot->V(l, r);
144  derivs[0] = u_and_du[1];
145  derivs[1] = ((double)(l * (l + 1)) / (r * r) + 2.0 * (V - Energy)) * u_and_du[0];
146  return derivs;
147 }
double Energy
Definition: RadialWF.h:39
int l
Definition: RadialWF.h:38
virtual double V(int l, double r)
Potential * pot
Definition: RadialWF.h:33

◆ Normalize()

void Normalize ( )

◆ NormDeriv()

double NormDeriv ( double  r,
double  u 
)
inline

Definition at line 120 of file RadialWF.h.

References u.

Referenced by NormalizeDeriv::operator()().

121 {
122  double uval = u(r);
123  return (uval * uval);
124 }
CubicSplineCommon u
Definition: RadialWF.h:37

◆ OriginBC()

void OriginBC ( double  r0,
double &  u0,
double &  du0 
)
private

◆ PartialNorm()

double PartialNorm ( )

◆ PseudoDerivs()

Vec2 PseudoDerivs ( double  r,
Vec2 u_and_du 
)
inline

Definition at line 126 of file RadialWF.h.

References Potential::A(), qmcplusplus::Units::distance::A, B(), Potential::B(), Potential::dAdr(), Energy, l, pot, and Potential::V().

Referenced by PHDerivs::operator()().

127 {
128  Vec2 derivs;
129  derivs[0] = u_and_du[1];
130  double A = pot->A(r);
131  double B = pot->B(r);
132  double V = pot->V(l, r);
133  double dAdr = pot->dAdr(r);
134  derivs[1] = 1.0 / A *
135  (-dAdr * u_and_du[1] + (dAdr / r + (double)(l * (l + 1)) * B / (r * r) + 2.0 * (V - Energy)) * u_and_du[0]);
136  return derivs;
137 }
virtual double B(double r)
Definition: PotentialBase.h:37
double Energy
Definition: RadialWF.h:39
int l
Definition: RadialWF.h:38
virtual double A(double r)
Definition: PotentialBase.h:36
virtual double dAdr(double r)
Definition: PotentialBase.h:38
virtual double V(int l, double r)
Potential * pot
Definition: RadialWF.h:33
double B(double x, int k, int i, const std::vector< double > &t)

◆ Read()

void Read ( IOSectionClass in)

◆ ScalarRelDerivs()

Vec2 ScalarRelDerivs ( double  r,
Vec2 u_and_du 
)
inline

Definition at line 150 of file RadialWF.h.

References Potential::dVdr(), Energy, l, pot, and Potential::V().

Referenced by NonPHDerivs::operator()().

151 {
152  const double alpha = 1.0 / 137.036;
153  const double kappa = -1.0;
154 
155  Vec2 derivs;
156  derivs[0] = u_and_du[1];
157  double V = pot->V(l, r);
158  double dVdr = pot->dVdr(r);
159  double M = 1.0 - alpha * alpha * 0.5 * (V - Energy);
160 
161  derivs[1] = ((double)(l * (l + 1)) / (r * r) + 2.0 * M * (V - Energy)) * u_and_du[0] -
162  0.5 * alpha * alpha / M * dVdr * (u_and_du[1] + u_and_du[0] * kappa / r);
163 
164  return derivs;
165 }
double Energy
Definition: RadialWF.h:39
int l
Definition: RadialWF.h:38
virtual double dVdr(int l, double r)
virtual double V(int l, double r)
Potential * pot
Definition: RadialWF.h:33

◆ SetGrid()

void SetGrid ( std::shared_ptr< Grid > &  newgrid)

◆ SetPotential()

void SetPotential ( Potential newPot)

◆ Solve()

void Solve ( double  tolerance = 1.0e-8)

◆ TurningIndex()

int TurningIndex ( )
private

◆ Write()

void Write ( IOSectionClass out)

Member Data Documentation

◆ CoreNodes

int CoreNodes

Definition at line 38 of file RadialWF.h.

◆ dudr

Definition at line 37 of file RadialWF.h.

◆ Energy

double Energy

Definition at line 39 of file RadialWF.h.

Referenced by NormalDerivs(), PseudoDerivs(), and ScalarRelDerivs().

◆ grid

std::shared_ptr<Grid> grid

Definition at line 36 of file RadialWF.h.

◆ l

int l

Definition at line 38 of file RadialWF.h.

Referenced by NormalDerivs(), PseudoDerivs(), and ScalarRelDerivs().

◆ Label

std::string Label

Definition at line 40 of file RadialWF.h.

◆ n

int n

Definition at line 38 of file RadialWF.h.

◆ normVec

Array<double, 1> normVec
private

Definition at line 32 of file RadialWF.h.

◆ Occupancy

double Occupancy

Definition at line 39 of file RadialWF.h.

◆ pot

Potential* pot
private

Definition at line 33 of file RadialWF.h.

Referenced by NormalDerivs(), PseudoDerivs(), and ScalarRelDerivs().

◆ u

Definition at line 37 of file RadialWF.h.

Referenced by NormDeriv().

◆ uduVec

Array<Vec2, 1> uduVec
private

Definition at line 31 of file RadialWF.h.

◆ Weight

double Weight

Definition at line 39 of file RadialWF.h.


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