QMCPACK
qmcplusplus::testing Namespace Reference

SpaceGrid refactored for use with batched estimator design NE should be dropped when QMCHamiltonian/SpaceGrid has been deleted. More...

Namespaces

 magdensity
 

Classes

class  CrowdWithWalkers
 
struct  CUDAHandles
 Doesn't depend on the resource management scheme thats out of scope for unit tests. More...
 
class  DMCBatchedTest
 
class  EnergyDensityTests
 
class  EstimatorManagerBaseTest
 Testing class breaking EstimatorManagerBase encapsultation. More...
 
class  EstimatorManagerCrowdTest
 Testing class breaking EstimatorManagerCrowd encapsultation. More...
 
class  EstimatorManagerInputTests
 
class  EstimatorManagerNewTest
 Testing class breaking EstimatorManagerNew encapsultation. More...
 
class  EstimatorManagerNewTestAccess
 
struct  InvalidOneBodyDensityMatricesInput
 
struct  InvalidReferencePointsInputs
 
struct  InvalidSpaceGridInput
 
class  LinearMethodTestSupport
 
class  MagnetizationDensityTests
 
class  MakeRngSpdMatrix
 Functor to provide scope for rng when making SpdMatrix for testing. More...
 
class  MakeRngVector
 Functor to provide scope for rng when making SpdMatrix for testing. More...
 
class  MatrixAccessor
 Read only access, for testing! More...
 
class  MockPerParticleEstimator
 
class  MockQMCHamiltonianAndReporter
 Mock class that collects ListnerVectors as QMCHamiltonian does and reports ListenerVectors Hamiltonian operators do when they report per particle values. More...
 
class  MomentumDistributionTests
 class to preserve access control in MomentumDistribution More...
 
class  NESpaceGridTests
 
class  OEBAccessor
 break encapsulation of data_ by OperatorEstBase only for testing! More...
 
class  OneBodyDensityMatricesTests
 
class  QMCDriverNewTestWrapper
 
class  QMCDriverPools
 
class  RandomForTest
 Get a known sequence of random numbers for testing. More...
 
class  SetupDMCTest
 
class  SetupPools
 
class  SetupSFNBranch
 
class  SetupSimpleFixedNodeBranch
 
class  SpaceGridEnv
 
class  SpaceGridEnv< ValidSpaceGridInput::valid::CYLINDRICAL >
 
class  SpinDensityNewTests
 class to preserve access control in MomentumDistribution More...
 
class  TestableNEReferencePoints
 
class  TestNonLocalECPotential
 class to violate access control because evaluation of NonLocalECPotential uses RNG which we may not be able to control. More...
 
class  TestSOECPotential
 
class  UnifiedDriverWalkerControlMPITest
 Once there is only one driver type rename. More...
 
struct  ValidOneBodyDensityMatricesInput
 
struct  ValidReferencePointsInputs
 
struct  ValidScalarEstimatorInput
 
struct  ValidSpaceGridInput
 
struct  ValidSpinDensityInput
 
class  VMCBatchedTest
 
class  WalkerConsumer
 mock class to avoid testing dependency between Crowd and MCPopulation More...
 

Typedefs

using scalar_input = testing::ValidScalarEstimatorInput
 
using POLT = PtclOnLatticeTraits
 
using Lattice = POLT::ParticleLayout
 
using OBDMI = OneBodyDensityMatricesInput
 

Enumerations

enum  MA_ori { ROW, COLUMN }
 
enum  SpeciesCases { GOOD, NO_MEMBERSIZE }
 

Functions

template<typename T , typename = typename std::enable_if<std::is_floating_point<T>::value, void>::type>
void makeRngSpdMatrix (testing::RandomForTest< RngValueType< T >> &rng, Matrix< T > &mat_spd)
 
template<typename T , typename = typename std::enable_if<std::is_floating_point<T>::value, void>::type>
void makeRngVector (testing::RandomForTest< RngValueType< T >> &rng, Vector< T > &vec)
 make a random Vector More...
 
