mirror of https://github.com/QMCPACK/qmcpack.git
More rename
This commit is contained in:
parent
2d2de42078
commit
2dd30f66a1
|
@ -13,9 +13,9 @@
|
|||
namespace qmcplusplus
|
||||
{
|
||||
Crowd::Crowd(EstimatorManagerNew& emb,
|
||||
const DriverWalkerResourceCollection& fatwalker_res,
|
||||
const DriverWalkerResourceCollection& driverwalker_res,
|
||||
const MultiWalkerDispatchers& dispatchers)
|
||||
: dispatchers_(dispatchers), fatwalker_resource_collection_(fatwalker_res), estimator_manager_crowd_(emb)
|
||||
: dispatchers_(dispatchers), driverwalker_resource_collection_(driverwalker_res), estimator_manager_crowd_(emb)
|
||||
{}
|
||||
|
||||
Crowd::~Crowd() = default;
|
||||
|
|
|
@ -43,7 +43,7 @@ public:
|
|||
/** This is the data structure for walkers within a crowd
|
||||
*/
|
||||
Crowd(EstimatorManagerNew& emb,
|
||||
const DriverWalkerResourceCollection& fatwalker_res,
|
||||
const DriverWalkerResourceCollection& driverwalker_res,
|
||||
const MultiWalkerDispatchers& dispatchers);
|
||||
|
||||
~Crowd();
|
||||
|
@ -93,7 +93,7 @@ public:
|
|||
|
||||
const EstimatorManagerCrowd& get_estimator_manager_crowd() const { return estimator_manager_crowd_; }
|
||||
|
||||
DriverWalkerResourceCollection& getSharedResource() { return fatwalker_resource_collection_; }
|
||||
DriverWalkerResourceCollection& getSharedResource() { return driverwalker_resource_collection_; }
|
||||
|
||||
int size() const { return mcp_walkers_.size(); }
|
||||
|
||||
|
@ -119,7 +119,7 @@ private:
|
|||
RefVector<QMCHamiltonian> walker_hamiltonians_;
|
||||
/** }@ */
|
||||
|
||||
DriverWalkerResourceCollection fatwalker_resource_collection_;
|
||||
DriverWalkerResourceCollection driverwalker_resource_collection_;
|
||||
|
||||
EstimatorManagerCrowd estimator_manager_crowd_;
|
||||
|
||||
|
|
|
@ -156,7 +156,7 @@ void WalkerControl::writeDMCdat(int iter, const std::vector<FullPrecRealType>& c
|
|||
int WalkerControl::branch(int iter,
|
||||
MCPopulation& pop,
|
||||
const MultiWalkerDispatchers& dispatchers,
|
||||
DriverWalkerResourceCollection& fatwalker_res,
|
||||
DriverWalkerResourceCollection& driverwalker_res,
|
||||
bool do_not_branch)
|
||||
{
|
||||
if (debug_disable_branching_)
|
||||
|
@ -256,7 +256,7 @@ int WalkerControl::branch(int iter,
|
|||
const auto wf_list_no_leader =
|
||||
convertUPtrToRefVectorSubset(pop.get_twfs(), untouched_walkers, num_walkers - untouched_walkers);
|
||||
|
||||
DriverWalkerResourceCollection_PsetTWF_Lock pbyp_lock(fatwalker_res, *pop.get_golden_electrons(), pop.get_golden_twf());
|
||||
DriverWalkerResourceCollection_PsetTWF_Lock pbyp_lock(driverwalker_res, *pop.get_golden_electrons(), pop.get_golden_twf());
|
||||
// a defensive update may not be necessary due to loadWalker above. however, load walker needs to be batched.
|
||||
|
||||
const RefVectorWithLeader<ParticleSet> p_list(*pop.get_golden_electrons(), p_list_no_leader);
|
||||
|
|
|
@ -73,7 +73,7 @@ public:
|
|||
int branch(int iter,
|
||||
MCPopulation& pop,
|
||||
const MultiWalkerDispatchers& dispatchers,
|
||||
DriverWalkerResourceCollection& fatwalker_res,
|
||||
DriverWalkerResourceCollection& driverwalker_res,
|
||||
bool do_not_branch);
|
||||
|
||||
bool put(xmlNodePtr cur);
|
||||
|
|
|
@ -10,13 +10,24 @@
|
|||
//////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
#ifndef QMCPLUSPLUS_FATWALKERTYPES_H
|
||||
#define QMCPLUSPLUS_FATWALKERTYPES_H
|
||||
/**
|
||||
* @file
|
||||
* Driver level walker (DriverWalker) related data structures.
|
||||
* Unlike MCWalkerConfiguration which only holds electron positions and weights.
|
||||
* Driver level walker includes all the per-walker data structures which depends on the type of driver
|
||||
*/
|
||||
|
||||
#ifndef QMCPLUSPLUS_DRIVERWALKERTYPES_H
|
||||
#define QMCPLUSPLUS_DRIVERWALKERTYPES_H
|
||||
|
||||
#include <ResourceCollection.h>
|
||||
|
||||
namespace qmcplusplus
|
||||
{
|
||||
|
||||
/** DriverWalker multi walker resource collections
|
||||
* It currently supports VMC and DMC only
|
||||
*/
|
||||
struct DriverWalkerResourceCollection
|
||||
{
|
||||
ResourceCollection pset_res;
|
||||
|
@ -26,11 +37,14 @@ struct DriverWalkerResourceCollection
|
|||
DriverWalkerResourceCollection() : pset_res("ParticleSet"), twf_res("TrialWaveFunction"), ham_res("Hamiltonian") {}
|
||||
};
|
||||
|
||||
/** DriverWalkerResourceCollection locks
|
||||
* Helper class for acquiring and releasing multi walker resources
|
||||
*/
|
||||
class DriverWalkerResourceCollectionLock
|
||||
{
|
||||
public:
|
||||
DriverWalkerResourceCollectionLock(DriverWalkerResourceCollection& fatwalker_res, ParticleSet& pset, TrialWaveFunction& twf, QMCHamiltonian& ham)
|
||||
: pset_res_lock_(fatwalker_res.pset_res, pset), twf_res_lock_(fatwalker_res.twf_res, twf), ham_res_lock_(fatwalker_res.ham_res, ham)
|
||||
DriverWalkerResourceCollectionLock(DriverWalkerResourceCollection& driverwalker_res, ParticleSet& pset, TrialWaveFunction& twf, QMCHamiltonian& ham)
|
||||
: pset_res_lock_(driverwalker_res.pset_res, pset), twf_res_lock_(driverwalker_res.twf_res, twf), ham_res_lock_(driverwalker_res.ham_res, ham)
|
||||
{}
|
||||
|
||||
private:
|
||||
|
@ -39,11 +53,15 @@ private:
|
|||
ResourceCollectionLock<QMCHamiltonian> ham_res_lock_;
|
||||
};
|
||||
|
||||
/** DriverWalkerResourceCollection locks
|
||||
* Helper class for acquiring and releasing multi walker resources.
|
||||
* Only ParticleSet and TrialWaveFunction resources are engaged.
|
||||
*/
|
||||
class DriverWalkerResourceCollection_PsetTWF_Lock
|
||||
{
|
||||
public:
|
||||
DriverWalkerResourceCollection_PsetTWF_Lock(DriverWalkerResourceCollection& fatwalker_res, ParticleSet& pset, TrialWaveFunction& twf)
|
||||
: pset_res_lock_(fatwalker_res.pset_res, pset), twf_res_lock_(fatwalker_res.twf_res, twf)
|
||||
DriverWalkerResourceCollection_PsetTWF_Lock(DriverWalkerResourceCollection& driverwalker_res, ParticleSet& pset, TrialWaveFunction& twf)
|
||||
: pset_res_lock_(driverwalker_res.pset_res, pset), twf_res_lock_(driverwalker_res.twf_res, twf)
|
||||
{}
|
||||
|
||||
private:
|
||||
|
|
|
@ -40,7 +40,7 @@ public:
|
|||
UPtrVector<TrialWaveFunction> twfs;
|
||||
UPtrVector<QMCHamiltonian> hams;
|
||||
std::vector<TinyVector<double, 3>> tpos;
|
||||
DriverWalkerResourceCollection fatwalker_resource_collection_;
|
||||
DriverWalkerResourceCollection driverwalker_resource_collection_;
|
||||
const MultiWalkerDispatchers dispatchers_;
|
||||
|
||||
public:
|
||||
|
@ -49,7 +49,7 @@ public:
|
|||
FakeEstimator* fake_est = new FakeEstimator;
|
||||
em.add(fake_est, "fake");
|
||||
|
||||
crowd_ptr = std::make_unique<Crowd>(em, fatwalker_resource_collection_, dispatchers_);
|
||||
crowd_ptr = std::make_unique<Crowd>(em, driverwalker_resource_collection_, dispatchers_);
|
||||
Crowd& crowd = *crowd_ptr;
|
||||
// To match the minimal particle set
|
||||
int num_particles = 2;
|
||||
|
@ -96,8 +96,8 @@ TEST_CASE("Crowd integration", "[drivers]")
|
|||
// The above was required behavior for crowd at one point.
|
||||
// TODO: determine whether it still is, I don't think so.
|
||||
const MultiWalkerDispatchers dispatchers(true);
|
||||
DriverWalkerResourceCollection fatwalker_resource_collection_;
|
||||
Crowd crowd(em, fatwalker_resource_collection_, dispatchers);
|
||||
DriverWalkerResourceCollection driverwalker_resource_collection_;
|
||||
Crowd crowd(em, driverwalker_resource_collection_, dispatchers);
|
||||
}
|
||||
|
||||
TEST_CASE("Crowd::loadWalkers", "[particle]")
|
||||
|
|
Loading…
Reference in New Issue