QMCPACK
OneBodyDensityMatricesInput Class Reference

Native representation for DensityMatrices1B Estimator's inputs. More...

+ Collaboration diagram for OneBodyDensityMatricesInput:

Classes

class  OneBodyDensityMatricesInputSection
 

Public Types

enum  Integrator { UNIFORM_GRID, UNIFORM, DENSITY }
 
enum  Evaluator { LOOP, MATRIX }
 
using Consumer = OneBodyDensityMatrices
 
using Real = QMCTraits::FullPrecRealType
 
using Position = TinyVector< Real, OHMMS_DIM >
 

Public Member Functions

 OneBodyDensityMatricesInput (const OneBodyDensityMatricesInput &)=default
 default copy constructor This is required due to OBDMI being part of a variant used as a vector element. More...
 
 OneBodyDensityMatricesInput (xmlNodePtr cur)
 
bool get_energy_matrix () const
 
bool get_use_drift () const
 
bool get_normalized () const
 
bool get_volume_normalized () const
 
bool get_check_overlap () const
 
bool get_check_derivatives () const
 
bool get_rstats () const
 
bool get_write_acceptance_ratio () const
 
Integrator get_integrator () const
 
Evaluator get_evaluator () const
 
Real get_scale () const
 
Position get_center () const
 
Position get_corner () const
 
bool get_center_defined () const
 
bool get_corner_defined () const
 
Real get_timestep () const
 
int get_points () const
 
int get_samples () const
 
int get_warmup_samples () const
 
const std::vector< std::string > & get_basis_sets () const
 

Static Public Attributes

static const std::unordered_map< std::string, std::any > lookup_input_enum_value
 mapping for enumerated options of OneBodyDensityMatrices This data object is the basis of input enum string values translation to native C++ scoped enums. More...
 

Private Attributes

OneBodyDensityMatricesInputSection input_section_
 
bool energy_matrix_ = false
 
bool use_drift_ = false
 
bool normalized_ = true
 
bool volume_normalized_ = true
 
bool check_overlap_ = false
 
bool check_derivatives_ = false
 
bool rstats_ = false
 
bool write_acceptance_ratio_ = false
 
bool center_defined_ = false
 This flag is derived from input so if you construct an OBDMI directly with center it must be set. More...
 
bool corner_defined_ = false
 
Integrator integrator_ = Integrator::UNIFORM_GRID
 
Evaluator evaluator_ = Evaluator::LOOP
 
Real scale_ = 1.0
 
Position center_
 center_ does not have a default. The estimator sets if from input Lattice if it isn't set More...
 
Position corner_
 
Real timestep_ = 0.5
 
int points_ = 10
 
int samples_ = 10
 
int warmup_samples_ = 30
 
std::vector< std::string > basis_sets_
 

Friends

template<typename T >
class testing::OneBodyDensityMatricesTests
 

Detailed Description

Native representation for DensityMatrices1B Estimator's inputs.

Definition at line 30 of file OneBodyDensityMatricesInput.h.

Member Typedef Documentation

◆ Consumer

Definition at line 33 of file OneBodyDensityMatricesInput.h.

◆ Position

Definition at line 98 of file OneBodyDensityMatricesInput.h.

◆ Real

Member Enumeration Documentation

◆ Evaluator

enum Evaluator
strong
Enumerator
LOOP 
MATRIX 

Definition at line 42 of file OneBodyDensityMatricesInput.h.

43  {
44  LOOP,
45  MATRIX
46  };

◆ Integrator

enum Integrator
strong
Enumerator
UNIFORM_GRID 
UNIFORM 
DENSITY 

Definition at line 35 of file OneBodyDensityMatricesInput.h.

36  {
37  UNIFORM_GRID,
38  UNIFORM,
39  DENSITY
40  };

Constructor & Destructor Documentation

◆ OneBodyDensityMatricesInput() [1/2]

default copy constructor This is required due to OBDMI being part of a variant used as a vector element.

◆ OneBodyDensityMatricesInput() [2/2]

OneBodyDensityMatricesInput ( xmlNodePtr  cur)

Definition at line 22 of file OneBodyDensityMatricesInput.cpp.

References OneBodyDensityMatricesInput::basis_sets_, OneBodyDensityMatricesInput::center_, OneBodyDensityMatricesInput::center_defined_, OneBodyDensityMatricesInput::check_derivatives_, OneBodyDensityMatricesInput::check_overlap_, OneBodyDensityMatricesInput::corner_, OneBodyDensityMatricesInput::corner_defined_, OneBodyDensityMatricesInput::energy_matrix_, OneBodyDensityMatricesInput::evaluator_, OneBodyDensityMatricesInput::input_section_, OneBodyDensityMatricesInput::integrator_, LAMBDA_setIfInInput, OneBodyDensityMatricesInput::normalized_, OneBodyDensityMatricesInput::points_, InputSection::readXML(), OneBodyDensityMatricesInput::rstats_, OneBodyDensityMatricesInput::samples_, OneBodyDensityMatricesInput::scale_, OneBodyDensityMatricesInput::timestep_, OneBodyDensityMatricesInput::use_drift_, OneBodyDensityMatricesInput::volume_normalized_, OneBodyDensityMatricesInput::warmup_samples_, and OneBodyDensityMatricesInput::write_acceptance_ratio_.