std::vector< QMCTraits::ValueType > & getMyVarsFull (RotatedSPOs &rot)
 
std::vector< std::vector< QMCTraits::ValueType > > & getHistoryParams (RotatedSPOs &rot)
 
opt_variables_typegetMyVars (SPOSet &spo)
 
 TEST_CASE ("ListenerVector", "[hamiltonian]")
 
template<typename T >
auto getParticularListener (Matrix< T > &local_pots)
 
template<typename T >
auto getSummingListener (Matrix< T > &local_pots)
 
Libxml2Document createEstimatorManagerNewGlobalInputXML ()
 
Libxml2Document createEstimatorManagerNewInputXML ()
 
Libxml2Document createEstimatorManagerNewVMCInputXML ()
 
Lattice makeTestLattice ()
 
SpeciesSet makeSpeciesSet (const SpeciesCases species_case)
 
template<bool GEN_TEST_DATA>
std::vector< ParticleSetgenerateRandomParticleSets (ParticleSet &pset_target, ParticleSet &pset_source, std::vector< ParticleSet::ParticlePos > &deterministic_rs, int num_psets)
 This function sets particle set positions from a set of Rs or writes out a set of positions for test reproducibility. More...
 
template std::vector< ParticleSetgenerateRandomParticleSets< false > (ParticleSet &pset_target, ParticleSet &pset_source, std::vector< ParticleSet::ParticlePos > &deterministic_rs, int num_psets)
 
template std::vector< ParticleSetgenerateRandomParticleSets< true > (ParticleSet &pset_target, ParticleSet &pset_source, std::vector< ParticleSet::ParticlePos > &deterministic_rs, int num_psets)
 
auto createDriver (const RuntimeOptions &runtime_options, Communicate *comm, QMCDriverFactory &driver_factory, xmlNodePtr node, QMCDriverFactory::DriverAssemblyState &das)
 

Variables

constexpr std::array< std::string_view, 3 > invalid_mag_density_input_sections
 
constexpr int invalid_magnetization_density_integrator = 0
 
constexpr int invalid_magnetization_density_cornercenter = 1
 
constexpr int invalid_magnetization_density_badgrid = 2
 
constexpr std::array< std::string_view, 2 > valid_momentum_distribution_input_sections
 
constexpr std::array< const char *, 4 > valid_vmc_input_sections
 
constexpr int valid_vmc_input_vmc_index = 0
 
constexpr int valid_vmc_input_vmc_batch_index = 1
 
constexpr int valid_vmc_input_vmc_tiny_index = 2
 
constexpr int valid_vmc_batch_input_vmc_batch_index = 3
 
constexpr std::array< const char *, 3 > valid_dmc_input_sections
 
constexpr int valid_dmc_input_dmc_index = 0
 
constexpr int valid_dmc_input_dmc_batch_index = 1
 
constexpr int valid_dmc_batch_input_dmc_batch_index = 2
 
constexpr std::array< const char *, 2 > valid_opt_input_sections
 As far as I can tell these are no longer valid. More...
 

Detailed Description

SpaceGrid refactored for use with batched estimator design NE should be dropped when QMCHamiltonian/SpaceGrid has been deleted.

Unit testing an impure virtual base class requires a absolute minimal subtype.

This class has more going on than just representing a spacial grid I'm still working out how much of this just because of the Voronoi code that shouldn't be part of the same class as the simpler grid and how much is particleset contimination etc.

For memory considerations it is quite possible this could be at single precision even if the actual montecarlo is being carried out in double precision. Eventually this should be determined from input in some way.


Class Documentation

◆ qmcplusplus::testing::EnergyDensityTests

class qmcplusplus::testing::EnergyDensityTests

template<typename T>
class qmcplusplus::testing::EnergyDensityTests< T >

Definition at line 29 of file ReferencePointsInput.h.

+ Collaboration diagram for EnergyDensityTests< T >:

