QMCPACK
DerivRPABreakup< T > Struct Template Reference
+ Collaboration diagram for DerivRPABreakup< T >:

Public Member Functions

 DerivRPABreakup ()
 
void reset (ParticleSet &ref)
 
void reset (ParticleSet &ref, T rs)
 
operator() (T r, T rinv) const
 
df (T r) const
 
Fk (T k, T rc) const
 
Xk (T k, T rc) const
 
integrate_r2 (T rc) const
 
Uk (T kk) const
 return RPA value at |k| More...
 
derivUk (T kk) const
 return d u(k)/d rs More...
 

Public Attributes

Rs
 
Kf
 
Density
 
NormFactor
 

Detailed Description

template<class T = double>
struct qmcplusplus::DerivRPABreakup< T >

Definition at line 113 of file LRBreakupUtilities.h.

Constructor & Destructor Documentation

◆ DerivRPABreakup()

DerivRPABreakup ( )
inline

Definition at line 119 of file LRBreakupUtilities.h.

119 {}

Member Function Documentation

◆ derivUk()

T derivUk ( kk) const
inline

return d u(k)/d rs

Implement a correct one

Definition at line 178 of file LRBreakupUtilities.h.

178 { return 0.0; }

◆ df()

T df ( r) const
inline

Definition at line 146 of file LRBreakupUtilities.h.

146 { return 0.0; }

◆ Fk()

T Fk ( k,
rc 
) const
inline

Definition at line 148 of file LRBreakupUtilities.h.

References DerivRPABreakup< T >::Xk().

148 { return -Xk(k, rc); }

◆ integrate_r2()

T integrate_r2 ( rc) const
inline

Definition at line 168 of file LRBreakupUtilities.h.

168 { return 0.0; }

◆ operator()()

T operator() ( r,
rinv 
) const
inline

Definition at line 144 of file LRBreakupUtilities.h.

144 { return 0.0; }

◆ reset() [1/2]

void reset ( ParticleSet ref)
inline

Definition at line 121 of file LRBreakupUtilities.h.

References DerivRPABreakup< T >::Density, ParticleSet::getLattice(), ParticleSet::getTotalNum(), DerivRPABreakup< T >::Kf, DerivRPABreakup< T >::NormFactor, qmcplusplus::pow(), and DerivRPABreakup< T >::Rs.

122  {
123  // NormFactor= 4.0*M_PI/ref.getLattice().Volume;
124  // NormFactor=4.0*M_PI/ref.getTotalNum();
125  NormFactor = 1.0 / ref.getTotalNum();
126  Density = ref.getTotalNum() / ref.getLattice().Volume;
127  Rs = std::pow(3.0 / (4.0 * M_PI * Density), 1.0 / 3.0);
128  //unpolarized K_f
129  Kf = std::pow(2.25 * M_PI, 1.0 / 3.0) / Rs;
130  }
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)

◆ reset() [2/2]

void reset ( ParticleSet ref,
rs 
)
inline

Definition at line 132 of file LRBreakupUtilities.h.

References DerivRPABreakup< T >::Density, ParticleSet::getLattice(), ParticleSet::getTotalNum(), DerivRPABreakup< T >::Kf, DerivRPABreakup< T >::NormFactor, qmcplusplus::pow(), and DerivRPABreakup< T >::Rs.

133  {
134  // NormFactor=4.0*M_PI/ref.getLattice().Volume;
135  NormFactor = 1.0 / ref.getTotalNum();
136  // NormFactor=4.0*M_PI/ref.getTotalNum();
137  Density = ref.getTotalNum() / ref.getLattice().Volume;
138  Rs = rs;
139  //unpolarized
140  Kf = std::pow(2.25 * M_PI, 1.0 / 3.0) / Rs;
141  }
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)

◆ Uk()

T Uk ( kk) const
inline

return RPA value at |k|

Parameters
kk|k|^2

Definition at line 172 of file LRBreakupUtilities.h.

References DerivRPABreakup< T >::NormFactor, and DerivRPABreakup< T >::Rs.

◆ Xk()

T Xk ( k,
rc 
) const
inline

Definition at line 150 of file LRBreakupUtilities.h.

References DerivRPABreakup< T >::Kf, DerivRPABreakup< T >::NormFactor, qmcplusplus::pow(), and DerivRPABreakup< T >::Rs.

Referenced by DerivRPABreakup< T >::Fk().

151  {
152  T y = 0.5 * k / Kf;
153  T Sy;
154  if (y >= 1.0)
155  {
156  Sy = 1.0;
157  }
158  else
159  {
160  Sy = 1.5 * y - 0.5 * y * y * y;
161  };
162  //multiply by NORM?
163  return NormFactor * 3.0 /
164  ((k * k * k * k * Rs * Rs * Rs * Rs *
165  (std::pow(1.0 / (Sy * Sy) + 12.0 / (k * k * k * k * Rs * Rs * Rs), 0.5))));
166  }
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)

Member Data Documentation

◆ Density

T Density

Definition at line 117 of file LRBreakupUtilities.h.

Referenced by DerivRPABreakup< T >::reset().

◆ Kf

T Kf

Definition at line 116 of file LRBreakupUtilities.h.

Referenced by DerivRPABreakup< T >::reset(), and DerivRPABreakup< T >::Xk().

◆ NormFactor

◆ Rs


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