13 #ifndef OHMMS_LRBREAKUP_PARAMETERS_H 14 #define OHMMS_LRBREAKUP_PARAMETERS_H 22 template<
typename T,
unsigned D>
41 : LR_dim_cutoff(15.0), LR_rc(1e6), LR_kc(0.0), LR_tol(3
e-4), ndim(3), num_ewald_grid_points(1001)
51 c = 0.5 * (a[0] + a[1] + a[2]);
54 for (
int i = 0; i < 3; i++)
58 T beta1 = (
dot(v2, v2) *
dot(c, v1) -
dot(v1, v2) *
dot(c, v2)) /
60 T beta2 = (
dot(v1, v1) *
dot(c, v2) -
dot(v1, v2) *
dot(c, v1)) /
63 T dist =
sqrt(
dot(p - c, p - c));
67 LR_kc = LR_dim_cutoff / LR_rc;
72 out <<
" Long-range breakup parameters:" << std::endl;
73 out <<
" rc*kc = " << LR_dim_cutoff <<
"; rc = " << LR_rc <<
"; kc = " << LR_kc <<
"; tol = " << LR_tol
helper functions for EinsplineSetBuilder
unsigned ndim
number of strictly enforced periodic spatial dimensions ewald_strict2d sets ndim=2, otherwise ndim=3
void SetLRCutoffs(const TinyVector< TinyVector< T, 3 >, 3 > &a)
Set LR_rc = radius of smallest sphere inside box and kc=dim/rc.
LRBreakupParameters()
default constructor
Tensor<T,D> class for D by D tensor.
T LR_dim_cutoff
Dimensionless cutoff radius for G/R breakups.
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)
void printCutoffs(std::ostream &out)
unsigned num_ewald_grid_points