15 #ifndef QMCPLUSPLUS_KCONTAINER_H 16 #define QMCPLUSPLUS_KCONTAINER_H 50 std::vector<TinyVector<int, DIM>>
kpts;
56 std::vector<RealType>
ksq;
80 bool useSphere =
true);
a class that defines a supercell in D-dimensional Euclean space.
std::vector< PosType > kpts_cart
K-vector in Cartesian coordinates.
helper functions for EinsplineSetBuilder
VectorSoaContainer< RealType, DIM, OffloadAllocator< RealType > > kpts_cart_soa_
K-vector in Cartesian coordinates in SoA layout.
CrystalLattice< OHMMS_PRECISION, OHMMS_DIM > ParticleLayout
Soa Container for D-dim vectors.
SoA adaptor class for Vector<TinyVector<T,D> >
const auto & get_kpts_cart_soa() const
CrystalLattice< OHMMS_PRECISION, OHMMS_DIM > lattice
RealType kcutoff
The cutoff up to which k-vectors are generated.
PtclOnLatticeTraits::ParticleLayout ParticleLayout
TinyVector< int, DIM+1 > mmax
maximum integer translations of reciprocal cell within kc.
std::vector< int > kshell
kpts which belong to the ith-shell [kshell[i], kshell[i+1])
void findApproxMMax(const ParticleLayout &lattice, unsigned ndim)
compute approximate parallelpiped that surrounds kc
std::vector< int > minusk
Given a k index, return index to -k.
std::vector< RealType > ksq
squre of kpts in Cartesian coordniates
void updateKLists(const ParticleLayout &lattice, RealType kc, unsigned ndim, const PosType &twist=PosType(), bool useSphere=true)
k points sorted by the |k| excluding |k|=0
std::vector< TinyVector< int, DIM > > kpts
K-vector in reduced coordinates.
int numk
number of k-points
void BuildKLists(const ParticleLayout &lattice, const PosType &twist, bool useSphere)
construct the container for k-vectors