QMCPACK
ChannelPotential Class Reference
+ Collaboration diagram for ChannelPotential:

Public Member Functions

double operator() (double x)
 
void SetupProjector (double G_max, double G_FFT)
 
void Read (IOSectionClass &in, std::shared_ptr< Grid > &grid)
 
void Write (IOSectionClass &out)
 

Public Attributes

int l
 
int n_principal
 
CubicSplineCommon V
 
CubicSplineCommon DeltaV
 
CubicSplineCommon u
 
double rc
 
double R0
 
double Occupation
 
double Eigenvalue
 
double E_KB
 
CubicSplineCommon zeta_r
 
CubicSplineCommon zeta_q
 
CubicSplineCommon chi_r
 
CubicSplineCommon chi_q
 

Protected Types

enum  IntegrandType {
  NORM, EKB, ZETA_Q, CHI_R,
  CHECK_CHI_R
}
 

Protected Member Functions

double jl (int l, double x)
 
double A (double q, double qp)
 

Protected Attributes

double ProjectorNorm
 
LinearGrid qGrid
 
double qCurrent
 
double rCurrent
 
IntegrandType Job
 

Detailed Description

Definition at line 26 of file NLPP.h.

Member Enumeration Documentation

◆ IntegrandType

enum IntegrandType
protected
Enumerator
NORM 
EKB 
ZETA_Q 
CHI_R 
CHECK_CHI_R 

Definition at line 34 of file NLPP.h.

Member Function Documentation

◆ A()

double A ( double  q,
double  qp 
)
protected

◆ jl()

double jl ( int  l,
double  x 
)
inlineprotected

Definition at line 120 of file NLPP.h.

References qmcplusplus::abs(), qmcplusplus::cos(), qmcplusplus::Units::charge::e, and qmcplusplus::sin().

121 {
122  if (std::abs(x) > 0.0)
123  {
124  if (l == 0)
125  return sin(x) / x;
126  else if (l == 1)
127  {
128  if (x < 1.0e-4)
129  return x / 3.0 - x * x * x / 30.0 + x * x * x * x * x / 840.0 - x * x * x * x * x * x * x / 45360.0;
130  else
131  return sin(x) / (x * x) - cos(x) / x;
132  }
133  else if (l == 2)
134  {
135  if (x < 1.0e-2)
136  return x * x / 15.0 - x * x * x * x / 210.0 + x * x * x * x * x * x / 7560.0 -
137  x * x * x * x * x * x * x * x / 498960.0;
138  else
139  return ((3.0 / (x * x * x) - 1.0 / x) * sin(x) - 3.0 / (x * x) * cos(x));
140  }
141  else
142  {
143  std::cerr << "j(l,x) not implemented for l > 2.\n";
144  abort();
145  }
146  }
147  else
148  { // x -> 0 limit
149  if (l == 0)
150  return 1.0;
151  else
152  return 0.0;
153  }
154 }
MakeReturn< UnaryNode< FnFabs, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t abs(const Vector< T1, C1 > &l)
MakeReturn< UnaryNode< FnSin, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t sin(const Vector< T1, C1 > &l)
MakeReturn< UnaryNode< FnCos, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t cos(const Vector< T1, C1 > &l)

◆ operator()()

double operator() ( double  x)
inline

Definition at line 157 of file NLPP.h.

158 {
159  switch (Job)
160  {
161  case NORM:
162  return u(x) * DeltaV(x) * DeltaV(x) * u(x);
163  case EKB:
164  return u(x) * DeltaV(x) * u(x);
165  case ZETA_Q:
166  return jl(l, qCurrent * x) * x * x * zeta_r(x);
167  case CHI_R:
168  return 2.0 / M_PI * x * x * chi_q(x) * jl(l, x * rCurrent);
169  case CHECK_CHI_R:
170  return chi_r(x) * chi_r(x) * x * x;
171  default:
172  return 0.0;
173  }
174 }
CubicSplineCommon u
Definition: NLPP.h:50
CubicSplineCommon DeltaV
Definition: NLPP.h:50
double qCurrent
Definition: NLPP.h:33
CubicSplineCommon chi_q
Definition: NLPP.h:60
double rCurrent
Definition: NLPP.h:33
CubicSplineCommon zeta_r
Definition: NLPP.h:57
IntegrandType Job
Definition: NLPP.h:42
double jl(int l, double x)
Definition: NLPP.h:120
CubicSplineCommon chi_r
Definition: NLPP.h:60

◆ Read()

void Read ( IOSectionClass in,
std::shared_ptr< Grid > &  grid 
)

◆ SetupProjector()

void SetupProjector ( double  G_max,
double  G_FFT 
)

◆ Write()

void Write ( IOSectionClass out)

Member Data Documentation

◆ chi_q

Definition at line 60 of file NLPP.h.

◆ chi_r

Definition at line 60 of file NLPP.h.

◆ DeltaV

Definition at line 50 of file NLPP.h.

◆ E_KB

double E_KB

Definition at line 54 of file NLPP.h.

◆ Eigenvalue

double Eigenvalue

Definition at line 52 of file NLPP.h.

◆ Job

IntegrandType Job
protected

Definition at line 42 of file NLPP.h.

◆ l

int l

Definition at line 46 of file NLPP.h.

◆ n_principal

int n_principal

Definition at line 49 of file NLPP.h.

◆ Occupation

double Occupation

Definition at line 52 of file NLPP.h.

◆ ProjectorNorm

double ProjectorNorm
protected

Definition at line 30 of file NLPP.h.

◆ qCurrent

double qCurrent
protected

Definition at line 33 of file NLPP.h.

◆ qGrid

LinearGrid qGrid
protected

Definition at line 32 of file NLPP.h.

◆ R0

double R0

Definition at line 51 of file NLPP.h.

◆ rc

double rc

Definition at line 51 of file NLPP.h.

◆ rCurrent

double rCurrent
protected

Definition at line 33 of file NLPP.h.

◆ u

Definition at line 50 of file NLPP.h.

◆ V

Definition at line 50 of file NLPP.h.

◆ zeta_q

Definition at line 57 of file NLPP.h.

◆ zeta_r

Definition at line 57 of file NLPP.h.


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