![]() |
QMCPACK
|
derived class from WaveFunctionComponentBuilder More...
Public Member Functions | |
SlaterDetBuilder (Communicate *comm, SPOSetBuilderFactory &factory, ParticleSet &els, TrialWaveFunction &psi, const PSetMap &psets) | |
constructor More... | |
std::unique_ptr< WaveFunctionComponent > | buildComponent (xmlNodePtr cur) override |
initialize the Antisymmetric wave function for electrons More... | |
![]() | |
WaveFunctionComponentBuilder (Communicate *comm, ParticleSet &p) | |
constructor More... | |
virtual | ~WaveFunctionComponentBuilder ()=default |
![]() | |
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 | |
std::unique_ptr< DiracDeterminantBase > | putDeterminant (xmlNodePtr cur, int spin_group, const std::unique_ptr< SPOSetBuilder > &legacy_input_sposet_builder, const std::unique_ptr< BackflowTransformation > &BFTrans) |
process a determinant element More... | |
std::unique_ptr< MultiSlaterDetTableMethod > | createMSDFast (xmlNodePtr cur, ParticleSet &target_ptcl, std::vector< std::unique_ptr< SPOSet >> &&spo_clones, const bool spinor, const bool use_precompute) const |
bool | readDetList (xmlNodePtr cur, std::vector< std::vector< ci_configuration >> &uniqueConfgs, std::vector< std::vector< size_t >> &C2nodes, std::vector< std::string > &CItags, std::vector< ValueType > &coeff, bool &optimizeCI, std::vector< int > &nptcls, std::unique_ptr< CSFData > &csf_data_ptr) const |
bool | readDetListH5 (xmlNodePtr cur, std::vector< std::vector< ci_configuration >> &uniqueConfgs, std::vector< std::vector< size_t >> &C2nodes, std::vector< std::string > &CItags, std::vector< ValueType > &coeff, bool &optimizeCI, std::vector< int > &nptcls) const |
template<typename VT , std::enable_if_t<(std::is_same< VT, ValueType >::value) &&(std::is_floating_point< VT >::value), int > = 0> | |
void | readCoeffs (hdf_archive &hin, std::vector< VT > &ci_coeff, size_t n_dets, int ext_level) const |
template<typename VT > | |
void | readCoeffs (hdf_archive &hin, std::vector< VT > &ci_coeff, size_t n_dets, int ext_level) const |
Private Attributes | |
SPOSetBuilderFactory & | sposet_builder_factory_ |
reference to the sposet_builder_factory, should be const once the legacy input style is removed More... | |
TrialWaveFunction & | targetPsi |
reference to TrialWaveFunction, should go away as the CUDA code. More... | |
const PSetMap & | ptclPool |
reference to a PSetMap More... | |
Additional Inherited Members | |
![]() | |
using | RealType = WaveFunctionComponent::RealType |
using | ValueType = WaveFunctionComponent::ValueType |
using | PosType = WaveFunctionComponent::PosType |
using | GradType = WaveFunctionComponent::GradType |
using | PSetMap = std::map< std::string, const std::unique_ptr< ParticleSet > > |
![]() | |
using | mpi_comm_type = Communicate::mpi_comm_type |
![]() | |
static std::string | wfs_tag = "wavefunction" |
reserved tags for the elements associated with the many-body wavefunctions More... | |
static std::string | param_tag = "parameter" |
the element name for a parameter More... | |
static std::string | dtable_tag = "distancetable" |
the element name for a distancetable More... | |
static std::string | jastrow_tag = "jastrow" |
the element name for jatrow More... | |
static std::string | detset_tag = "determinantset" |
the element name for a set of Slater determinants, contains 1..* Slater determinants More... | |
static std::string | sd_tag = "slaterdeterminant" |
the element name for a Slater determinant, contains 1..* determinants More... | |
static std::string | det_tag = "determinant" |
the element name for a determinant, may contain (0..*) orbital or parameter element More... | |
static std::string | rn_tag = "determinant_rn" |
the element name for a released node determinant, may contain (0..*) orbital or parameter element More... | |
static std::string | spo_tag = "psi" |
the element name for single-particle orbital More... | |
static std::string | sposet_tag = "sposet" |
the element name for single-particle orbital set More... | |
static std::string | ionorb_tag = "ionwf" |
the element name for an ion wavefunction More... | |
static std::string | backflow_tag = "backflow" |
the element name for a backflow transformation More... | |
static std::string | multisd_tag = "multideterminant" |
the element name for a multi slater determinant wavefunction More... | |
![]() | |
ParticleSet & | targetPtcl |
reference to the particle set on which targetPsi is defined More... | |
xmlNodePtr | myNode |
xmlNode operated by this object More... | |
![]() | |
Communicate * | myComm |
pointer to Communicate More... | |
std::string | ClassName |
class Name More... | |
std::string | myName |
name of the object More... | |
derived class from WaveFunctionComponentBuilder
Builder SlaterDeterminant with LCOrbitalSet
Definition at line 40 of file SlaterDetBuilder.h.
SlaterDetBuilder | ( | Communicate * | comm, |
SPOSetBuilderFactory & | factory, | ||
ParticleSet & | els, | ||
TrialWaveFunction & | psi, | ||
const PSetMap & | psets | ||
) |
constructor
els | reference to the electrons |
psi | reference to the wavefunction |
ions | reference to the ions |
Definition at line 42 of file SlaterDetBuilder.cpp.
References MPIObjectBase::ClassName.
|
overridevirtual |
initialize the Antisymmetric wave function for electrons
process <determinantset>
cur | the current xml node |
determinantset
save the current node
Implements WaveFunctionComponentBuilder.
Definition at line 61 of file SlaterDetBuilder.cpp.
References OhmmsAttributeSet::add(), SPOSetBuilderFactory::addSPOSet(), qmcplusplus::app_log(), qmcplusplus::app_summary(), qmcplusplus::app_warning(), WaveFunctionComponentBuilder::backflow_tag, Communicate::barrier_and_abort(), BackflowBuilder::buildBackflowTransformation(), MPIObjectBase::ClassName, SlaterDetBuilder::createMSDFast(), SPOSetBuilderFactory::createSPOSetBuilder(), DELETED, qmcplusplus::det(), WaveFunctionComponentBuilder::det_tag, SPOSetBuilderFactory::empty(), ReportEngine::error(), getNodeName(), SPOSetBuilderFactory::getSPOSet(), ParticleSet::groups(), ParticleSet::isSpinor(), SPOSet::makeClone(), WaveFunctionComponentBuilder::multisd_tag, MPIObjectBase::myComm, SlaterDetBuilder::ptclPool, OhmmsAttributeSet::put(), SlaterDetBuilder::putDeterminant(), WaveFunctionComponentBuilder::rn_tag, WaveFunctionComponentBuilder::sd_tag, SlaterDetBuilder::sposet_builder_factory_, WaveFunctionComponentBuilder::sposet_tag, and WaveFunctionComponentBuilder::targetPtcl.
|
private |
Definition at line 466 of file SlaterDetBuilder.cpp.
References qmcplusplus::abs(), OhmmsAttributeSet::add(), APP_ABORT, qmcplusplus::app_log(), qmcplusplus::app_warning(), qmcplusplus::Units::charge::C, ParticleSet::first(), qmcplusplus::for(), getNodeName(), getXMLAttributeValue(), ParticleSet::groups(), ParticleSet::groupsize(), optimize::LINEAR_P, norm(), OhmmsAttributeSet::put(), SlaterDetBuilder::readDetList(), SlaterDetBuilder::readDetListH5(), and WaveFunctionComponentBuilder::targetPtcl.
Referenced by SlaterDetBuilder::buildComponent().
|
private |
process a determinant element
process determiment element
cur | xml node |
spin_group | the spin group of the created determinant |
determinant has
Definition at line 248 of file SlaterDetBuilder.cpp.
References qmcplusplus::ACCEL, OhmmsAttributeSet::add(), SPOSetBuilderFactory::addSPOSet(), APP_ABORT, qmcplusplus::app_log(), qmcplusplus::app_summary(), qmcplusplus::app_warning(), PlatformSelector< KIND >::candidate_values(), MPIObjectBase::ClassName, qmcplusplus::CPU, qmcplusplus::CUDA, SpeciesSet::findSpecies(), ParticleSet::first(), ParticleSet::getSpeciesSet(), SPOSetBuilderFactory::getSPOSet(), qmcplusplus::HOST, ParticleSet::last(), SPOSet::makeClone(), OhmmsAttributeSet::put(), PlatformSelector< KIND >::selectPlatform(), SpeciesSet::size(), SpeciesSet::speciesName, SlaterDetBuilder::sposet_builder_factory_, qmcplusplus::SYCL, and WaveFunctionComponentBuilder::targetPtcl.
Referenced by SlaterDetBuilder::buildComponent().
|
inlineprivate |
Determinant coeffs are stored in Coeff for the ground state and Coeff_N for the Nth excited state. The Ground State is always stored in Coeff Backward compatibility is insured
Definition at line 106 of file SlaterDetBuilder.h.
References hdf_archive::read().
Referenced by SlaterDetBuilder::readDetListH5().
|
inlineprivate |
Determinant coeffs are stored in Coeff_N where N is Nth excited state. The Ground State is always stored in Coeff. Backward compatibility is insured
Definition at line 125 of file SlaterDetBuilder.h.
References qmcplusplus::app_log(), hdf_archive::read(), and hdf_archive::readEntry().
|
private |
Definition at line 625 of file SlaterDetBuilder.cpp.
References qmcplusplus::abs(), OhmmsAttributeSet::add(), APP_ABORT, qmcplusplus::app_log(), Communicate::barrier_and_abort(), getNodeName(), MPIObjectBase::myComm, and OhmmsAttributeSet::put().
Referenced by SlaterDetBuilder::createMSDFast().
|
private |
64 bit fixed width integer
the number of 64 bit integers which represent the binary string for occupation
IF OPTIMIZED COEFFICIENTS ARE PRESENT IN opt_coeffs Path THEY ARE READ FROM DIFFERENT HDF5 the replace the previous coeff It is important to still read all old coeffs and only replace the optimized ones in order to keep coherence with the cutoff on the number of determinants REMEMBER!! FIRST COEFF IS FIXED. THEREFORE WE DO NOT REPLACE IT!!!
This loop will find all unique Determinants in and store them "unsorted" in a new container uniqueConfg_up and uniqueConfg_dn. The sorting is not done here
Definition at line 995 of file SlaterDetBuilder.cpp.
References qmcplusplus::abs(), OhmmsAttributeSet::add(), APP_ABORT, qmcplusplus::app_log(), hdf_archive::close(), getNodeName(), hdf_archive::is_dataset(), hdf_archive::is_dataset_of_type(), hdf_archive::open(), hdf_archive::push(), OhmmsAttributeSet::put(), hdf_archive::read(), SlaterDetBuilder::readCoeffs(), and hdf_archive::readEntry().
Referenced by SlaterDetBuilder::createMSDFast().
|
private |
reference to a PSetMap
Definition at line 66 of file SlaterDetBuilder.h.
Referenced by SlaterDetBuilder::buildComponent().
|
private |
reference to the sposet_builder_factory, should be const once the legacy input style is removed
Definition at line 62 of file SlaterDetBuilder.h.
Referenced by SlaterDetBuilder::buildComponent(), and SlaterDetBuilder::putDeterminant().
|
private |
reference to TrialWaveFunction, should go away as the CUDA code.
Definition at line 64 of file SlaterDetBuilder.h.