QMCPACK
CrowdWithWalkers Class Reference
+ Collaboration diagram for CrowdWithWalkers:

Public Types

using MCPWalker = Walker< QMCTraits, PtclOnLatticeTraits >
 

Public Member Functions

Crowdget_crowd ()
 
 CrowdWithWalkers (SetupPools &pools)
 
void makeAnotherPointWalker ()
 

Public Attributes

EstimatorManagerNew em
 
UPtr< Crowdcrowd_ptr
 
UPtrVector< MCPWalkerwalkers
 
UPtrVector< ParticleSetpsets
 
UPtrVector< TrialWaveFunctiontwfs
 
UPtrVector< QMCHamiltonianhams
 
std::vector< TinyVector< double, 3 > > tpos
 
DriverWalkerResourceCollection driverwalker_resource_collection_
 
const MultiWalkerDispatchers dispatchers_
 

Detailed Description

Definition at line 29 of file test_Crowd.cpp.

Member Typedef Documentation

◆ MCPWalker

Definition at line 32 of file test_Crowd.cpp.

Constructor & Destructor Documentation

◆ CrowdWithWalkers()

CrowdWithWalkers ( SetupPools pools)
inline

Definition at line 46 of file test_Crowd.cpp.

References qmcplusplus::crowd, CrowdWithWalkers::crowd_ptr, CrowdWithWalkers::dispatchers_, CrowdWithWalkers::driverwalker_resource_collection_, CrowdWithWalkers::em, SetupPools::hamiltonian_pool, CrowdWithWalkers::hams, SetupPools::particle_pool, qmcplusplus::pools, CrowdWithWalkers::psets, CrowdWithWalkers::tpos, CrowdWithWalkers::twfs, CrowdWithWalkers::walkers, and SetupPools::wavefunction_pool.

46  : em(*pools.hamiltonian_pool->getPrimary(), pools.comm), dispatchers_(true)
47  {
48  crowd_ptr = std::make_unique<Crowd>(em, driverwalker_resource_collection_, *pools.particle_pool->getParticleSet("e"),
49  *pools.wavefunction_pool->getPrimary(), *pools.hamiltonian_pool->getPrimary(), dispatchers_);
50  Crowd& crowd = *crowd_ptr;
51  // To match the minimal particle set
52  int num_particles = 2;
53  // for testing we update the first position in the walker
54  auto makePointWalker = [this, &pools, &crowd, num_particles](TinyVector<double, 3> pos) {
55  walkers.emplace_back(std::make_unique<MCPWalker>(num_particles));
56  walkers.back()->R[0] = pos;
57  psets.emplace_back(std::make_unique<ParticleSet>(*(pools.particle_pool->getParticleSet("e"))));
58  twfs.emplace_back(pools.wavefunction_pool->getPrimary()->makeClone(*psets.back()));
59  hams.emplace_back(pools.hamiltonian_pool->getPrimary()->makeClone(*psets.back(), *twfs.back()));
60  crowd.addWalker(*walkers.back(), *psets.back(), *twfs.back(), *hams.back());
61  };
62 
63  tpos.push_back(TinyVector<double, 3>(1.0, 0.0, 0.0));
64  makePointWalker(tpos.back());
65  tpos.push_back(TinyVector<double, 3>(1.0, 2.0, 0.0));
66  makePointWalker(tpos.back());
67  }
UPtrVector< QMCHamiltonian > hams
Definition: test_Crowd.cpp:40
std::vector< TinyVector< double, 3 > > tpos
Definition: test_Crowd.cpp:41
UPtr< ParticleSetPool > particle_pool
Definition: SetupPools.h:33
UPtr< HamiltonianPool > hamiltonian_pool
Definition: SetupPools.h:35
UPtrVector< TrialWaveFunction > twfs
Definition: test_Crowd.cpp:39
UPtr< WaveFunctionPool > wavefunction_pool
Definition: SetupPools.h:34
SetupPools pools
UPtrVector< ParticleSet > psets
Definition: test_Crowd.cpp:38
UPtrVector< MCPWalker > walkers
Definition: test_Crowd.cpp:37
const MultiWalkerDispatchers dispatchers_
Definition: test_Crowd.cpp:43
DriverWalkerResourceCollection driverwalker_resource_collection_
Definition: test_Crowd.cpp:42

Member Function Documentation

◆ get_crowd()

Crowd& get_crowd ( )
inline

Definition at line 36 of file test_Crowd.cpp.

References CrowdWithWalkers::crowd_ptr.

Referenced by qmcplusplus::TEST_CASE().

36 { return *crowd_ptr; }

◆ makeAnotherPointWalker()

void makeAnotherPointWalker ( )
inline

Definition at line 69 of file test_Crowd.cpp.

References CrowdWithWalkers::hams, CrowdWithWalkers::psets, CrowdWithWalkers::twfs, and CrowdWithWalkers::walkers.

Referenced by qmcplusplus::TEST_CASE().

70  {
71  walkers.emplace_back(std::make_unique<MCPWalker>(*walkers.back()));
72  psets.emplace_back(std::make_unique<ParticleSet>(*psets.back()));
73  twfs.emplace_back(twfs.back()->makeClone(*psets.back()));
74  hams.emplace_back(hams.back()->makeClone(*psets.back(), *twfs.back()));
75  }
UPtrVector< QMCHamiltonian > hams
Definition: test_Crowd.cpp:40
UPtrVector< TrialWaveFunction > twfs
Definition: test_Crowd.cpp:39
UPtrVector< ParticleSet > psets
Definition: test_Crowd.cpp:38
UPtrVector< MCPWalker > walkers
Definition: test_Crowd.cpp:37

Member Data Documentation

◆ crowd_ptr

UPtr<Crowd> crowd_ptr

◆ dispatchers_

const MultiWalkerDispatchers dispatchers_

Definition at line 43 of file test_Crowd.cpp.

Referenced by CrowdWithWalkers::CrowdWithWalkers().

◆ driverwalker_resource_collection_

DriverWalkerResourceCollection driverwalker_resource_collection_

Definition at line 42 of file test_Crowd.cpp.

Referenced by CrowdWithWalkers::CrowdWithWalkers().

◆ em

Definition at line 34 of file test_Crowd.cpp.

Referenced by CrowdWithWalkers::CrowdWithWalkers().

◆ hams

◆ psets

◆ tpos

std::vector<TinyVector<double, 3> > tpos

Definition at line 41 of file test_Crowd.cpp.

Referenced by CrowdWithWalkers::CrowdWithWalkers().

◆ twfs

◆ walkers


The documentation for this class was generated from the following file: