24 throw std::runtime_error(
"Quasi2D Ewald requires ppn boundary.");
56 pRealType z,
const std::vector<int>& kshell,
64 for (
int ks = 0, ki = 0; ks <
MaxKshell; ks++)
67 for (; ki < kshell[ks + 1]; ki++)
68 u += (*rk1_r++) * (*rk2_r++) + (*rk1_i++) * (*rk2_i++);
void resize(size_type n, Type_t val=Type_t())
Resize the container.
std::vector< PosType > kpts_cart
K-vector in Cartesian coordinates.
helper functions for EinsplineSetBuilder
mRealType LR_kc
Maximum k cutoff.
MakeReturn< UnaryNode< FnFabs, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t abs(const Vector< T1, C1 > &l)
DECLARE_COULOMB_TYPES int MaxKshell
Maxkimum Kshell for the given Kc.
EwaldHandler3D::mRealType mRealType
mRealType slabLogf(mRealType z, mRealType k) const
mRealType evaluate_slab(pRealType z, const std::vector< int > &kshell, const pRealType *restrict rk1_r, const pRealType *restrict rk1_i, const pRealType *restrict rk2_r, const pRealType *restrict rk2_i) const override
Evaluate the long-range potential with the open BC for the D-1 direction.
mRealType slab_vsr_k0(mRealType z) const
const auto & getSimulationCell() const
Specialized paritlce class for atomistic simulations.
size_type size() const
return the current size
void fillFk(const KContainer &KList)
qmcplusplus::LRHandlerBase::pRealType pRealType
mRealType LR_rc
Maximum r cutoff.
MakeReturn< UnaryNode< FnExp, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t exp(const Vector< T1, C1 > &l)
std::vector< int > kshell
kpts which belong to the ith-shell [kshell[i], kshell[i+1])
Vector< mRealType > Fk
Fourier component for all the k-point.
MakeReturn< UnaryNode< FnLog, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t log(const Vector< T1, C1 > &l)
MakeReturn< UnaryNode< FnSqrt, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t sqrt(const Vector< T1, C1 > &l)
std::vector< RealType > ksq
squre of kpts in Cartesian coordniates
std::vector< mRealType > kmags
store |k|
const auto & getLattice() const
base class for LRHandlerTemp<FUNC,BASIS> and DummyLRHanlder<typename Func>
mRealType slabFunc(mRealType z, mRealType k) const
EwaldHandlerQuasi2D(ParticleSet &ref, mRealType kc_in=-1.0)
Vector< mRealType > Fk_symm
Fourier component for each k-shell.