Typedef Documentation

◆ Lattice

Definition at line 26 of file EstimatorTesting.h.

◆ OBDMI

◆ POLT

Definition at line 25 of file EstimatorTesting.h.

◆ scalar_input

Enumeration Type Documentation

◆ MA_ori

enum MA_ori
strong
Enumerator
ROW 
COLUMN 

Definition at line 18 of file MatrixAccessor.hpp.

◆ SpeciesCases

enum SpeciesCases
strong
Enumerator
GOOD 
NO_MEMBERSIZE 

Definition at line 28 of file EstimatorTesting.h.

Function Documentation

◆ createDriver()

auto qmcplusplus::testing::createDriver ( const RuntimeOptions runtime_options,
Communicate comm,
QMCDriverFactory driver_factory,
xmlNodePtr  node,
QMCDriverFactory::DriverAssemblyState das 
)

Definition at line 53 of file test_QMCDriverFactory.cpp.

References qmcplusplus::comm, QMCDriverFactory::createQMCDriver(), ParticleSetPool::getWalkerSet(), QMCDriverPools::hamiltonian, qmcplusplus::node, QMCDriverPools::particle, and QMCDriverPools::wavefunction.

Referenced by qmcplusplus::TEST_CASE().

58 {
59  QMCDriverPools dr_pools(runtime_options, comm);
60  std::string target("e");
61  MCWalkerConfiguration* qmc_system = dr_pools.particle.getWalkerSet(target);
62  return driver_factory.createQMCDriver(node, das, std::nullopt, *qmc_system, dr_pools.particle, dr_pools.wavefunction,
63  dr_pools.hamiltonian, comm);
64 }
if(!okay) throw std xmlNodePtr node

◆ createEstimatorManagerNewGlobalInputXML()

Libxml2Document createEstimatorManagerNewGlobalInputXML ( )

Definition at line 26 of file EstimatorManagerInputTest.cpp.

References Libxml2Document::addChild(), qmcplusplus::doc, qmcplusplus::estimators_doc, Libxml2Document::getRoot(), ValidScalarEstimatorInput::LOCAL_ENERGY, Libxml2Document::newDoc(), qmcplusplus::node, qmcplusplus::okay, Libxml2Document::parseFromString(), qmcplusplus::REQUIRE(), and ValidScalarEstimatorInput::xml.

Referenced by qmcplusplus::TEST_CASE().

27 {
28  const int max_node_recurse = 3;
30  estimators_doc.newDoc("Estimators");
31  {
33  bool okay = doc.parseFromString(scalar_input::xml[scalar_input::LOCAL_ENERGY]);
34  REQUIRE(okay);
35  xmlNodePtr node = doc.getRoot();
36  estimators_doc.addChild(xmlCopyNode(node, max_node_recurse));
37  }
38 
39  return estimators_doc;
40 }
class that handles xmlDoc
Definition: Libxml2Doc.h:76
if(!okay) throw std xmlNodePtr node
void newDoc(const std::string &rootName)
Definition: Libxml2Doc.cpp:93
xmlNodePtr getRoot()
Definition: Libxml2Doc.h:88
REQUIRE(std::filesystem::exists(filename))
Libxml2Document estimators_doc
bool parseFromString(const std::string_view data)
Definition: Libxml2Doc.cpp:204
void addChild(xmlNodePtr newnode)
Definition: Libxml2Doc.cpp:111

◆ createEstimatorManagerNewInputXML()

Libxml2Document createEstimatorManagerNewInputXML ( )

Definition at line 42 of file EstimatorManagerInputTest.cpp.

References Libxml2Document::addChild(), qmcplusplus::doc, qmcplusplus::estimators_doc, Libxml2Document::getRoot(), Libxml2Document::newDoc(), qmcplusplus::node, qmcplusplus::okay, Libxml2Document::parseFromString(), qmcplusplus::REQUIRE(), valid_momentum_distribution_input_sections, and ValidScalarEstimatorInput::xml.

