29 TEST_CASE(
"WalkerLogCollector::collect",
"[estimators]")
31 app_log() <<
"\n\n=======================================================\n";
32 app_log() <<
"test WalkerLogCollector::collect\n";
52 std::vector<ParticleSet> psets;
55 int num_electrons =
particle_pool.getParticleSet(
"e")->getTotalNum();
56 int num_ions =
particle_pool.getParticleSet(
"ion")->getTotalNum();
60 psets.emplace_back(
pset);
61 psets.back().randomizeFromSource(*
particle_pool.getParticleSet(
"ion"));
62 twfs.emplace_back(
twf.makeClone(psets.back()));
63 hams.emplace_back(
hamiltonian_pool.getPrimary()->makeClone(psets.back(), *twfs.back()));
86 CHECK(bsi.nrows() == 0);
87 CHECK(bsr.nrows() == 0);
88 CHECK(bpr.nrows() == 0);
89 CHECK(bsi.ncols() == 0);
90 CHECK(bsr.ncols() == 0);
91 CHECK(bpr.ncols() == 0);
94 const size_t npcols = 56;
96 const size_t npcols = 88;
102 CHECK(bsi.nrows() == 1);
103 CHECK(bsr.nrows() == 1);
104 CHECK(bpr.nrows() == 1);
105 CHECK(bsi.ncols() == 4);
106 CHECK(bsr.ncols() == 13);
107 CHECK(bpr.ncols() == npcols);
109 for (
size_t iw = 1; iw <
walkers.size(); ++iw)
110 wlc.
collect(
walkers[iw], psets[iw], *(twfs[iw]), *(hams[iw]), step);
112 CHECK(bsi.nrows() == 4);
113 CHECK(bsr.nrows() == 4);
114 CHECK(bpr.nrows() == 4);
115 CHECK(bsi.ncols() == 4);
116 CHECK(bsr.ncols() == 13);
117 CHECK(bpr.ncols() == npcols);
119 for (step = 1; step < 3; ++step)
120 for (
size_t iw = 0; iw <
walkers.size(); ++iw)
121 wlc.
collect(
walkers[iw], psets[iw], *(twfs[iw]), *(hams[iw]), step);
123 CHECK(bsi.nrows() == 12);
124 CHECK(bsr.nrows() == 12);
125 CHECK(bpr.nrows() == 12);
126 CHECK(bsi.ncols() == 4);
127 CHECK(bsr.ncols() == 13);
128 CHECK(bpr.ncols() == npcols);
130 app_log() <<
"\nend test WalkerLogCollector::collect\n";
131 app_log() <<
"=======================================================\n";
helper functions for EinsplineSetBuilder
WalkerLogBuffer< WLog::Int > walker_property_int_buffer
buffer containing integer walker properties
static ParticleSetPool make_diamondC_1x1x1(Communicate *c)
TEST_CASE("complex_helper", "[type_traits]")
static WaveFunctionPool make_diamondC_1x1x1(const RuntimeOptions &runtime_options, Communicate *comm, ParticleSetPool &particle_pool)
WalkerLogBuffer< WLog::Real > walker_property_real_buffer
buffer containing real-valued walker properties
ProjectData test_project("test", ProjectData::DriverVersion::BATCH)
Crowd-level resource for walker log collection.
std::vector< std::unique_ptr< T > > UPtrVector
Communicate * Controller
Global Communicator for a process.
const RuntimeOptions & getRuntimeOptions() const noexcept
Wrapping information on parallelism.
WalkerLogBuffer< WLog::Real > walker_particle_real_buffer
buffer containing per-particle walker data
void collect(const MCPWalker &walker, const ParticleSet &pset, const TrialWaveFunction &wfn, const QMCHamiltonian &ham, int step=-1)
collect all data for one walker into the data buffers
static HamiltonianPool make_hamWithEE(Communicate *comm, ParticleSetPool &particle_pool, WaveFunctionPool &wavefunction_pool)
Walker< QMCTraits, PtclOnLatticeTraits > MCPWalker
CHECK(log_values[0]==ComplexApprox(std::complex< double >{ 5.603777579195571, -6.1586603331188225 }))
Helper struct holding data transferred from WalkerLogManager to WalkerLogCollector following input re...
A container class to represent a walker.
Declaration of QMCHamiltonian.