15 #ifndef QMCPLUSPLUS_EWALD_QUASI2D_HANDLER_H 16 #define QMCPLUSPLUS_EWALD_QUASI2D_HANDLER_H 43 const std::vector<int>& kshell,
47 const pRealType* restrict rk2_i)
const override;
52 throw std::runtime_error(
"Quasi2D Ewald sr derivative not implemented");
56 throw std::runtime_error(
"Quasi2D Ewald lr derivative not implemented");
60 throw std::runtime_error(
"Quasi2D Ewald vlr_k not implemented");
mRealType evaluateSR_k0() const override
evaluate
mRealType evaluateLR_r0() const override
evaluate for the self-interaction term
helper functions for EinsplineSetBuilder
void Breakup(ParticleSet &ref, mRealType rs_in) override
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
LRHandlerBase * makeClone(ParticleSet &ref) const override
make clone
mRealType evaluate(mRealType r, mRealType rinv) const override
Specialized paritlce class for atomistic simulations.
void fillFk(const KContainer &KList)
qmcplusplus::LRHandlerBase::pRealType pRealType
void resetTargetParticleSet(ParticleSet &ref) override
void initBreakup(ParticleSet &ref) override
mRealType lrDf(mRealType r) const override
MakeReturn< UnaryNode< FnSqrt, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t sqrt(const Vector< T1, C1 > &l)
std::vector< mRealType > kmags
store |k|
mRealType srDf(mRealType r, mRealType rinv) const override
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)
mRealType evaluateLR(mRealType r) const override
Define LRHandlerBase and DummyLRHandler<typename Func>
virtual mRealType evaluate_vlr_k(mRealType k) const override