QMCPACK
CoulombFunctor< T > Struct Template Reference

CoulombFunctor. More...

+ Collaboration diagram for CoulombFunctor< T >:

Public Member Functions

 CoulombFunctor ()
 
void reset (ParticleSet &ref)
 
void reset (ParticleSet &ref, T rs)
 
operator() (T r, T rinv) const
 
df (T r) const
 
Vk (T k) const
 
Fk (T k, T rc) const
 
Xk (T k, T rc) const
 
dVk_dk (T k) const
 
integrate_r2 (T r) const
 

Public Attributes

NormFactor
 

Detailed Description

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

CoulombFunctor.

An example for a Func for LRHandlerTemp. Four member functions have to be provided

  • reset(T volume) : reset the normalization factor
  • operator()(T r, T rinv): return a value of the original function, e.g., 1.0/r
  • Fk(T k, T rc)
  • Xk(T k, T rc)

Definition at line 42 of file LRCoulombSingleton.cpp.

Constructor & Destructor Documentation

◆ CoulombFunctor()

CoulombFunctor ( )
inline

Definition at line 45 of file LRCoulombSingleton.cpp.

45 {}

Member Function Documentation

◆ df()

T df ( r) const
inline

Definition at line 49 of file LRCoulombSingleton.cpp.

49 { return -1.0 / (r * r); }

◆ dVk_dk()

T dVk_dk ( k) const
inline

Definition at line 55 of file LRCoulombSingleton.cpp.

References CoulombFunctor< T >::NormFactor.

55 { return -2 * NormFactor / k / k / k; }

◆ Fk()

T Fk ( k,
rc 
) const
inline

Definition at line 52 of file LRCoulombSingleton.cpp.

References qmcplusplus::cos(), and CoulombFunctor< T >::NormFactor.

52 { return NormFactor / (k * k) * std::cos(k * rc); }
MakeReturn< UnaryNode< FnCos, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t cos(const Vector< T1, C1 > &l)

◆ integrate_r2()

T integrate_r2 ( r) const
inline

Definition at line 57 of file LRCoulombSingleton.cpp.

57 { return 0.5 * r * r; }

◆ operator()()

T operator() ( r,
rinv 
) const
inline

Definition at line 48 of file LRCoulombSingleton.cpp.

48 { return rinv; }

◆ reset() [1/2]

void reset ( ParticleSet ref)
inline

Definition at line 46 of file LRCoulombSingleton.cpp.

References ParticleSet::getLRBox(), and CoulombFunctor< T >::NormFactor.

46 { NormFactor = 4.0 * M_PI / ref.getLRBox().Volume; }

◆ reset() [2/2]

void reset ( ParticleSet ref,
rs 
)
inline

Definition at line 47 of file LRCoulombSingleton.cpp.

References ParticleSet::getLRBox(), and CoulombFunctor< T >::NormFactor.

47 { NormFactor = 4.0 * M_PI / ref.getLRBox().Volume; }

◆ Vk()

T Vk ( k) const
inline

Definition at line 50 of file LRCoulombSingleton.cpp.

References CoulombFunctor< T >::NormFactor.

50 { return NormFactor / (k * k); }

◆ Xk()

T Xk ( k,
rc 
) const
inline

Definition at line 53 of file LRCoulombSingleton.cpp.

References qmcplusplus::cos(), and CoulombFunctor< T >::NormFactor.

53 { return -NormFactor / (k * k) * std::cos(k * rc); }
MakeReturn< UnaryNode< FnCos, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t cos(const Vector< T1, C1 > &l)

Member Data Documentation

◆ NormFactor


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