More rename

This commit is contained in:
Ye Luo 2021-03-01 15:35:52 -06:00
parent 2d2de42078
commit 2dd30f66a1
6 changed files with 36 additions and 18 deletions

View File

@ -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;

View File

@ -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_;

View File

@ -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);

View File

@ -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);

View File

@ -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:

View File

@ -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]")