Referenced by qmcplusplus::TEST_CASE().

43 {
44  const int max_node_recurse = 3;
46  estimators_doc.newDoc("Estimators");
47  {
48  using Input = testing::ValidOneBodyDensityMatricesInput;
50  bool okay = doc.parseFromString(Input::xml[0]);
51  REQUIRE(okay);
52  xmlNodePtr node = doc.getRoot();
53  estimators_doc.addChild(xmlCopyNode(node, max_node_recurse));
54  }
55  {
58  REQUIRE(okay);
59  xmlNodePtr node = doc.getRoot();
60  estimators_doc.addChild(xmlCopyNode(node, max_node_recurse));
61  }
62  for (auto& input_xml : scalar_input::xml)
63  {
65  bool okay = doc.parseFromString(input_xml);
66  REQUIRE(okay);
67  xmlNodePtr node = doc.getRoot();
68  estimators_doc.addChild(xmlCopyNode(node, max_node_recurse));
69  }
70 
71  return estimators_doc;
72 }
class that handles xmlDoc
Definition: Libxml2Doc.h:76
if(!okay) throw std xmlNodePtr node
void newDoc(const std::string &rootName)
Definition: Libxml2Doc.cpp:93
xmlNodePtr getRoot()
Definition: Libxml2Doc.h:88
REQUIRE(std::filesystem::exists(filename))
constexpr std::array< std::string_view, 2 > valid_momentum_distribution_input_sections
Libxml2Document estimators_doc
bool parseFromString(const std::string_view data)
Definition: Libxml2Doc.cpp:204
void addChild(xmlNodePtr newnode)
Definition: Libxml2Doc.cpp:111

◆ createEstimatorManagerNewVMCInputXML()

Libxml2Document createEstimatorManagerNewVMCInputXML ( )

Definition at line 74 of file EstimatorManagerInputTest.cpp.

References Libxml2Document::addChild(), qmcplusplus::doc, qmcplusplus::estimators_doc, Libxml2Document::getRoot(), ValidScalarEstimatorInput::LOCAL_ENERGY, Libxml2Document::newDoc(), qmcplusplus::node, qmcplusplus::okay, Libxml2Document::parseFromString(), qmcplusplus::REQUIRE(), valid_momentum_distribution_input_sections, and ValidScalarEstimatorInput::xml.

Referenced by qmcplusplus::TEST_CASE().

75 {
76  const int max_node_recurse = 3;
78  estimators_doc.newDoc("Estimators");
79  {
80  using Input = testing::ValidOneBodyDensityMatricesInput;
82  bool okay = doc.parseFromString(Input::xml[0]);
83  REQUIRE(okay);
84  xmlNodePtr node = doc.getRoot();
85  estimators_doc.addChild(xmlCopyNode(node, max_node_recurse));
86  }
87  {
90  REQUIRE(okay);
91  xmlNodePtr node = doc.getRoot();
92  estimators_doc.addChild(xmlCopyNode(node, max_node_recurse));
93  }
94  {
96  bool okay = doc.parseFromString(scalar_input::xml[scalar_input::LOCAL_ENERGY]);
97  REQUIRE(okay);
98  xmlNodePtr node = doc.getRoot();
99  estimators_doc.addChild(xmlCopyNode(node, max_node_recurse));
100  }
101 
102  return estimators_doc;
103 }
class that handles xmlDoc
Definition: Libxml2Doc.h:76
if(!okay) throw std xmlNodePtr node
void newDoc(const std::string &rootName)
Definition: Libxml2Doc.cpp:93
xmlNodePtr getRoot()
Definition: Libxml2Doc.h:88
REQUIRE(std::filesystem::exists(filename))
constexpr std::array< std::string_view, 2 > valid_momentum_distribution_input_sections
Libxml2Document estimators_doc
bool parseFromString(const std::string_view data)
Definition: Libxml2Doc.cpp:204
void addChild(xmlNodePtr newnode)
Definition: Libxml2Doc.cpp:111

