![]() |
QMCPACK
|
Public Member Functions | |
LCAOSpinorBuilder (ParticleSet &els, ParticleSet &ions, Communicate *comm, xmlNodePtr cur) | |
constructor More... | |
std::unique_ptr< SPOSet > | createSPOSetFromXML (xmlNodePtr cur) override |
creates and returns SpinorSet More... | |
![]() | |
LCAOrbitalBuilder (ParticleSet &els, ParticleSet &ions, Communicate *comm, xmlNodePtr cur) | |
constructor More... | |
~LCAOrbitalBuilder () override | |
const BasissetMap & | getBasissetMap () const |
![]() | |
SPOSetBuilder (const std::string &type_name, Communicate *comm) | |
virtual | ~SPOSetBuilder () |
void | reserve_states (int nsets=1) |
reserve space for states (usually only one set, multiple for e.g. spin dependent einspline) More... | |
void | modify_states (int index=0) |
allow modification of state information More... | |
void | clear_states (int index=0) |
clear state information More... | |
std::unique_ptr< SPOSet > | createSPOSet (xmlNodePtr cur) |
create an sposet from xml and save the resulting SPOSet More... | |
std::unique_ptr< SPOSet > | createRotatedSPOSet (xmlNodePtr cur) |
create orbital rotation transformation from xml and save the resulting SPOSet More... | |
const std::string & | getTypeName () const |
![]() | |
MPIObjectBase (Communicate *c) | |
constructor with communicator More... | |
int | rank () const |
return the rank of the communicator More... | |
int | getGroupID () const |
return the group id of the communicator More... | |
Communicate * | getCommunicator () const |
return myComm More... | |
Communicate & | getCommRef () const |
return a TEMPORARY reference to Communicate More... | |
mpi_comm_type | getMPI () const |
return MPI communicator if one wants to use MPI directly More... | |
bool | is_manager () const |
return true if the rank == 0 More... | |
const std::string & | getName () const |
return the name More... | |
void | setName (const std::string &aname) |
Private Member Functions | |
bool | loadMO (LCAOrbitalSet &up, LCAOrbitalSet &dn, xmlNodePtr cur) |
load the up and down MO sets More... | |
bool | putFromH5 (LCAOrbitalSet &up, LCAOrbitalSet &dn, xmlNodePtr) |
parse h5 file for spinor info More... | |
Additional Inherited Members | |
![]() | |
using | BasisSet_t = LCAOrbitalSet::basis_type |
using | BasissetMap = std::map< std::string, std::unique_ptr< BasisSet_t > > |
![]() | |
using | indices_t = std::vector< int > |
using | energies_t = std::vector< RealType > |
![]() | |
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 > > |
![]() | |
using | mpi_comm_type = Communicate::mpi_comm_type |
![]() | |
bool | legacy |
whether implementation conforms only to legacy standard More... | |
std::vector< std::unique_ptr< SPOSetInfo > > | states |
state info of all possible states available in the basis More... | |
![]() | |
template<int I, int J> | |
BasisSet_t * | createBasisSet (xmlNodePtr cur) |
create basis set More... | |
template<int I, int J> | |
BasisSet_t * | createBasisSetH5 () |
bool | loadMO (LCAOrbitalSet &spo, xmlNodePtr cur) |
Parse the xml file for information on the Dirac determinants. More... | |
bool | putOccupation (LCAOrbitalSet &spo, xmlNodePtr occ_ptr) |
bool | putFromXML (LCAOrbitalSet &spo, xmlNodePtr coeff_ptr) |
bool | putFromH5 (LCAOrbitalSet &spo, xmlNodePtr coeff_ptr) |
read data from a hdf5 file More... | |
bool | putPBCFromH5 (LCAOrbitalSet &spo, xmlNodePtr coeff_ptr) |
read data from a hdf5 file More... | |
void | LoadFullCoefsFromH5 (hdf_archive &hin, int setVal, PosType &SuperTwist, Matrix< std::complex< RealType >> &Ctemp, bool MultiDet) |
void | LoadFullCoefsFromH5 (hdf_archive &hin, int setVal, PosType &SuperTwist, Matrix< RealType > &Creal, bool Multidet) |
void | EvalPeriodicImagePhaseFactors (PosType SuperTwist, Vector< RealType, OffloadPinnedAllocator< RealType >> &LocPeriodicImagePhaseFactors, Array< RealType, 2, OffloadPinnedAllocator< RealType >> &LocPeriodicImageDisplacements) |
Periodic Image Phase Factors computation to be determined. More... | |
void | EvalPeriodicImagePhaseFactors (PosType SuperTwist, Vector< std::complex< RealType >, OffloadPinnedAllocator< std::complex< RealType >>> &LocPeriodicImagePhaseFactors, Array< RealType, 2, OffloadPinnedAllocator< RealType >> &LocPeriodicImageDisplacements) |
void | readRealMatrixFromH5 (hdf_archive &hin, const std::string &setname, Matrix< LCAOrbitalBuilder::RealType > &Creal) const |
read matrix from h5 file More... | |
![]() | |
virtual std::unique_ptr< SPOSet > | createSPOSet (xmlNodePtr cur, SPOSetInputInfo &input_info) |
create an sposet from a general xml request More... | |
![]() | |
ParticleSet & | targetPtcl |
target ParticleSet More... | |
ParticleSet & | sourcePtcl |
source ParticleSet More... | |
std::map< std::string, std::unique_ptr< BasisSet_t > > | basisset_map_ |
localized basis set map More... | |
bool | cuspCorr |
if true, add cusp correction to orbitals More... | |
std::string | h5_path |
Path to HDF5 Wavefunction. More... | |
TinyVector< int, 3 > | PBCImages |
Number of periodic Images for Orbital evaluation. More... | |
PosType | SuperTwist |
Coordinates Super Twist. More... | |
Vector< ValueType, OffloadPinnedAllocator< ValueType > > | PeriodicImagePhaseFactors |
Periodic Image Phase Factors. Correspond to the phase from the PBCImages. Computed only once. More... | |
Array< RealType, 2, OffloadPinnedAllocator< RealType > > | PeriodicImageDisplacements |
Tensor< double, 3 > | Lattice |
Store Lattice parameters from HDF5 to use in PeriodicImagePhaseFactors. More... | |
bool | doCuspCorrection |
Enable cusp correction. More... | |
std::string | useGPU |
Captured gpu input string. More... | |
Vector< RealType > | Occ |
occupation number More... | |
![]() | |
const std::string | type_name_ |
type name of the SPO objects built by this builder. More... | |
![]() | |
Communicate * | myComm |
pointer to Communicate More... | |
std::string | ClassName |
class Name More... | |
std::string | myName |
name of the object More... | |
Definition at line 26 of file LCAOSpinorBuilder.h.
LCAOSpinorBuilder | ( | ParticleSet & | els, |
ParticleSet & | ions, | ||
Communicate * | comm, | ||
xmlNodePtr | cur | ||
) |
constructor
els | reference to the electrons |
ions | reference to the ions |
Derives from LCAOrbitalBuilder, but will require an h5_path to be set
Definition at line 21 of file LCAOSpinorBuilder.cpp.
References Communicate::barrier_and_abort(), MPIObjectBase::ClassName, LCAOrbitalBuilder::h5_path, and MPIObjectBase::myComm.
|
overridevirtual |
creates and returns SpinorSet
Creates an up and down LCAOrbitalSet calls LCAOSpinorBuilder::loadMO to build up and down from the H5 file registers up and down into a SpinorSet and returns
Reimplemented from LCAOrbitalBuilder.
Definition at line 30 of file LCAOSpinorBuilder.cpp.
References OhmmsAttributeSet::add(), qmcplusplus::app_log(), Communicate::barrier_and_abort(), LCAOrbitalBuilder::basisset_map_, MPIObjectBase::ClassName, LCAOSpinorBuilder::loadMO(), SoaBasisSetBase< T >::makeClone(), MPIObjectBase::myComm, and OhmmsAttributeSet::put().
|
private |
load the up and down MO sets
checks to make sure not PBC and initialize the Occ vector. call putFromH5 to parse the up and down MO coefficients
Definition at line 66 of file LCAOSpinorBuilder.cpp.
References OhmmsAttributeSet::add(), qmcplusplus::app_log(), Communicate::barrier_and_abort(), Communicate::bcast(), LCAOrbitalSet::C, hdf_archive::close(), LCAOrbitalBuilder::h5_path, MPIObjectBase::myComm, hdf_archive::open(), hdf_archive::push(), OhmmsAttributeSet::put(), LCAOSpinorBuilder::putFromH5(), Communicate::rank(), and hdf_archive::read().
Referenced by LCAOSpinorBuilder::createSPOSetFromXML().
|
private |
parse h5 file for spinor info
assumes the h5 file has KPTS_0/eigenset_0(_imag) for the real/imag part of up component of spinor assumes the h5 file as KPTS_0/eigenset_1(_imag) for the real/imag part of dn component of spinor reads the various coefficient matricies and broadcast after this, we have up/dn LCAOrbitalSet that can be registered to the SpinorSet
Definition at line 115 of file LCAOSpinorBuilder.cpp.
References Communicate::barrier_and_abort(), LCAOrbitalSet::C, hdf_archive::close(), Matrix< T, Alloc >::cols(), copy(), LCAOrbitalSet::getBasisSetSize(), SPOSet::getOrbitalSetSize(), LCAOrbitalBuilder::h5_path, MPIObjectBase::myComm, qmcplusplus::n, LCAOrbitalBuilder::Occ, hdf_archive::open(), LCAOrbitalBuilder::putOccupation(), Communicate::rank(), LCAOrbitalBuilder::readRealMatrixFromH5(), Vector< T, Alloc >::resize(), and Matrix< T, Alloc >::rows().
Referenced by LCAOSpinorBuilder::loadMO().