12 #ifndef QMCPLUSPLUS_QMCDRIVERNEWTESTWRAPPER_H 13 #define QMCPLUSPLUS_QMCDRIVERNEWTESTWRAPPER_H 41 std::move(population),
42 "QMCDriverTestWrapper::",
44 "QMCDriverNewTestWrapper")
168 bool run()
override {
return false; }
172 template<
class CONCURRENCY>
191 Catch::Contains(
"more than the total number of walkers"));
195 template<
class CONCURRENCY>
202 if (Concurrency::maxCapacity<>() != 8)
203 throw std::runtime_error(
"OMP_NUM_THREADS must be 8 for this test.");
207 checkNumCrowdsLTNumThreads(num_crowds);
Stores particle configurations for later use in DMC and wavefunction optimization.
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
int rank() const
return the rank
if(!okay) throw std xmlNodePtr node
This is a data structure strictly for QMCDriver and its derived classes.
QMCDriverNew Base class for Unified Drivers.
Declaration of QMCDriverNew.
A set of light weight walkers that are carried between driver sections and restart.
void testMeasureImbalance()
ProjectData test_project("test", ProjectData::DriverVersion::BATCH)
std::vector< IndexType > walkers_per_crowd
int size() const
return the number of tasks
QMCRunType getRunType() override
Wrapping information on parallelism.
IndexType get_num_crowds() const
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
IndexType get_total_walkers() const
std::vector< IndexType > walkers_per_rank
IndexType get_walkers_per_rank() const
void testAdjustGlobalWalkerCount()
Communicate * myComm
pointer to Communicate
This a subclass for runtime errors that will occur on all ranks.
void process(xmlNodePtr node) override
QMCDriverNew driver second (3rd, 4th...) stage of constructing a valid driver.
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)
}@
void operator()(int num_crowds)
~QMCDriverNewTestWrapper() override
CHECK(log_values[0]==ComplexApprox(std::complex< double >{ 5.603777579195571, -6.1586603331188225 }))
void testDetermineStepsPerBlock()
UPtrVector< Crowd > crowds_
}@
QMCDriverInput qmcdriver_input_
void measureImbalance(const std::string &tag) const
inject additional barrier and measure load imbalance.
unsigned int maxCapacity()
void initializeQMC(const AdjustedWalkerCounts &awc)
Do common section starting tasks for VMC and DMC.
Input representation for Driver base class runtime parameters.
QMCDriverNewTestWrapper(const ProjectData &test_project, QMCDriverInput &&input, WalkerConfigurations &wc, MCPopulation &&population, Communicate *comm)