23 {
24  // This results in checkParticularValidity being called on OneBodyDensityMatrixInputSection
26  auto setIfInInput = LAMBDA_setIfInInput;
27  setIfInInput(energy_matrix_, "energy_matrix");
28  setIfInInput(use_drift_, "use_drift");
29  setIfInInput(normalized_, "normalized");
30  setIfInInput(volume_normalized_, "volume_normalized");
31  setIfInInput(check_overlap_, "check_overlap");
32  setIfInInput(check_derivatives_, "check_derivatives");
33  setIfInInput(rstats_, "rstats");
34  setIfInInput(write_acceptance_ratio_, "acceptance_ratio");
35  setIfInInput(integrator_, "integrator");
36  setIfInInput(evaluator_, "evaluator");
37  setIfInInput(scale_, "scale");
38  center_defined_ = setIfInInput(center_, "center");
39  corner_defined_ = setIfInInput(corner_, "corner");
40  setIfInInput(timestep_, "timestep");
41  setIfInInput(points_, "points");
42  setIfInInput(samples_, "samples");
43  setIfInInput(warmup_samples_, "warmup_samples");
44  setIfInInput(basis_sets_, "basis");
45 }
Position center_
center_ does not have a default. The estimator sets if from input Lattice if it isn&#39;t set ...
#define LAMBDA_setIfInInput
If tag is present in input_secution set its variable.
void readXML(xmlNodePtr cur)
Read variable values (initialize) from XML input, call checkValid.
bool center_defined_
This flag is derived from input so if you construct an OBDMI directly with center it must be set...
OneBodyDensityMatricesInputSection input_section_

Member Function Documentation

◆ get_basis_sets()

const std::vector<std::string>& get_basis_sets ( ) const
inline

◆ get_center()

Position get_center ( ) const
inline

Definition at line 145 of file OneBodyDensityMatricesInput.h.

References OneBodyDensityMatricesInput::center_.

Referenced by OneBodyDensityMatrices::OneBodyDensityMatrices().

145 { return center_; }
Position center_
center_ does not have a default. The estimator sets if from input Lattice if it isn&#39;t set ...

◆ get_center_defined()

bool get_center_defined ( ) const
inline

Definition at line 147 of file OneBodyDensityMatricesInput.h.

References OneBodyDensityMatricesInput::center_defined_.

Referenced by OneBodyDensityMatrices::OneBodyDensityMatrices().

147 { return center_defined_; }
bool center_defined_
This flag is derived from input so if you construct an OBDMI directly with center it must be set...

◆ get_check_derivatives()

bool get_check_derivatives ( ) const
inline

◆ get_check_overlap()

bool get_check_overlap ( ) const
inline

◆ get_corner()

◆ get_corner_defined()

◆ get_energy_matrix()

bool get_energy_matrix ( ) const
inline

◆ get_evaluator()

◆ get_integrator()

◆ get_normalized()

◆ get_points()

◆ get_rstats()

bool get_rstats ( ) const
inline

◆ get_samples()

◆ get_scale()

◆ get_timestep()

◆ get_use_drift()

◆ get_volume_normalized()

◆ get_warmup_samples()

int get_warmup_samples ( ) const
inline

◆ get_write_acceptance_ratio()

Friends And Related Function Documentation

◆ testing::OneBodyDensityMatricesTests

Definition at line 155 of file OneBodyDensityMatricesInput.h.

Member Data Documentation

◆ basis_sets_

std::vector<std::string> basis_sets_
private

◆ center_

Position center_
private

center_ does not have a default. The estimator sets if from input Lattice if it isn't set

Definition at line 125 of file OneBodyDensityMatricesInput.h.

Referenced by OneBodyDensityMatricesInput::get_center(), and OneBodyDensityMatricesInput::OneBodyDensityMatricesInput().

◆ center_defined_

bool center_defined_ = false
private

This flag is derived from input so if you construct an OBDMI directly with center it must be set.

Definition at line 119 of file OneBodyDensityMatricesInput.h.

Referenced by OneBodyDensityMatricesInput::get_center_defined(), and OneBodyDensityMatricesInput::OneBodyDensityMatricesInput().

◆ check_derivatives_

◆ check_overlap_

◆ corner_

◆ corner_defined_

◆ energy_matrix_

◆ evaluator_

◆ input_section_

◆ integrator_

◆ lookup_input_enum_value

const std::unordered_map<std::string, std::any> lookup_input_enum_value
inlinestatic
Initial value:
{{"integrator-uniform_grid", Integrator::UNIFORM_GRID},
{"integrator-uniform", Integrator::UNIFORM},
{"integrator-density", Integrator::DENSITY},
{"evaluator-loop", Evaluator::LOOP},
{"evaluator-matrix", Evaluator::MATRIX}}

mapping for enumerated options of OneBodyDensityMatrices This data object is the basis of input enum string values translation to native C++ scoped enums.

This boiler plate is generated by utils/code_tools/qmcpack-elisp-generators.el qmcp-add-enum-string-map

This plus the virtual assignAnyEnum method are needed by InputSection to validate and assign enum values from input.

In testing code we assume this map is bidirectional.

Definition at line 60 of file OneBodyDensityMatricesInput.h.

Referenced by OneBodyDensityMatricesInput::OneBodyDensityMatricesInputSection::assignAnyEnum(), and qmcplusplus::TEST_CASE().

◆ normalized_

◆ points_

◆ rstats_

◆ samples_

◆ scale_

◆ timestep_

◆ use_drift_

◆ volume_normalized_

◆ warmup_samples_

◆ write_acceptance_ratio_

bool write_acceptance_ratio_ = false
private

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