![]() |
QMCPACK
|
Plane-wave basis set. More...
Public Types | |
enum | { PW_VALUE, PW_LAP, PW_GRADX, PW_GRADY, PW_GRADZ, PW_MAXINDEX } |
using | ParticleLayout = ParticleSet::ParticleLayout |
using | GIndex_t = TinyVector< IndexType, 3 > |
![]() | |
enum | { DIM = OHMMS_DIM, DIM_VGL = OHMMS_DIM + 2 } |
using | QTBase = QMCTypes< OHMMS_PRECISION, DIM > |
using | QTFull = QMCTypes< OHMMS_PRECISION_FULL, DIM > |
using | RealType = QTBase::RealType |
using | ComplexType = QTBase::ComplexType |
using | ValueType = QTBase::ValueType |
using | PosType = QTBase::PosType |
using | GradType = QTBase::GradType |
using | TensorType = QTBase::TensorType |
using | IndexType = OHMMS_INDEXTYPE |
define other types More... | |
using | FullPrecRealType = QTFull::RealType |
using | FullPrecValueType = QTFull::ValueType |
using | PropertySetType = RecordNamedProperty< FullPrecRealType > |
define PropertyList_t More... | |
using | PtclGrpIndexes = std::vector< std::pair< int, int > > |
Public Member Functions | |
PWBasis () | |
default constructor More... | |
PWBasis (const PosType &twistangle) | |
constructor More... | |
~PWBasis () | |
void | setTwistAngle (const PosType &tang) |
set the twist angle More... | |
void | reset () |
reset More... | |
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. More... | |
void | trimforecut () |
Remove basis elements if kinetic energy > ecut. More... | |
void | evaluate (const PosType &pos) |
void | evaluateAll (const ParticleSet &P, int iat) |
Public Attributes | |
Matrix< ComplexType > | Z |
Vector< ComplexType > | Zv |
Vector< RealType > | phi |
std::vector< int > | inputmap |
int | NumPlaneWaves |
total number of basis functions More... | |
ParticleLayout | Lattice |
local copy of Lattice More... | |
Private Attributes | |
int | maxmaxg |
max of maxg[i] More... | |
GIndex_t | maxg |
RealType | ecut |
PosType | twist |
twist angle in reduced More... | |
PosType | twist_cart |
twist angle in cartesian More... | |
std::vector< GIndex_t > | gvecs |
gvecs in reduced coordiates More... | |
std::vector< GIndex_t > | gvecs_shifted |
Reduced coordinates with offset gvecs_shifted[][idim]=gvecs[][idim]+maxg[idim]. More... | |
std::vector< RealType > | minusModKplusG2 |
std::vector< PosType > | kplusgvecs_cart |
Matrix< ComplexType > | C |
std::vector< int > | negative |
Plane-wave basis set.
Rewrite of PlaneWaveBasis to utilize blas II or III Support more general input tags
using GIndex_t = TinyVector<IndexType, 3> |
anonymous enum |
Enumerator | |
---|---|
PW_VALUE | |
PW_LAP | |
PW_GRADX | |
PW_GRADY | |
PW_GRADZ | |
PW_MAXINDEX |
Definition at line 77 of file PWBasis.h.
|
inline |
default constructor
Definition at line 117 of file PWBasis.h.
constructor
Definition at line 120 of file PWBasis.h.
|
inline |
Definition at line 284 of file PWBasis.h.
References Vector< T, Alloc >::data(), qmcplusplus::dot(), eval_e2iphi(), PWBasis::kplusgvecs_cart, PWBasis::NumPlaneWaves, PWBasis::phi, and PWBasis::Zv.
Referenced by PWOrbitalSet::evaluate(), PWRealOrbitalSet::evaluate(), PWBasis::evaluateAll(), PWOrbitalSet::evaluateValue(), and PWRealOrbitalSet::evaluateValue().
|
inline |
Definition at line 291 of file PWBasis.h.
References ParticleSet::activeR(), Matrix< T, Alloc >::data(), PWBasis::evaluate(), PWBasis::kplusgvecs_cart, PWBasis::minusModKplusG2, PWBasis::NumPlaneWaves, PWBasis::Z, and PWBasis::Zv.
Referenced by PWOrbitalSet::evaluate_notranspose(), PWRealOrbitalSet::evaluate_notranspose(), PWOrbitalSet::evaluateVGL(), and PWRealOrbitalSet::evaluateVGL().
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.
Apply ecut.
h5basisgroup | h5 node where basis is located |
ecutoff | cutoff energy |
lat | CrystalLattice |
resizeContainer | if true, resize internal storage. |
make a local copy
Definition at line 23 of file PWBasis.cpp.
References qmcplusplus::app_log(), PWBasis::ecut, PWBasis::gvecs, CrystalLattice< T, D >::k_cart(), PWBasis::kplusgvecs_cart, PWBasis::NumPlaneWaves, hdf_archive::read(), and PWBasis::reset().
void reset | ( | ) |
reset
Definition at line 70 of file PWBasis.cpp.
References QMCTraits::DIM, PWBasis::NumPlaneWaves, PWBasis::phi, Matrix< T, Alloc >::resize(), Vector< T, Alloc >::resize(), PWBasis::trimforecut(), PWBasis::Z, and PWBasis::Zv.
Referenced by PWBasis::readbasis(), and PWBasis::setTwistAngle().
void setTwistAngle | ( | const PosType & | tang | ) |
set the twist angle
Definition at line 60 of file PWBasis.cpp.
References qmcplusplus::dot(), PWBasis::maxmaxg, PWBasis::reset(), and PWBasis::twist.
void trimforecut | ( | ) |
Remove basis elements if kinetic energy > ecut.
Keep and indexmap so we know how to match coefficients on read.
Definition at line 83 of file PWBasis.cpp.
References qmcplusplus::abs(), qmcplusplus::app_log(), PWBasis::C, qmcplusplus::dot(), PWBasis::gvecs, PWBasis::gvecs_shifted, PWBasis::inputmap, CrystalLattice< T, D >::k_cart(), PWBasis::kplusgvecs_cart, PWBasis::maxg, PWBasis::maxmaxg, PWBasis::minusModKplusG2, PWBasis::NumPlaneWaves, OHMMS_DIM, Matrix< T, Alloc >::resize(), PWBasis::twist, and PWBasis::twist_cart.
Referenced by PWBasis::reset().
|
private |
Definition at line 66 of file PWBasis.h.
Referenced by PWBasis::trimforecut().
|
private |
Definition at line 52 of file PWBasis.h.
Referenced by PWBasis::readbasis().
|
private |
gvecs in reduced coordiates
Definition at line 59 of file PWBasis.h.
Referenced by PWBasis::readbasis(), and PWBasis::trimforecut().
|
private |
Reduced coordinates with offset gvecs_shifted[][idim]=gvecs[][idim]+maxg[idim].
Definition at line 61 of file PWBasis.h.
Referenced by PWBasis::trimforecut().
std::vector<int> inputmap |
Definition at line 108 of file PWBasis.h.
Referenced by PWOrbitalSet::addVector(), PWRealOrbitalSet::addVector(), and PWBasis::trimforecut().
|
private |
Definition at line 64 of file PWBasis.h.
Referenced by PWBasis::evaluate(), PWBasis::evaluateAll(), PWBasis::readbasis(), and PWBasis::trimforecut().
|
private |
Definition at line 50 of file PWBasis.h.
Referenced by PWBasis::trimforecut().
|
private |
max of maxg[i]
Definition at line 48 of file PWBasis.h.
Referenced by PWBasis::setTwistAngle(), and PWBasis::trimforecut().
|
private |
Definition at line 63 of file PWBasis.h.
Referenced by PWBasis::evaluateAll(), and PWBasis::trimforecut().
int NumPlaneWaves |
total number of basis functions
Definition at line 111 of file PWBasis.h.
Referenced by PWBasis::evaluate(), PWBasis::evaluateAll(), PWBasis::readbasis(), PWBasis::reset(), PWOrbitalSet::resize(), PWRealOrbitalSet::resize(), and PWBasis::trimforecut().
Definition at line 106 of file PWBasis.h.
Referenced by PWBasis::evaluate(), and PWBasis::reset().
|
private |
twist angle in reduced
Definition at line 54 of file PWBasis.h.
Referenced by PWBasis::setTwistAngle(), and PWBasis::trimforecut().
|
private |
twist angle in cartesian
Definition at line 56 of file PWBasis.h.
Referenced by PWBasis::trimforecut().
Definition at line 87 of file PWBasis.h.
Referenced by PWOrbitalSet::evaluate_notranspose(), PWRealOrbitalSet::evaluate_notranspose(), PWBasis::evaluateAll(), PWOrbitalSet::evaluateVGL(), PWRealOrbitalSet::evaluateVGL(), and PWBasis::reset().
Vector<ComplexType> Zv |
Definition at line 89 of file PWBasis.h.
Referenced by PWOrbitalSet::evaluate(), PWRealOrbitalSet::evaluate(), PWBasis::evaluate(), PWBasis::evaluateAll(), PWOrbitalSet::evaluateValue(), PWRealOrbitalSet::evaluateValue(), and PWBasis::reset().