18 #ifndef QMCPLUSPLUS_WALKER_CONTROL_BASE_H 19 #define QMCPLUSPLUS_WALKER_CONTROL_BASE_H 34 class UnifiedDriverWalkerControlMPITest;
75 bool put(xmlNodePtr cur);
107 std::vector<int>& fair_offset,
108 std::vector<int>& minus,
109 std::vector<int>& plus);
111 #if defined(HAVE_MPI)
RandomBase< FullPrecRealType > & rng_
random number generator
IndexType saved_num_walkers_sent_
Number of walkers sent during the exchange.
IndexType get_num_contexts() const
std::filesystem::path dmcFname
filename for dmc.dat
Base class for any object which needs to know about a MPI communicator.
helper functions for EinsplineSetBuilder
std::vector< int > fair_offset_
offset of the particle index for a fair distribution
FullPrecRealType trial_energy_
trial energy energy
Class for controlling the walkers for DMC simulations.
void writeDMCdat(int iter, const std::vector< FullPrecRealType > &curData)
take averages and writes to a file
std::vector< std::unique_ptr< T > > UPtrVector
declaration of MPIObjectBase
const IndexType rank_num_
context id
bool debug_disable_branching_
disable branching for debugging
void setMinMax(int nw_in, int nmax_in)
const IndexType num_ranks_
number of contexts
void branch(int iter, MCPopulation &pop, bool do_not_branch)
unified: perform branch and swap walkers as required
QMCTraits::IndexType IndexType
IndexType n_min_
minimum number of walkers
bool use_nonblocking_
Use non-blocking isend/irecv.
Wrapping information on parallelism.
Once there is only one driver type rename.
MCDataType< FullPrecRealType > & get_ensemble_property()
IndexType n_max_
maximum number of walkers
static std::vector< IndexType > syncFutureWalkersPerRank(Communicate *comm, IndexType n_walkers)
static void killDeadWalkersOnRank(MCPopulation &pop)
kill dead walkers in the population
std::vector< int > num_per_rank_
number of walkers on each MPI rank after branching before load balancing
IndexType SwapMode
0 is default
void setTrialEnergy(FullPrecRealType et)
set the trial energy for writing to dmc.dat
void set_ensemble_property(MCDataType< FullPrecRealType > &ensemble_property)
OHMMS_INDEXTYPE IndexType
define other types
TimerList_t my_timers_
timers
void start()
start a block
WalkerConfigurations::Walker_t Walker_t
Walker< QMCTraits, PtclOnLatticeTraits > MCPWalker
QTFull::RealType FullPrecRealType
~WalkerControl()
empty destructor to clean up the derived classes
IndexType max_copy_
maximum copy per walker
QMCTraits::IndexType IndexType
typedef of IndexType
Declare a global Random Number Generator.
WalkerControl(Communicate *c, RandomBase< FullPrecRealType > &rng, bool use_fixed_pop=false)
default constructor
MCDataType< FullPrecRealType > ensemble_property_
ensemble properties
Declaration of a MCWalkerConfiguration.
A container class to represent a walker.
void computeCurData(const UPtrVector< MCPWalker > &walkers, std::vector< FullPrecRealType > &curData)
compute curData
QMCTraits::FullPrecRealType FullPrecRealType
typedef of FullPrecRealType
std::unique_ptr< std::ofstream > dmcStream
file to save energy histogram
static void determineNewWalkerPopulation(const std::vector< int > &num_per_rank, std::vector< int > &fair_offset, std::vector< int > &minus, std::vector< int > &plus)
creates the distribution plan
bool use_fixed_pop_
if true, use fixed population
std::vector< FullPrecRealType > curData
any temporary data includes many ridiculous conversions of integral types to and from fp ...