12 #ifndef QMCPLUSPLUS_ONE_BODY_DENSITY_MATRICES_INPUT_H 13 #define QMCPLUSPLUS_ONE_BODY_DENSITY_MATRICES_INPUT_H 23 class OneBodyDensityMatricesTests;
26 class OneBodyDensityMatrices;
59 inline static const std::unordered_map<std::string, std::any>
75 parameters = {
"basis",
"energy_matrix",
"integrator",
"evaluator",
"scale",
76 "corner",
"center",
"points",
"samples",
"warmup",
"timestep",
77 "use_drift",
"check_overlap",
"check_derivatives",
"acceptance_ratio",
"rstats",
78 "normalized",
"volumed_normed"};
79 bools = {
"energy_matrix",
"use_drift",
"normalized",
"volume_normed",
80 "check_overlap",
"check_derivatives",
"rstats",
"acceptance_ratio"};
81 enums = {
"integrator",
"evaluator"};
85 reals = {
"scale",
"timestep"};
94 std::any
assignAnyEnum(
const std::string& name)
const override;
158 extern template bool InputSection::setIfInInput<qmcplusplus::OneBodyDensityMatricesInput::Integrator>(
160 const std::string& tag);
std::unordered_set< std::string > strings
std::unordered_set< std::string > reals
helper functions for EinsplineSetBuilder
std::unordered_set< std::string > parameters
bool get_write_acceptance_ratio() const
Per crowd Estimator for OneBodyDensityMatrices aka 1RDM DensityMatrices1B.
bool get_volume_normalized() const
bool write_acceptance_ratio_
std::unordered_set< std::string > positions
bool get_check_derivatives() const
Real get_timestep() const
bool get_corner_defined() const
Position center_
center_ does not have a default. The estimator sets if from input Lattice if it isn't set ...
Native representation for DensityMatrices1B Estimator's inputs.
void checkParticularValidity() override
do parse time checks of input
std::unordered_set< std::string > integers
bool get_use_drift() const
bool get_center_defined() const
OneBodyDensityMatricesInput(const OneBodyDensityMatricesInput &)=default
default copy constructor This is required due to OBDMI being part of a variant used as a vector eleme...
OneBodyDensityMatricesInputSection()
parse time definition of input parameters
std::unordered_set< std::string > attributes
bool get_energy_matrix() const
bool get_normalized() const
bool center_defined_
This flag is derived from input so if you construct an OBDMI directly with center it must be set...
Position get_center() const
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 ...
int get_warmup_samples() const
std::vector< std::string > basis_sets_
std::unordered_set< std::string > required
const std::vector< std::string > & get_basis_sets() const
OneBodyDensityMatricesInputSection input_section_
Position get_corner() const
std::unordered_set< std::string > multi_strings
std::unordered_set< std::string > bools
QTFull::RealType FullPrecRealType
Input section provides basic parsing and a uniform method of access to the raw parsed input...
bool get_check_overlap() const
QMCTraits::FullPrecRealType Real
Integrator get_integrator() const
std::string section_name
"Name" of the input section, you must define this in the subtype and the ename, name, type, or method must match.
Evaluator get_evaluator() const
std::unordered_set< std::string > enums
list of enum inputs which allow a finite set of strings to map to enum values The enum class types an...
std::any assignAnyEnum(const std::string &name) const override
Derived class overrides this to get proper assignment of scoped enum values.