18 #ifndef QMCPLUSPLUS_PLANEWAVEBASIS_BLAS_H 19 #define QMCPLUSPLUS_PLANEWAVEBASIS_BLAS_H 140 const std::string& pwname =
"planewaves",
141 const std::string& pwmultname =
"multipliers",
142 bool resizeContainer =
true);
150 #if defined(PWBASIS_USE_RECURSIVE) 155 inline void BuildRecursionCoefs(
const PosType& pos)
179 for (
int idim = 0; idim < 3; idim++)
188 for (
int n = 1;
n <= 2 * ng;
n++)
190 *cp_ptr++ = (t *= Ctemp);
234 BuildRecursionCoefs(pos);
242 for (
int idim = 0; idim < 3; idim++)
257 inline void evaluateAll(
const ParticleSet& P,
int iat)
259 const PosType& r(P.activeR(iat));
260 BuildRecursionCoefs(r);
271 for (
int idim = 0; idim < 3; idim++)
void evaluateAll(const ParticleSet &P, int iat)
a class that defines a supercell in D-dimensional Euclean space.
PosType twist
twist angle in reduced
helper functions for EinsplineSetBuilder
void evaluate(const PosType &pos)
PWBasis(const PosType &twistangle)
constructor
CrystalLattice< OHMMS_PRECISION, OHMMS_DIM > ParticleLayout
MakeReturn< UnaryNode< FnSin, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t sin(const Vector< T1, C1 > &l)
void setTwistAngle(const PosType &tang)
set the twist angle
std::vector< GIndex_t > gvecs_shifted
Reduced coordinates with offset gvecs_shifted[][idim]=gvecs[][idim]+maxg[idim].
QTBase::ComplexType ComplexType
int maxmaxg
max of maxg[i]
ParticleSet::ParticleLayout ParticleLayout
QMCTraits::PosType PosType
Specialized paritlce class for atomistic simulations.
MakeReturn< UnaryNode< FnCos, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t cos(const Vector< T1, C1 > &l)
void trimforecut()
Remove basis elements if kinetic energy > ecut.
PWBasis()
default constructor
SingleParticlePos toUnit(const TinyVector< T1, D > &r) const
Convert a cartesian vector to a unit vector.
const PosType & activeR(int iat) const
return the active position if the particle is active or the return current position if not ...
std::vector< GIndex_t > gvecs
gvecs in reduced coordiates
std::vector< int > negative
QMCTraits::RealType RealType
int readbasis(hdf_archive &h5basisgroup, RealType ecutoff, const ParticleLayout &lat, const std::string &pwname="planewaves", const std::string &pwmultname="multipliers", bool resizeContainer=true)
Read basisset from hdf5 file.
int NumPlaneWaves
total number of basis functions
ParticleLayout Lattice
local copy of Lattice
QMCTraits::ComplexType ComplexType
Tensor< typename BinaryReturn< T1, T2, OpMultiply >::Type_t, D > dot(const AntiSymTensor< T1, D > &lhs, const AntiSymTensor< T2, D > &rhs)
std::vector< RealType > minusModKplusG2
void eval_e2iphi(int n, const T *restrict phi, T *restrict phase_r, T *restrict phase_i)
PosType twist_cart
twist angle in cartesian
std::vector< PosType > kplusgvecs_cart
std::vector< int > inputmap