![]() |
QMCPACK
|
Container for k-points. More...
Public Types | |
using | ParticleLayout = PtclOnLatticeTraits::ParticleLayout |
![]() | |
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 | |
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 More... | |
const auto & | get_kpts_cart_soa () const |
Public Attributes | |
int | numk |
number of k-points More... | |
TinyVector< int, DIM+1 > | mmax |
maximum integer translations of reciprocal cell within kc. More... | |
std::vector< TinyVector< int, DIM > > | kpts |
K-vector in reduced coordinates. More... | |
std::vector< PosType > | kpts_cart |
K-vector in Cartesian coordinates. More... | |
std::vector< RealType > | ksq |
squre of kpts in Cartesian coordniates More... | |
std::vector< int > | minusk |
Given a k index, return index to -k. More... | |
std::vector< int > | kshell |
kpts which belong to the ith-shell [kshell[i], kshell[i+1]) More... | |
Private Member Functions | |
void | findApproxMMax (const ParticleLayout &lattice, unsigned ndim) |
compute approximate parallelpiped that surrounds kc More... | |
void | BuildKLists (const ParticleLayout &lattice, const PosType &twist, bool useSphere) |
construct the container for k-vectors More... | |
Private Attributes | |
RealType | kcutoff |
The cutoff up to which k-vectors are generated. More... | |
VectorSoaContainer< RealType, DIM, OffloadAllocator< RealType > > | kpts_cart_soa_ |
K-vector in Cartesian coordinates in SoA layout. More... | |
Container for k-points.
It generates a set of k-points that are unit-translations of the reciprocal-space cell. K-points are generated within a spherical cutoff set by the supercell
Definition at line 29 of file KContainer.h.
Definition at line 37 of file KContainer.h.
|
private |
construct the container for k-vectors
Definition at line 105 of file KContainer.cpp.
References qmcplusplus::abs(), QMCTraits::DIM, qmcplusplus::dot(), KContainer::kcutoff, KContainer::kpts, KContainer::kpts_cart, KContainer::kpts_cart_soa_, KContainer::kshell, KContainer::ksq, qmcplusplus::lattice, KContainer::minusk, KContainer::mmax, and KContainer::numk.
Referenced by KContainer::updateKLists().
|
private |
compute approximate parallelpiped that surrounds kc
lattice | supercell |
Definition at line 44 of file KContainer.cpp.
References qmcplusplus::app_log(), QMCTraits::DIM, qmcplusplus::dot(), qmcplusplus::floor(), LRCoulombSingleton::isQuasi2D(), KContainer::kcutoff, qmcplusplus::lattice, KContainer::mmax, and qmcplusplus::sqrt().
Referenced by KContainer::updateKLists().
|
inline |
Definition at line 82 of file KContainer.h.
References KContainer::kpts_cart_soa_.
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
The first for |k| The second for a map to the full index. The size of the second is the degeneracy. update k-vectors
sc | supercell |
kc | cutoff radius in the K |
twist | shifts the center of the grid of k-vectors |
useSphere | if true, use the |K| |
Definition at line 24 of file KContainer.cpp.
References APP_ABORT, qmcplusplus::app_log(), KContainer::BuildKLists(), KContainer::findApproxMMax(), KContainer::kcutoff, KContainer::kpts, KContainer::kshell, and qmcplusplus::lattice.
Referenced by FreeOrbitalBuilder::createSPOSetFromXML(), SimulationCell::resetLRBox(), LRBreakup< BreakupBasis >::SetupKVecs(), and qmcplusplus::TEST_CASE().
|
private |
The cutoff up to which k-vectors are generated.
Definition at line 33 of file KContainer.h.
Referenced by KContainer::BuildKLists(), KContainer::findApproxMMax(), and KContainer::updateKLists().
std::vector<TinyVector<int, DIM> > kpts |
K-vector in reduced coordinates.
Definition at line 50 of file KContainer.h.
Referenced by KContainer::BuildKLists(), FreeOrbitalBuilder::createSPOSetFromXML(), QMCFiniteSize::initialize(), qmcplusplus::TEST_CASE(), and KContainer::updateKLists().
std::vector<PosType> kpts_cart |
K-vector in Cartesian coordinates.
Definition at line 53 of file KContainer.h.
Referenced by KContainer::BuildKLists(), StructFact::computeRhok(), FreeOrbitalBuilder::createSPOSetFromXML(), EwaldHandler3D::filldFk_dk(), LRHandlerSRCoulomb< Func, BreakupBasis >::filldFk_dk(), EwaldHandler2D::fillFk(), EwaldHandlerQuasi2D::fillFk(), EwaldHandler3D::fillFk(), LRRPABFeeHandlerTemp< Func, BreakupBasis >::fillFk(), LRRPAHandlerTemp< Func, BreakupBasis >::fillFk(), LRHandlerTemp< Func, BreakupBasis >::fillFk(), LRHandlerSRCoulomb< Func, BreakupBasis >::fillYk(), LRHandlerSRCoulomb< Func, BreakupBasis >::fillYkg(), EwaldHandler3D::fillYkgstrain(), LRHandlerSRCoulomb< Func, BreakupBasis >::fillYkgstrain(), and qmcplusplus::TEST_CASE().
|
private |
K-vector in Cartesian coordinates in SoA layout.
Definition at line 94 of file KContainer.h.
Referenced by KContainer::BuildKLists(), and KContainer::get_kpts_cart_soa().
std::vector<int> kshell |
kpts which belong to the ith-shell [kshell[i], kshell[i+1])
Definition at line 61 of file KContainer.h.
Referenced by KContainer::BuildKLists(), QMCFiniteSize::calcPotentialDiscrete(), QMCFiniteSize::calcPotentialInt(), EwaldHandlerQuasi2D::fillFk(), EwaldHandler2D::fillFk(), EwaldHandler3D::fillFk(), LRRPABFeeHandlerTemp< Func, BreakupBasis >::fillFk(), LRRPAHandlerTemp< Func, BreakupBasis >::fillFk(), LRHandlerTemp< Func, BreakupBasis >::fillFk(), LRHandlerSRCoulomb< Func, BreakupBasis >::fillYk(), LRHandlerSRCoulomb< Func, BreakupBasis >::fillYkg(), EwaldHandler3D::fillYkgstrain(), LRHandlerSRCoulomb< Func, BreakupBasis >::fillYkgstrain(), QMCFiniteSize::printSkRawSphAvg(), LRBreakup< BreakupBasis >::SetupKVecs(), and KContainer::updateKLists().
std::vector<RealType> ksq |
squre of kpts in Cartesian coordniates
Definition at line 56 of file KContainer.h.
Referenced by KContainer::BuildKLists(), EwaldHandler3D::filldFk_dk(), LRHandlerSRCoulomb< Func, BreakupBasis >::filldFk_dk(), EwaldHandler2D::fillFk(), EwaldHandlerQuasi2D::fillFk(), EwaldHandler3D::fillFk(), LRRPABFeeHandlerTemp< Func, BreakupBasis >::fillFk(), LRRPAHandlerTemp< Func, BreakupBasis >::fillFk(), LRHandlerTemp< Func, BreakupBasis >::fillFk(), LRHandlerSRCoulomb< Func, BreakupBasis >::fillYk(), LRHandlerSRCoulomb< Func, BreakupBasis >::fillYkg(), EwaldHandler3D::fillYkgstrain(), LRHandlerSRCoulomb< Func, BreakupBasis >::fillYkgstrain(), QMCFiniteSize::printSkRawSphAvg(), and LRBreakup< BreakupBasis >::SetupKVecs().
std::vector<int> minusk |
Given a k index, return index to -k.
Definition at line 59 of file KContainer.h.
Referenced by KContainer::BuildKLists(), and FreeOrbitalBuilder::createSPOSetFromXML().
TinyVector<int, DIM + 1> mmax |
maximum integer translations of reciprocal cell within kc.
Last index is max. of first dimension+1
Definition at line 46 of file KContainer.h.
Referenced by KContainer::BuildKLists(), and KContainer::findApproxMMax().
int numk |
number of k-points
Definition at line 40 of file KContainer.h.
Referenced by KContainer::BuildKLists(), StructFact::computeRhok(), LRBreakup< BreakupBasis >::SetupKVecs(), and qmcplusplus::TEST_CASE().