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

Public Member Functions

 EPRPABreakup ()
 
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::EPRPABreakup< T >

Definition at line 334 of file LRBreakupUtilities.h.

Constructor & Destructor Documentation

◆ EPRPABreakup()

EPRPABreakup ( )
inline

Definition at line 340 of file LRBreakupUtilities.h.

340 {}

Member Function Documentation

◆ derivUk()

T derivUk ( kk) const
inline

return d u(k)/d rs

Implement a correct one

Definition at line 396 of file LRBreakupUtilities.h.

396 { return 0.0; }

◆ df()

T df ( r) const
inline

Definition at line 365 of file LRBreakupUtilities.h.

365 { return 0.0; }

◆ Fk()

T Fk ( k,
rc 
) const
inline

Definition at line 367 of file LRBreakupUtilities.h.

References EPRPABreakup< T >::Xk().

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

◆ integrate_r2()

T integrate_r2 ( rc) const
inline

Definition at line 385 of file LRBreakupUtilities.h.

385 { return 0.0; }

◆ operator()()

T operator() ( r,
rinv 
) const
inline

Definition at line 363 of file LRBreakupUtilities.h.

363 { return 0.0; }

◆ reset() [1/2]

void reset ( ParticleSet ref)
inline

Definition at line 342 of file LRBreakupUtilities.h.

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

343  {
344  NormFactor = 1.0 / ref.getTotalNum();
345  Density = ref.getTotalNum() / ref.getLattice().Volume;
346  Rs = std::pow(3.0 / (4.0 * M_PI * Density), 1.0 / 3.0);
347  //unpolarized K_f
348  Kf = std::pow(2.25 * M_PI, 1.0 / 3.0) / Rs;
349  }
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 351 of file LRBreakupUtilities.h.

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

352  {
353  // NormFactor=4.0*M_PI/ref.getLattice().Volume;
354  NormFactor = 1.0 / ref.getTotalNum();
355  // NormFactor=4.0*M_PI/ref.getTotalNum();
356  Density = ref.getTotalNum() / ref.getLattice().Volume;
357  Rs = rs;
358  //unpolarized
359  Kf = std::pow(2.25 * M_PI, 1.0 / 3.0) / Rs;
360  }
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 390 of file LRBreakupUtilities.h.

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

◆ Xk()

T Xk ( k,
rc 
) const
inline

Definition at line 369 of file LRBreakupUtilities.h.

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

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

370  {
371  T y = 0.5 * k / Kf;
372  T Sy;
373  if (y >= 1.0)
374  {
375  Sy = 1.0;
376  }
377  else
378  {
379  Sy = 1.5 * y - 0.5 * y * y * y;
380  };
381  T val = 12.0 / (k * k * k * k * Rs * Rs * Rs);
382  return -0.5 * NormFactor * val * std::pow(1.0 / (Sy * Sy) + val, -0.5);
383  }
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 338 of file LRBreakupUtilities.h.

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

◆ Kf

T Kf

Definition at line 337 of file LRBreakupUtilities.h.

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

◆ NormFactor

T NormFactor

◆ Rs


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