13 #ifndef QMCPLUSPLUS_DMCBATCHED_H 14 #define QMCPLUSPLUS_DMCBATCHED_H 24 class DriverModifierBase;
86 const std::optional<EstimatorManagerInput>& global_emi,
113 void process(xmlNodePtr cur)
override;
120 const StateForThread& sft,
121 DriverTimers& timers,
144 template<CoordsType CT>
151 bool accumulate_this_step);
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.
helper functions for EinsplineSetBuilder
const MCPopulation & population
Manages the state of QMC sections and handles population control for DMCs.
std::unique_ptr< WalkerControl > walker_controller_
walker controller for load-balance
QMCDriverNew Base class for Unified Drivers.
StateForThread(const QMCDriverInput &qmci, DriftModifierBase &drift_mod, SFNBranch &branch_eng, MCPopulation &pop, const size_t steps_per_block)
Declaration of QMCDriverNew.
Implements a DMC using particle-by-particle threaded and batched moves.
A set of light weight walkers that are carried between driver sections and restart.
static void advanceWalkers(const StateForThread &sft, Crowd &crowd, DriverTimers &timers, DMCTimers &dmc_timers, ContextForSteps &move_context, bool recompute, bool accumulate_this_step)
Collection of Local Energy Operators.
this class implements drift modification
To avoid 10's of arguments to runDMCStep.
IndexType branch_interval_
Interval between branching.
Timer accumulates time and call counts.
std::vector< std::unique_ptr< T > > UPtrVector
Driver synchronized step context.
Attaches a unit to a Vector for IO.
The timers for the driver.
DMCTimers dmc_timers_
I think its better if these have there own type and variable name.
Input representation for DMC driver class runtime parameters.
Wrapping information on parallelism.
const size_t steps_per_block
DMCBatched & operator=(const DMCBatched &)=delete
Copy operator (disabled).
NewTimer & createGlobalTimer(const std::string &myname, timer_levels mylevel)
NewTimer & step_begin_recompute_timer
void setNonLocalMoveHandler(QMCHamiltonian &hamiltonian)
Thread local context for moving walkers.
QMCTraits::FullPrecRealType FullPrecRealType
DMCTimers(const std::string &prefix)
QMCTraits::IndexType IndexType
const DMCDriverInput dmcdriver_input_
DMCBatched(const ProjectData &project_data, QMCDriverInput &&qmcdriver_input, const std::optional< EstimatorManagerInput > &global_emi, DMCDriverInput &&input, WalkerConfigurations &wc, MCPopulation &&pop, Communicate *comm)
Constructor.
const DriftModifierBase & drift_modifier
std::unique_ptr< SFNBranch > branch_engine_
branch engine
ParticleAttrib< SingleParticlePos > ParticlePos
bool is_recomputing_block
QTFull::RealType FullPrecRealType
QMCRunType getRunType() override
static void runDMCStep(int crowd_id, const StateForThread &sft, DriverTimers &timers, DMCTimers &dmc_timers, UPtrVector< ContextForSteps > &move_context, UPtrVector< Crowd > &crowds)
SFNBranch & branch_engine
const QMCDriverInput & qmcdrv_input
void process(xmlNodePtr cur) override
DMCBatched driver will eventually ignore cur.
Input representation for Driver base class runtime parameters.
IndexType recalculate_properties_period