82 int alpha =
n - 3 * j;
84 int mysign = 1 - 2 * (alpha % 2);
87 for (
int i = 0; i <= 5; i++)
102 int alpha =
m - 3 * i;
106 for (
int n = 0;
n <= 5;
n++)
108 sum +=
S(alpha,
n) * (
Dplus(i, k,
n));
113 for (
int n = 0;
n <= 5;
n++)
121 for (
int n = 0;
n <= 5;
n++)
133 std::complex<mRealType> eye(0.0, 1.0);
138 return (-(eye / k) * e1 * e2);
142 std::complex<mRealType> t1, t2;
143 t1 = std::complex<mRealType>(
cos(k *
delta * (i + 1)),
sin(k *
delta * (i + 1)));
146 return (-(eye / k) * (t1 + t2));
153 std::complex<mRealType> eye(0.0, 1.0);
158 return (-(eye / k) * e1 * e2);
162 std::complex<mRealType> t1, t2;
166 return (-(eye / k) * (t1 + t2));
173 std::complex<mRealType> Z1 =
Eplus(i, k,
n);
180 std::complex<mRealType> Z1 =
Eminus(i, k,
n);
187 int alpha =
m - 3 * i;
191 for (
int n = 0;
n <= 5;
n++)
198 for (
int n = 0;
n <= 5;
n++)
206 for (
int n = 0;
n <= 5;
n++)
217 std::complex<mRealType> eye(0.0, 1.0);
221 std::complex<mRealType> eigr(
cos(k * ri),
sin(k * ri));
224 return Eplus(i, k,
n) * (eye * ri - kinv) +
delta * kinv * eigr * eigd;
226 return -kinv *
Eplus(i, k,
n) -
232 std::complex<mRealType> eye(0.0, 1.0);
236 std::complex<mRealType> eigr(
cos(k * ri),
sin(k * ri));
241 std::complex<mRealType> eigr(
cos(k * ri),
sin(k * ri));
242 return Eminus(i, k,
n) * (eye * ri - kinv) -
delta * kinv * eigr * eigd;
245 return -kinv *
Eminus(i, k,
n) -
254 std::complex<mRealType> Z1 =
Eplus_dG(i, k,
n);
263 std::complex<mRealType> Z1 =
Eminus_dG(i, k,
n);
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
mRealType c(int n, mRealType k) const override
MakeReturn< UnaryNode< FnSin, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t sin(const Vector< T1, C1 > &l)
EwaldHandler3D::mRealType mRealType
mRealType Dplus_dG(int i, mRealType k, int n) const
mRealType dc_dk(int n, mRealType k) const override
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)
MakeReturn< UnaryNode< FnCos, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t cos(const Vector< T1, C1 > &l)
Scalar_t Volume
Physical properties of a supercell.
std::complex< mRealType > Eplus(int i, mRealType k, int n) const
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.
DECLARE_COULOMB_TYPES int BasisSize
size of the basis elements
std::complex< mRealType > Eplus_dG(int i, mRealType k, int n) const
mRealType hintr2(int n) const override