![]() |
QMCPACK
|
Public Member Functions | |
ReferencePointsInputSection () | |
std::any | assignAnyEnum (const std::string &name) const override |
Derived class overrides this to get proper assignment of scoped enum values. More... | |
ReferencePointsInputSection (const ReferencePointsInputSection &)=default | |
![]() | |
InputSection ()=default | |
InputSection (const InputSection &other)=default | |
InputSection & | operator= (const InputSection &other)=default |
bool | has (const std::string &name) const |
template<typename T > | |
T | get (const std::string &name) const |
template<typename T > | |
bool | setIfInInput (T &var, const std::string &tag) |
set var if input section has read the tag More... | |
void | readXML (xmlNodePtr cur) |
Read variable values (initialize) from XML input, call checkValid. More... | |
void | init (const std::unordered_map< std::string, std::any > &init_values) |
Additional Inherited Members | |
![]() | |
using | Real = QMCTraits::FullPrecRealType |
using | Position = typename QMCTypes< Real, OHMMS_DIM >::PosType |
![]() | |
template<typename ENUM_T > | |
static std::string | reverseLookupInputEnumMap (ENUM_T enum_val, const std::unordered_map< std::string, std::any > &enum_map) |
Get string represtation of enum class type value from enum_val. More... | |
![]() | |
using | DelegateHandler = std::function< std::any(xmlNodePtr cur, std::string &value_name)> |
Function that returns Input class as std::any. More... | |
![]() | |
void | readAttributes (xmlNodePtr cur, const std::string &element_name, const std::vector< std::string > &do_not_consume) |
reads attributes for both the root node and parameter/child nodes that aren't delegated. More... | |
void | registerDelegate (const std::string &tag, DelegateHandler delegate_handler) |
register factory function for delegate input More... | |
virtual void | checkParticularValidity () |
Do validation for a particular subtype of InputSection Called by check_valid. More... | |
virtual void | setFromStreamCustom (const std::string &ename, const std::string &name, std::istringstream &svalue) |
Derived class can overrides this to do custom parsing of the element values for Custom elements These can have a name attribute only. More... | |
void | report () const |
void | report (std::ostream &out) const |
![]() | |
static std::any | lookupAnyEnum (const std::string &enum_name, const std::string &enum_value, const std::unordered_map< std::string, std::any > &enum_map) |
Assign any enum helper for InputSection derived class assumes enum lookup table of this form: inline static const std::unordered_map<std::string, std::any> lookup_input_enum_value{{"integrator-uniform_grid", Integrator::UNIFORM_GRID}, {"integrator-uniform", Integrator::UNIFORM}, {"integrator-density", Integrator::DENSITY}, {"evaluator-loop", Evaluator::LOOP}, {"evaluator-matrix", Evaluator::MATRIX}};. More... | |
![]() | |
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. More... | |
std::vector< std::string > | section_name_alternates |
For historical reasons some sections must recognize several different names. Assign them to this variable in your subtype. More... | |
std::unordered_set< std::string > | attributes |
std::unordered_set< std::string > | parameters |
std::unordered_set< std::string > | delegates |
std::unordered_set< std::string > | required |
std::unordered_set< std::string > | multiple |
std::unordered_set< std::string > | strings |
std::unordered_set< std::string > | multi_strings |
std::unordered_set< std::string > | multi_reals |
std::unordered_set< std::string > | bools |
std::unordered_set< std::string > | integers |
std::unordered_set< std::string > | reals |
std::unordered_set< std::string > | positions |
std::unordered_set< std::string > | custom |
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 and values need only be known to IS subtypes More... | |
std::unordered_map< std::string, std::any > | default_values |
std::unordered_map< std::string, std::function< std::any(xmlNodePtr cur, std::string &value_key)> > | delegate_factories_ |
std::unordered_map< std::string, std::any > | values_ |
Definition at line 63 of file ReferencePointsInput.h.
|
inline |
Definition at line 66 of file ReferencePointsInput.h.
References InputSection::attributes, InputSection::enums, InputSection::required, and InputSection::section_name.
|
default |
|
overridevirtual |
Derived class overrides this to get proper assignment of scoped enum values.
In most cases all you'll need it to define the map and write: std::any DerivedInputSection::assignAnyEnum(const std::string& name) const { return lookupAnyEnum(name, get<std::string>(name), derived_input_lookup_enum); }
See test_InputSection.cpp and OneBodyDensityMatricesInput You really should do this if your input class has a finite set of string values for an input example: OneBodyDensityMatricesInput
can't be bothered then just define your enum option as a string.
Reimplemented from InputSection.
Definition at line 78 of file ReferencePointsInput.cpp.
References ReferencePointsInput::lookup_input_enum_value, and InputSection::lookupAnyEnum().