![]() |
QMCPACK
|
Classes | |
struct | TestNumCrowdsVsNumThreads |
Public Types | |
using | Base = QMCDriverNew |
![]() | |
enum | { QMC_UPDATE_MODE, QMC_MULTIPLE, QMC_OPTIMIZE, QMC_WARMUP } |
separate but similar to QMCModeEnum More... | |
using | RealType = QMCTraits::RealType |
using | IndexType = QMCTraits::IndexType |
using | FullPrecRealType = QMCTraits::FullPrecRealType |
using | MCPWalker = MCPopulation::MCPWalker |
using | WFBuffer = MCPopulation::WFBuffer |
using | SetNonLocalMoveHandler = std::function< void(QMCHamiltonian &)> |
![]() | |
using | BranchEngineType = SimpleFixedNodeBranch |
using | FullPrecRealType = QMCTraits::FullPrecRealType |
![]() | |
using | mpi_comm_type = Communicate::mpi_comm_type |
Public Member Functions | |
QMCDriverNewTestWrapper (const ProjectData &test_project, QMCDriverInput &&input, WalkerConfigurations &wc, MCPopulation &&population, Communicate *comm) | |
~QMCDriverNewTestWrapper () override | |
QMCRunType | getRunType () override |
void | process (xmlNodePtr node) override |
QMCDriverNew driver second (3rd, 4th...) stage of constructing a valid driver. More... | |
void | testAdjustGlobalWalkerCount () |
bool | run () override |
int | get_num_crowds () |
void | testMeasureImbalance () |
void | testDetermineStepsPerBlock () |
![]() | |
QMCDriverNew (const ProjectData &project_data, QMCDriverInput &&input, const std::optional< EstimatorManagerInput > &global_emi, WalkerConfigurations &wc, MCPopulation &&population, const std::string timer_prefix, Communicate *comm, const std::string &QMC_driver_type) | |
Constructor. More... | |
QMCDriverNew (QMCDriverNew &&)=default | |
Move Constructor. More... | |
QMCDriverNew (const QMCDriverNew &)=delete | |
Copy Constructor (disabled). More... | |
QMCDriverNew & | operator= (const QMCDriverNew &)=delete |
Copy operator (disabled). More... | |
~QMCDriverNew () override | |
bool | putQMCInfo (xmlNodePtr cur) |
void | makeLocalWalkers (int nwalkers, RealType reserve) |
Adjust populations local walkers to this number. More... | |
DriftModifierBase & | get_drift_modifier () const |
void | recordBlock (int block) override |
record the state of the block More... | |
bool | finalize (int block, bool dumpwalkers=true) |
finalize a qmc section More... | |
IndexType | current () const |
return current step More... | |
void | setStatus (const std::string &aname, const std::string &h5name, bool append) override |
Set the status of the QMCDriver. More... | |
void | add_H_and_Psi (QMCHamiltonian *h, TrialWaveFunction *psi) override |
void | createRngsStepContexts (int num_crowds) |
Creates Random Number generators for crowds and step contexts. More... | |
void | putWalkers (std::vector< xmlNodePtr > &wset) override |
Read walker configurations from *.config.h5 files. More... | |
RefVector< RandomBase< FullPrecRealType > > | getRngRefs () const |
RandomBase< FullPrecRealType > & | getRng (int i) override |
return the i-th random generator More... | |
std::string | getEngineName () override |
intended for logging output and debugging you should base behavior on type preferably at compile time or if necessary at runtime using and protected by dynamic cast. More... | |
unsigned long | getDriverMode () override |
IndexType | get_num_living_walkers () const |
IndexType | get_num_dead_walkers () const |
const QMCDriverInput & | getQMCDriverInput () const |
bool | put (xmlNodePtr cur) override |
More... | |
void | setUpdateMode (bool pbyp) override |
should be set in input don't see a reason to set individually More... | |
void | putTraces (xmlNodePtr txml) override |
void | requestTraces (bool allow_traces) override |
void | putWalkerLogs (xmlNodePtr wlxml) override |
void | requestWalkerLogs (bool allow_walker_logs_) override |
![]() | |
virtual | ~QMCDriverInterface () |
virtual void | setBranchEngine (std::unique_ptr< BranchEngineType > &&be) |
virtual std::unique_ptr< BranchEngineType > | getBranchEngine () |
![]() | |
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) |
Additional Inherited Members | |
![]() | |
static void | initialLogEvaluation (int crowd_id, UPtrVector< Crowd > &crowds, UPtrVector< ContextForSteps > &step_context) |
template<typename RT , CoordsType CT> | |
static void | scaleBySqrtTau (const TauParams< RT, CT > &taus, MCCoords< CT > &coords) |
template<typename RT , CoordsType CT> | |
static void | computeLogGreensFunction (const MCCoords< CT > &coords, const TauParams< RT, CT > &taus, std::vector< QMCTraits::RealType > &log_gb) |
calculates Green Function from displacements stored in MCCoords [param, out] log_g More... | |
![]() | |
std::bitset< QMC_MODE_MAX > | qmc_driver_mode_ |
bits to classify QMCDriver More... | |
bool | allow_walker_logs |
whether to allow walker logs More... | |
WalkerLogInput | walker_logs_input |
walker logs input More... | |
![]() | |
void | initializeQMC (const AdjustedWalkerCounts &awc) |
Do common section starting tasks for VMC and DMC. More... | |
void | measureImbalance (const std::string &tag) const |
inject additional barrier and measure load imbalance. More... | |
void | endBlock () |
end of a block operations. Aggregates statistics across all MPI ranks and write to disk. More... | |
const std::string & | get_root_name () const override |
![]() | |
static QMCDriverNew::AdjustedWalkerCounts | adjustGlobalWalkerCount (Communicate &comm, const IndexType current_configs, const IndexType requested_total_walkers, const IndexType requested_walkers_per_rank, const RealType reserve_walkers, int num_crowds) |
}@ More... | |
static size_t | determineStepsPerBlock (IndexType global_walkers, IndexType requested_samples, IndexType requested_steps, IndexType blocks) |
pure function calculating the actual number of steps per block More... | |
static void | checkNumCrowdsLTNumThreads (const int num_crowds) |
static void | checkLogAndGL (Crowd &crowd, const std::string_view location) |
check logpsi and grad and lap against values computed from scratch More... | |
static void | setWalkerOffsets (WalkerConfigurations &, Communicate *comm) |
update the global offsets of walker configurations after active walkers being touched. More... | |
![]() | |
QMCDriverInput | qmcdriver_input_ |
RealType | max_disp_sq_ |
they should be limited to values that can be changed from input or are live state. More... | |
IndexType | target_samples_ |
the number of saved samples More... | |
IndexType | nBlocksBetweenRecompute |
the number of blocks between recomptePsi More... | |
UPtrVector< Crowd > | crowds_ |
}@ More... | |
std::string | h5_file_root_ |
std::unique_ptr< DriftModifierBase > | drift_modifier_ |
drift modifer More... | |
int | k_delay |
the number to delay updates by More... | |
int | walker_dump_period |
period of recording walker configurations More... | |
IndexType | current_step_ |
size_t | steps_per_block_ = 0 |
actual number of steps per block More... | |
IndexType | nAccept |
counter for number of moves accepted More... | |
IndexType | nReject |
counter for number of moves /rejected More... | |
RealType | m_oneover2tau |
Time-step factor ![]() | |
RealType | m_sqrttau |
Time-step factor ![]() | |
const std::string | QMCType |
type of qmc: assigned by subclasses More... | |
MCPopulation | population_ |
the entire (on node) walker population it serves VMCBatch and DMCBatch right now but will be polymorphic More... | |
struct DriverWalkerResourceCollection | golden_resource_ |
the golden multi walker shared resource serves ParticleSet TrialWaveFunction right now but actually should be based on MCPopulation. More... | |
const MultiWalkerDispatchers | dispatchers_ |
multi walker dispatchers More... | |
std::unique_ptr< EstimatorManagerNew > | estimator_manager_ |
Observables manager Has very problematic owner ship and life cycle. More... | |
std::unique_ptr< HDFWalkerOutput > | wOut |
record engine for walkers More... | |
UPtrVector< ContextForSteps > | step_contexts_ |
Per crowd move contexts, this is where the DistanceTables etc. More... | |
UPtrVector< RandomBase< FullPrecRealType > > | Rng |
Random number generators. More... | |
std::vector< xmlNodePtr > | mcwalkerNodePtr |
a list of mcwalkerset element More... | |
DriverTimers | timers_ |
period of dumping walker configurations and everything else for restart More... | |
ScopedProfiler | driver_scope_profiler_ |
profile the driver lifetime More... | |
const ProjectData & | project_data_ |
project info for accessing global fileroot and series id More... | |
WalkerConfigurations & | walker_configs_ref_ |
![]() | |
Communicate * | myComm |
pointer to Communicate More... | |
std::string | ClassName |
class Name More... | |
std::string | myName |
name of the object More... | |
Definition at line 28 of file QMCDriverNewTestWrapper.h.
using Base = QMCDriverNew |
Definition at line 31 of file QMCDriverNewTestWrapper.h.
|
inline |
Definition at line 32 of file QMCDriverNewTestWrapper.h.
|
inlineoverride |
Definition at line 47 of file QMCDriverNewTestWrapper.h.
|
inline |
|
inlineoverridevirtual |
Implements QMCDriverInterface.
Definition at line 49 of file QMCDriverNewTestWrapper.h.
References qmcplusplus::DUMMY.
|
inlineoverridevirtual |
QMCDriverNew driver second (3rd, 4th...) stage of constructing a valid driver.
This is the shared entry point with legacy, from QMCMain so the API cannot be updated yet
Implements QMCDriverNew.
Definition at line 51 of file QMCDriverNewTestWrapper.h.
References QMCDriverNew::adjustGlobalWalkerCount(), QMCDriverInput::get_num_crowds(), QMCDriverInput::get_total_walkers(), QMCDriverInput::get_walkers_per_rank(), QMCDriverNew::initializeQMC(), MPIObjectBase::myComm, and QMCDriverNew::qmcdriver_input_.
Referenced by qmcplusplus::TEST_CASE().
|
inlineoverridevirtual |
Implements QMCDriverInterface.
Definition at line 168 of file QMCDriverNewTestWrapper.h.
|
inline |
Definition at line 61 of file QMCDriverNewTestWrapper.h.
References QMCDriverNew::adjustGlobalWalkerCount(), qmcplusplus::CHECK(), QMCDriverNew::AdjustedWalkerCounts::global_walkers, qmcplusplus::Concurrency::maxCapacity(), MPIObjectBase::myComm, Communicate::rank(), Communicate::size(), QMCDriverNew::AdjustedWalkerCounts::walkers_per_crowd, and QMCDriverNew::AdjustedWalkerCounts::walkers_per_rank.
|
inline |
Definition at line 179 of file QMCDriverNewTestWrapper.h.
References qmcplusplus::CHECK(), and QMCDriverNew::determineStepsPerBlock().
Referenced by qmcplusplus::TEST_CASE().
|
inline |
Definition at line 178 of file QMCDriverNewTestWrapper.h.
References QMCDriverNew::measureImbalance().
Referenced by qmcplusplus::TEST_CASE().