![]() |
QMCPACK
|
Classes | |
struct | DriverAssemblyState |
Public Member Functions | |
QMCDriverFactory (const ProjectData &project_data) | |
Application uses this constructor param[in] project_data this is stored as a reference and this state controls later behavior. More... | |
DriverAssemblyState | readSection (xmlNodePtr cur) const |
default constructor More... | |
std::unique_ptr< QMCDriverInterface > | createQMCDriver (xmlNodePtr cur, DriverAssemblyState &das, const std::optional< EstimatorManagerInput > &emi, MCWalkerConfiguration &qmc_system, ParticleSetPool &particle_pool, WaveFunctionPool &wave_function_pool, HamiltonianPool &hamiltonian_pool, Communicate *comm) const |
create a new QMCDriver More... | |
Private Attributes | |
const ProjectData & | project_data_ |
project info for accessing global fileroot and series id More... | |
Definition at line 41 of file QMCDriverFactory.h.
struct qmcplusplus::QMCDriverFactory::DriverAssemblyState |
Definition at line 44 of file QMCDriverFactory.h.
Class Members | ||
---|---|---|
bool | append_run | |
bool | enable_profiling | |
QMCRunType | new_run_type | |
string | traces_tag | |
string | walkerlogs_tag | |
bitset< QMC_MODE_MAX > | what_to_do |
QMCDriverFactory | ( | const ProjectData & | project_data | ) |
Application uses this constructor param[in] project_data this is stored as a reference and this state controls later behavior.
For both the driver factory i.e. driver verion. And the drivers it creates i.e. the section id and max CPU seconds.
Definition at line 49 of file QMCDriverFactory.cpp.
std::unique_ptr< QMCDriverInterface > createQMCDriver | ( | xmlNodePtr | cur, |
DriverAssemblyState & | das, | ||
const std::optional< EstimatorManagerInput > & | emi, | ||
MCWalkerConfiguration & | qmc_system, | ||
ParticleSetPool & | particle_pool, | ||
WaveFunctionPool & | wave_function_pool, | ||
HamiltonianPool & | hamiltonian_pool, | ||
Communicate * | comm | ||
) | const |
create a new QMCDriver
Broken out for unit tests
Definition at line 142 of file QMCDriverFactory.cpp.
References APP_ABORT, qmcplusplus::app_log(), qmcplusplus::app_warning(), qmcplusplus::comm, DMCFactory::create(), VMCFactory::create(), RMCFactory::create(), DMCFactoryNew::create(), VMCFactoryNew::create(), qmcplusplus::emi(), QMCDriverFactory::DriverAssemblyState::enable_profiling, InfoStream::flush(), MCWalkerConfiguration::getSampleStack(), getXMLAttributeValue(), qmcplusplus::GPU_MODE, qmcplusplus::hamiltonian_pool, infoLog, infoSummary, qmcplusplus::MULTIPLE_MODE, QMCDriverFactory::DriverAssemblyState::new_run_type, qmcplusplus::particle_pool, qmcplusplus::QMCWFOptLinearFactoryNew(), Communicate::rank(), QMCHamiltonian::setPrimary(), QMCFixedSampleLinearOptimize::setWaveFunctionNode(), Communicate::size(), QMCDriverFactory::DriverAssemblyState::traces_tag, qmcplusplus::UPDATE_MODE, QMCDriverFactory::DriverAssemblyState::walkerlogs_tag, qmcplusplus::wavefunction_pool, and QMCDriverFactory::DriverAssemblyState::what_to_do.
Referenced by qmcplusplus::testing::createDriver(), and QMCMain::runQMC().
QMCDriverFactory::DriverAssemblyState readSection | ( | xmlNodePtr | cur | ) | const |
default constructor
Read the xml defining the driver for this QMC section.
read the current QMC Section In the application context project data can indicate the input be read in the context of the batched driver architecture. param[in] cur qmc section node param[in] emi std::optional<EstimatorManagerInput> if it is there it is the global estimator manager input.
Copy elision should result in just a move of the DriverAssemblyState
Most (all) of this should be done by calling QMCDriverInput::readXML At some point in driver refactoring this should go there and QMCDriverInput created before the giant switch
Definition at line 60 of file QMCDriverFactory.cpp.
References OhmmsAttributeSet::add(), QMCDriverFactory::DriverAssemblyState::append_run, castXMLCharToChar(), qmcplusplus::DMC, qmcplusplus::DMC_BATCH, QMCDriverFactory::DriverAssemblyState::enable_profiling, InfoStream::flush(), ProjectData::getDriverVersion(), qmcplusplus::if(), infoLog, infoSummary, qmcplusplus::LINEAR_OPTIMIZE, qmcplusplus::LINEAR_OPTIMIZE_BATCH, qmcplusplus::MULTIPLE_MODE, QMCDriverFactory::DriverAssemblyState::new_run_type, QMCDriverFactory::project_data_, OhmmsAttributeSet::put(), qmcplusplus::RMC, qmcplusplus::SPACEWARP_MODE, QMCDriverFactory::DriverAssemblyState::traces_tag, qmcplusplus::UPDATE_MODE, qmcplusplus::VMC, qmcplusplus::VMC_BATCH, QMCDriverFactory::DriverAssemblyState::walkerlogs_tag, qmcplusplus::WF_TEST, and QMCDriverFactory::DriverAssemblyState::what_to_do.
Referenced by QMCMain::runQMC(), and qmcplusplus::TEST_CASE().
|
private |
project info for accessing global fileroot and series id
Definition at line 87 of file QMCDriverFactory.h.
Referenced by QMCDriverFactory::readSection().