13 #ifndef QMCPLUSPLUS_VMCBATCHED_H 14 #define QMCPLUSPLUS_VMCBATCHED_H 76 const std::optional<EstimatorManagerInput>& global_emi,
92 template<CoordsType CT>
98 bool accumulate_this_step);
103 const StateForThread& sft,
104 DriverTimers& timers,
139 const size_t samples_per_block,
140 const size_t local_walkers);
bool run() override
Runs the actual VMC section.
const QMCDriverInput & qmcdrv_input
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.
void process(xmlNodePtr node) override
QMCDriverNew driver second (3rd, 4th...) stage of constructing a valid driver.
helper functions for EinsplineSetBuilder
QMCTraits::FullPrecRealType FullPrecRealType
if(!okay) throw std xmlNodePtr node
Input representation for VMC driver class runtime parameters.
QMCDriverNew Base class for Unified Drivers.
Declaration of QMCDriverNew.
const size_t steps_per_block
A set of light weight walkers that are carried between driver sections and restart.
int prevStepsBetweenSamples
this class implements drift modification
std::vector< std::unique_ptr< T > > UPtrVector
Driver synchronized step context.
Attaches a unit to a Vector for IO.
VMCBatched(const ProjectData &project_data, QMCDriverInput &&qmcdriver_input, const std::optional< EstimatorManagerInput > &global_emi, VMCDriverInput &&input, WalkerConfigurations &wc, MCPopulation &&pop, SampleStack &samples_, Communicate *comm)
Constructor.
bool collect_samples_
Sample collection flag.
Wrapping information on parallelism.
To avoid 10's of arguments to runVMCStep.
const MCPopulation & population
bool is_recomputing_block
static void advanceWalkers(const StateForThread &sft, Crowd &crowd, DriverTimers &timers, ContextForSteps &move_context, bool recompute, bool accumulate_this_step)
Refactor of VMCUpdatePbyP in crowd context.
void enable_sample_collection()
Enable collecting samples during the VMC run.
const VMCDriverInput & vmcdrv_input
Thread local context for moving walkers.
std::ostream & operator<<(std::ostream &out, const AntiSymTensor< T, D > &rhs)
QMCTraits::IndexType IndexType
StateForThread(const QMCDriverInput &qmci, const VMCDriverInput &vmci, DriftModifierBase &drift_mod, MCPopulation &pop, const size_t steps_per_block)
static void runVMCStep(int crowd_id, const StateForThread &sft, DriverTimers &timers, UPtrVector< ContextForSteps > &context_for_steps, UPtrVector< Crowd > &crowds)
Thread body for VMC step.
ParticleAttrib< SingleParticlePos > ParticlePos
SampleStack & samples_
Storage for samples (later used in optimizer)
QTFull::RealType FullPrecRealType
QMCRunType getRunType() override
IndexType recalculate_properties_period
VMCDriverInput vmcdriver_input_
static size_t compute_samples_per_rank(const size_t num_blocks, const size_t samples_per_block, const size_t local_walkers)
function to calculate samples per MPI rank
auto getCDLW()
transitional interface on the way to better walker count adjustment handling.
const DriftModifierBase & drift_modifier
Implements a VMC using particle-by-particle move.
Input representation for Driver base class runtime parameters.
VMCBatched & operator=(const VMCBatched &)=delete
Copy operator (disabled).