◆ generateRandomParticleSets()

std::vector< ParticleSet > generateRandomParticleSets ( ParticleSet pset_target,
ParticleSet pset_source,
std::vector< ParticleSet::ParticlePos > &  deterministic_rs,
int  num_psets 
)

This function sets particle set positions from a set of Rs or writes out a set of positions for test reproducibility.

Definition at line 26 of file GenerateRandomParticleSets.cpp.

References qmcplusplus::pset_target.

30 {
31  int nwalkers = num_psets;
32  std::vector<ParticleSet> psets(num_psets, pset_target);
33  if constexpr (GEN_TEST_DATA)
34  {
35  std::cout << "Initialize OneBodyDensityMatrices::accumulate psets with:\n{";
36  std::vector<ParticleSet> psets;
37  for (int iw = 0; iw < nwalkers; ++iw)
38  {
39  //psets.emplace_back(pset_target);
40  psets.back().randomizeFromSource(pset_source);
41  std::cout << "{";
42  for (auto r : psets.back().R)
43  std::cout << NativePrint(r) << ",";
44  std::cout << "},\n";
45  }
46  std::cout << "}\n";
47  }
48  else
49  {
50  for (int iw = 0; iw < nwalkers; ++iw)
51  psets[iw].R = deterministic_rs[iw];
52  }
53  return psets;
54 }

◆ generateRandomParticleSets< false >()

template std::vector< ParticleSet > generateRandomParticleSets< false > ( ParticleSet pset_target,
ParticleSet pset_source,
std::vector< ParticleSet::ParticlePos > &  deterministic_rs,
int  num_psets 
)

◆ generateRandomParticleSets< true >()

template std::vector< ParticleSet > generateRandomParticleSets< true > ( ParticleSet pset_target,
ParticleSet pset_source,
std::vector< ParticleSet::ParticlePos > &  deterministic_rs,
int  num_psets 
)

◆ getHistoryParams()

std::vector< std::vector< QMCTraits::ValueType > > & getHistoryParams ( RotatedSPOs rot)

Definition at line 734 of file test_RotatedSPOs.cpp.

References RotatedSPOs::history_params_.

Referenced by qmcplusplus::TEST_CASE().

734 { return rot.history_params_; }

◆ getMyVars()

opt_variables_type & getMyVars ( SPOSet spo)

Definition at line 732 of file test_RotatedSPOs.cpp.

References SPOSet::myVars.

Referenced by qmcplusplus::TEST_CASE().

732 { return rot.myVars; }

◆ getMyVarsFull()

std::vector< QMCTraits::ValueType > & getMyVarsFull ( RotatedSPOs rot)

Definition at line 733 of file test_RotatedSPOs.cpp.

References RotatedSPOs::myVarsFull_.

Referenced by qmcplusplus::TEST_CASE().

733 { return rot.myVarsFull_; }

◆ getParticularListener()

auto qmcplusplus::testing::getParticularListener ( Matrix< T > &  local_pots)

Definition at line 21 of file TestListenerFunction.h.

References Matrix< T, Alloc >::cols(), qmcplusplus::syclBLAS::copy_n(), and Matrix< T, Alloc >::rows().

Referenced by qmcplusplus::doSOECPotentialTest(), qmcplusplus::TEST_CASE(), and qmcplusplus::testElecCase().

22 {
23  return [&local_pots](const int walker_index, const std::string& name, const Vector<T>& inputV) {
24  assert(local_pots.cols() >= inputV.size());
25  assert(walker_index < local_pots.rows());
26  std::copy_n(inputV.begin(), inputV.size(), local_pots[walker_index]);
27  };
28 }
size_type cols() const
Definition: OhmmsMatrix.h:78
size_type rows() const
Definition: OhmmsMatrix.h:77
sycl::event copy_n(sycl::queue &aq, const T1 *restrict VA, size_t array_size, T2 *restrict VC, const std::vector< sycl::event > &events)
Definition: syclBLAS.cpp:548

