14 #ifndef QMCPLUSPLUS_LPQHISRCOULOMBBASIS_H 15 #define QMCPLUSPLUS_LPQHISRCOULOMBBASIS_H 38 std::vector<mRealType>
tvec;
76 int alpha =
n - 3 * i;
89 (Sa[0] + x * (Sa[1] + x * (Sa[2] + x * (Sa[3] + x * (Sa[4] + x * Sa[5])))));
95 (Sa[0] + x * (Sa[1] + x * (Sa[2] + x * (Sa[3] + x * (Sa[4] + x * Sa[5])))));
102 int alpha =
n - 3 * i;
108 if (r < ra || r > rc)
114 (Sa[0] + x * (Sa[1] + x * (Sa[2] + x * (Sa[3] + x * (Sa[4] + x * Sa[5])))));
119 return std::pow(
delta, alpha) * (Sa[0] + x * (Sa[1] + x * (Sa[2] + x * (Sa[3] + x * (Sa[4] + x * Sa[5])))));
126 int alpha =
n - 3 * i;
137 if (r < ra || r > rc)
143 -
std::pow(
delta, alpha - 1) *
Mfactor[alpha] * (Sa[0] + x * (Sa[1] + x * (Sa[2] + x * (Sa[3] + x * Sa[4]))));
148 polyderiv =
std::pow(
delta, alpha - 1) * (Sa[0] + x * (Sa[1] + x * (Sa[2] + x * (Sa[3] + x * Sa[4]))));
151 return rinv * (polyderiv - hval);
157 int alpha =
n - 3 * i;
217 for (
int i = 0; i < 5; i++)
219 for (
int j = 0; j < 3; j++)
221 S1(j, i) =
static_cast<double>(i + 1.0) *
S(j, i + 1);
a class that defines a supercell in D-dimensional Euclean space.
mRealType Dminus(int i, mRealType k, int n) const
helper functions for EinsplineSetBuilder
std::complex< mRealType > Eminus(int i, mRealType k, int n) const
A derivative of LRBasis class to provide the functionality of the LPQHI basis.
mRealType c(int n, mRealType k) const override
std::vector< mRealType > tvec
EwaldHandler3D::mRealType mRealType
LPQHISRCoulombBasis(const LPQHISRCoulombBasis &b, const ParticleLayout &ref)
mRealType Dplus_dG(int i, mRealType k, int n) const
mRealType dc_dk(int n, mRealType k) const override
void resize(size_type n, size_type m)
Resize the container.
MakeReturn< BinaryNode< FnPow, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t, typename CreateLeaf< Vector< T2, C2 > >::Leaf_t > >::Expression_t pow(const Vector< T1, C1 > &l, const Vector< T2, C2 > &r)
mRealType rh(int n, mRealType r) const
std::complex< mRealType > Eplus(int i, mRealType k, int n) const
Base-class for long-range breakups.
void set_rc(mRealType rc) override
mRealType Dminus_dG(int i, mRealType k, int n) const
std::complex< mRealType > Eminus_dG(int i, mRealType k, int n) const
mRealType Dplus(int i, mRealType k, int n) const
mRealType m_rc
Real-space cutoff for short-range part.
mRealType h(int n, mRealType r) const override
mRealType dh_dr(int n, mRealType r) const override
LPQHISRCoulombBasis(const ParticleLayout &ref)
DECLARE_COULOMB_TYPES int BasisSize
size of the basis elements
std::complex< mRealType > Eplus_dG(int i, mRealType k, int n) const
mRealType get_delta() const
mRealType hintr2(int n) const override
mRealType dh_ddelta(int n, mRealType r) const