QMCPACK
RspaceEwaldTerm Class Reference

Functor for term within the real-space sum in Drummond 2008 formula 6. More...

+ Collaboration diagram for RspaceEwaldTerm:

Public Member Functions

 RspaceEwaldTerm (const RealVec &r_in, const RealMat &a_in, real_t rconst_in)
 
real_t operator() (const IntVec &i) const
 

Private Attributes

const RealVec r
 The inter-particle separation vector. More...
 
const RealMat a
 The real-space cell axes. More...
 
const real_t rconst
 The constant 1/({2}) in Drummond 2008 formula 6. More...
 

Detailed Description

Functor for term within the real-space sum in Drummond 2008 formula 6.

Definition at line 72 of file EwaldRef.cpp.

Constructor & Destructor Documentation

◆ RspaceEwaldTerm()

RspaceEwaldTerm ( const RealVec r_in,
const RealMat a_in,
real_t  rconst_in 
)
inline

Definition at line 83 of file EwaldRef.cpp.

83 : r(r_in), a(a_in), rconst(rconst_in) {}
const RealMat a
The real-space cell axes.
Definition: EwaldRef.cpp:78
const RealVec r
The inter-particle separation vector.
Definition: EwaldRef.cpp:76
const real_t rconst
The constant 1/({2}) in Drummond 2008 formula 6.
Definition: EwaldRef.cpp:80

Member Function Documentation

◆ operator()()

real_t operator() ( const IntVec i) const
inline

Definition at line 85 of file EwaldRef.cpp.

References RspaceEwaldTerm::a, qmcplusplus::dot(), RspaceEwaldTerm::r, RspaceEwaldTerm::rconst, and qmcplusplus::sqrt().

86  {
87  RealVec Rv = dot(i, a);
88  for (int_t d : {0, 1, 2})
89  Rv[d] -= r[d];
90  real_t R = std::sqrt(dot(Rv, Rv));
91  real_t rm = std::erfc(rconst * R) / R;
92  return rm;
93  }
int int_t
Type for integers.
Definition: EwaldRef.h:42
const RealMat a
The real-space cell axes.
Definition: EwaldRef.cpp:78
TinyVector< real_t, DIM > RealVec
Type for floating point vectors of length DIM.
Definition: EwaldRef.h:48
const RealVec r
The inter-particle separation vector.
Definition: EwaldRef.cpp:76
const real_t rconst
The constant 1/({2}) in Drummond 2008 formula 6.
Definition: EwaldRef.cpp:80
MakeReturn< UnaryNode< FnSqrt, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t sqrt(const Vector< T1, C1 > &l)
Tensor< typename BinaryReturn< T1, T2, OpMultiply >::Type_t, D > dot(const AntiSymTensor< T1, D > &lhs, const AntiSymTensor< T2, D > &rhs)
double real_t
Type for floating point numbers.
Definition: EwaldRef.h:44

Member Data Documentation

◆ a

const RealMat a
private

The real-space cell axes.

Definition at line 78 of file EwaldRef.cpp.

Referenced by RspaceEwaldTerm::operator()().

◆ r

const RealVec r
private

The inter-particle separation vector.

Definition at line 76 of file EwaldRef.cpp.

Referenced by RspaceEwaldTerm::operator()().

◆ rconst

const real_t rconst
private

The constant 1/({2}) in Drummond 2008 formula 6.

Definition at line 80 of file EwaldRef.cpp.

Referenced by RspaceEwaldTerm::operator()().


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