◆ getSummingListener()

auto qmcplusplus::testing::getSummingListener ( Matrix< T > &  local_pots)

Definition at line 31 of file TestListenerFunction.h.

References Matrix< T, Alloc >::cols(), and Matrix< T, Alloc >::rows().

Referenced by qmcplusplus::TEST_CASE().

32 {
33  return [&local_pots](const int walker_index, const std::string& name, const Vector<T>& inputV) {
34  assert(local_pots.cols() >= inputV.size());
35  assert(walker_index < local_pots.rows());
36  std::transform(inputV.begin(), inputV.end(), local_pots[walker_index], local_pots[walker_index], std::plus<>{} );
37  };
38 }
size_type cols() const
Definition: OhmmsMatrix.h:78
size_type rows() const
Definition: OhmmsMatrix.h:77

◆ makeRngSpdMatrix()

void makeRngSpdMatrix ( testing::RandomForTest< RngValueType< T >> &  rng,
Matrix< T > &  mat_spd 
)

Definition at line 37 of file makeRngSpdMatrix.hpp.

References Matrix< T, Alloc >::cols(), Matrix< T, Alloc >::data(), BLAS::gemm(), LAPACK::gesvd(), qmcplusplus::n, Matrix< T, Alloc >::resize(), Matrix< T, Alloc >::rows(), Matrix< T, Alloc >::size(), and qmcplusplus::simd::transpose().

Referenced by MakeRngSpdMatrix< T >::operator()(), MakeRngVector< T >::operator()(), qmcplusplus::TEST_CASE(), qmcplusplus::test_inverse(), and qmcplusplus::testDualAllocator().

38 {
39  int n = mat_spd.rows();
40  Matrix<T> mat_a;
41  mat_a.resize(n, n);
42  rng.fillBufferRng(mat_a.data(), mat_a.size());
43  Matrix<T> mat_a_t(mat_a);
44  Matrix<T> mat_c;
45  mat_c.resize(n, n);
46  Matrix<T> mat_u;
47  mat_u.resize(n, n);
48  Matrix<T> mat_v;
49  mat_v.resize(n, n);
50  Matrix<T> mat_diag;
51  mat_diag.resize(n, n);
52  mat_diag = 0.0;
53  std::vector<T> singular_values(n);
54  std::vector<T> work_vec(5 * n);
55  int info;
56  const char trans = 't';
57  const char notrans = 'n';
58  const char all = 'a';
59  BLAS::gemm(trans, notrans, n, n, n, 1.0, mat_a.data(), n, mat_a_t.data(), n, 0.0, mat_c.data(), n);
60  LAPACK::gesvd(all, all, n, n, mat_c.data(), n, singular_values.data(), mat_u.data(), n, mat_v.data(), n,
61  work_vec.data(), work_vec.size(), info);
62  if (info == 0)
63  {
64  for (int i = 0; i < n; ++i)
65  mat_diag(i, i) = rng();
66  mat_diag += 1.0;
67  // reuse mat_a_t for this intermediate resutls
68  BLAS::gemm(notrans, notrans, n, n, n, 1.0, mat_u.data(), n, mat_diag.data(), n, 0.0, mat_a_t.data(), n);
69  // then reuse mat_u
70  BLAS::gemm(notrans, notrans, n, n, n, 1.0, mat_a_t.data(), n, mat_v.data(), n, 0.0, mat_u.data(), n);
71  }
72  simd::transpose(mat_u.data(), n, mat_u.cols(), mat_spd.data(), n, n);
73 }
static void gesvd(const char &jobu, const char &jobvt, const int &m, const int &n, float *a, const int &lda, float *s, float *u, const int &ldu, float *vt, const int &ldvt, float *work, const int &lwork, int &info)
Definition: BLAS.hpp:520
AntiSymTensor< T, D > transpose(const AntiSymTensor< T, D > &rhs)
size_type rows() const
Definition: OhmmsMatrix.h:77
static void gemm(char Atrans, char Btrans, int M, int N, int K, double alpha, const double *A, int lda, const double *restrict B, int ldb, double beta, double *restrict C, int ldc)
Definition: BLAS.hpp:235

