17 #ifndef QMCPLUSPLUS_HEGGRID_H 18 #define QMCPLUSPLUS_HEGGRID_H 32 static constexpr std::array<int, 31>
n_within_shell{1, 7, 19, 27, 33, 57, 81, 93, 123, 147, 171,
33 179, 203, 251, 257, 305, 341, 365, 389, 437, 461, 485,
34 515, 587, 619, 691, 739, 751, 799, 847, 895};
41 inline int getNC(
int nup)
const {
return static_cast<int>(
std::pow(static_cast<T>(nup), 1.0 / 3.0)) / 2 + 1; }
66 inline T
getCellLength(
int nptcl, T rs_in)
const {
return std::pow(4.0 * M_PI * nptcl / 3.0, 1.0 / 3.0) * rs_in; }
a class that defines a supercell in D-dimensional Euclean space.
helper functions for EinsplineSetBuilder
int getShellIndex(int nkpt) const
static constexpr std::array< int, 31 > n_within_shell
Declaration of CrystalLattice<T,D>
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)
int getNC(int nup) const
return the estimated number of grid in each direction
TinyVector< T, 3 > upper_bound(const TinyVector< T, 3 > &a, const TinyVector< T, 3 > &b)
helper function to determine the upper bound of a domain (need to move up)
int getNumberOfKpoints(int nsh) const
T getCellLength(int nptcl, T rs_in) const
return the cell size for the number of particles and rs