◆ makeRngVector()

void qmcplusplus::testing::makeRngVector ( testing::RandomForTest< RngValueType< T >> &  rng,
Vector< T > &  vec 
)

make a random Vector

Definition at line 130 of file makeRngSpdMatrix.hpp.

References Vector< T, Alloc >::data(), qmcplusplus::n, and Vector< T, Alloc >::size().

131 {
132  int n = vec.size();
133  rng.fillBufferRng(vec.data(), vec.size());
134 }
size_type size() const
return the current size
Definition: OhmmsVector.h:162

◆ makeSpeciesSet()

SpeciesSet makeSpeciesSet ( const SpeciesCases  species_case)

Definition at line 29 of file EstimatorTesting.cpp.

References GOOD, qmcplusplus::iattribute, NO_MEMBERSIZE, and qmcplusplus::species_set.

Referenced by qmcplusplus::TEST_CASE().

30 {
31  SpeciesSet species_set;
32  switch (species_case)
33  {
34  case SpeciesCases::GOOD: {
35  species_set.addSpecies("u");
36  species_set.addSpecies("d");
37  const int iattribute = species_set.addAttribute("membersize");
38  species_set(iattribute, 0) = 1;
39  species_set(iattribute, 1) = 1;
40  break;
41  }
42  case SpeciesCases::NO_MEMBERSIZE: {
43  species_set.addSpecies("u");
44  species_set.addSpecies("d");
45  break;
46  }
47  }
48  return species_set;
49 }

◆ makeTestLattice()

Lattice makeTestLattice ( )

Definition at line 18 of file EstimatorTesting.cpp.

References qmcplusplus::lattice.

Referenced by qmcplusplus::makePsets(), and qmcplusplus::TEST_CASE().

19 {
21  lattice.BoxBConds = true; // periodic
22  lattice.R = ParticleSet::Tensor_t(3.37316115, 3.37316115, 0.00000000, 0.00000000, 3.37316115, 3.37316115, 3.37316115,
23  0.00000000, 3.37316115);
24  lattice.reset();
25  lattice.explicitly_defined = true;
26  return lattice;
27 }
POLT::ParticleLayout Lattice
CrystalLattice< OHMMS_PRECISION, OHMMS_DIM > lattice

◆ TEST_CASE()

qmcplusplus::testing::TEST_CASE ( "ListenerVector"  ,
""  [hamiltonian] 
)

Definition at line 69 of file test_Listener.cpp.

References qmcplusplus::CHECK(), MockPerParticleEstimator::makeListener(), MockPerParticleEstimator::receiver_vector_, MockQMCHamiltonianAndReporter::registerVector(), and MockQMCHamiltonianAndReporter::reportVector().

70 {
71  MockQMCHamiltonianAndReporter mock_ham_report;
72  MockPerParticleEstimator mock_estimator;
73 
74  mock_ham_report.registerVector(mock_estimator.makeListener());
75 
76  mock_ham_report.reportVector();
77  CHECK(mock_estimator.receiver_vector_[0] == 0);
78  CHECK(mock_estimator.receiver_vector_[3] == 3);
79 }
CHECK(log_values[0]==ComplexApprox(std::complex< double >{ 5.603777579195571, -6.1586603331188225 }))

Variable Documentation

◆ invalid_mag_density_input_sections

constexpr std::array<std::string_view, 3> invalid_mag_density_input_sections
Initial value:
{
R"XML(
<estimator type="MagnetizationDensity" name="magdensity">
<parameter name="integrator" > tacocat </parameter>
<parameter name="samples" > 64 </parameter>
<parameter name="center" > 0.0 0.0 0.1 </parameter>
<parameter name="grid" > 4 4 4 </parameter>
</estimator>
)XML",
R"XML(
<estimator type="MagnetizationDensity" name="magdensity">
<parameter name="center" > 0.0 1.0 0.0 </parameter>
<parameter name="corner" > 0.0 0.1 0.0 </parameter>
<parameter name="samples" > 128 </parameter>
<parameter name="dr" > 0.1 0.1 0.1 </parameter>
</estimator>
)XML",
R"XML(
<estimator type="MagnetizationDensity" name="magdensity">
<parameter name="grid" > 0.9 1 5 </parameter>
</estimator>
)XML"
}

Definition at line 23 of file InvalidMagnetizationDensityInput.h.

Referenced by qmcplusplus::TEST_CASE().

◆ invalid_magnetization_density_badgrid

constexpr int invalid_magnetization_density_badgrid = 2

Definition at line 50 of file InvalidMagnetizationDensityInput.h.

◆ invalid_magnetization_density_cornercenter

constexpr int invalid_magnetization_density_cornercenter = 1

Definition at line 49 of file InvalidMagnetizationDensityInput.h.

◆ invalid_magnetization_density_integrator

constexpr int invalid_magnetization_density_integrator = 0

Definition at line 48 of file InvalidMagnetizationDensityInput.h.

◆ valid_dmc_batch_input_dmc_batch_index

constexpr int valid_dmc_batch_input_dmc_batch_index = 2

Definition at line 137 of file ValidQMCInputSections.h.

Referenced by qmcplusplus::TEST_CASE().

◆ valid_dmc_input_dmc_batch_index

constexpr int valid_dmc_input_dmc_batch_index = 1

◆ valid_dmc_input_dmc_index

constexpr int valid_dmc_input_dmc_index = 0

◆ valid_dmc_input_sections

constexpr std::array<const char*, 3> valid_dmc_input_sections

◆ valid_momentum_distribution_input_sections

constexpr std::array<std::string_view, 2> valid_momentum_distribution_input_sections
Initial value:
{
R"(
<estimator type="MomentumDistribution" name="nofk" samples="5" kmax="3"/>
)",
R"(
<estimator type="MomentumDistribution" name="nofk" samples="5" kmax0="3" kmax1="2" kmax2="1.5"/>
)"}

Definition at line 21 of file ValidMomentumDistributionInput.h.

Referenced by createEstimatorManagerNewInputXML(), and createEstimatorManagerNewVMCInputXML().

◆ valid_opt_input_sections

constexpr std::array<const char*, 2> valid_opt_input_sections
Initial value:
{
R"(
<qmc method="opt" move="pbyp" gpu="yes">
</qmc>
)",
R"(
<qmc method="opt" move="pbyp">
<optimize method="test" output_param_file="yes"/>
<parameter name="opt_num_crowds"> 4 </parameter>
<parameter name="opt_crowd_size"> 8 </parameter>
</qmc>
)"}

As far as I can tell these are no longer valid.

Definition at line 140 of file ValidQMCInputSections.h.

Referenced by qmcplusplus::TEST_CASE().

◆ valid_vmc_batch_input_vmc_batch_index

constexpr int valid_vmc_batch_input_vmc_batch_index = 3

Definition at line 88 of file ValidQMCInputSections.h.

Referenced by qmcplusplus::TEST_CASE().

◆ valid_vmc_input_sections

constexpr std::array<const char*, 4> valid_vmc_input_sections

◆ valid_vmc_input_vmc_batch_index

constexpr int valid_vmc_input_vmc_batch_index = 1

◆ valid_vmc_input_vmc_index

constexpr int valid_vmc_input_vmc_index = 0

Definition at line 85 of file ValidQMCInputSections.h.

Referenced by qmcplusplus::TEST_CASE().

◆ valid_vmc_input_vmc_tiny_index

constexpr int valid_vmc_input_vmc_tiny_index = 2

Definition at line 87 of file ValidQMCInputSections.h.

Referenced by qmcplusplus::TEST_CASE().