QMCPACK
SpaceGridInput::SpaceGridAxisInput::SpaceGridAxisInputSection Class Reference
+ Inheritance diagram for SpaceGridInput::SpaceGridAxisInput::SpaceGridAxisInputSection:
+ Collaboration diagram for SpaceGridInput::SpaceGridAxisInput::SpaceGridAxisInputSection:

Public Member Functions

 SpaceGridAxisInputSection ()
 
void setFromStreamCustom (const std::string &ename, const std::string &name, std::istringstream &svalue) override
 Derived class can overrides this to do custom parsing of the element values for Custom elements These can have a name attribute only. More...
 
 SpaceGridAxisInputSection (const SpaceGridAxisInputSection &sgais)=default
 
- Public Member Functions inherited from InputSection
 InputSection ()=default
 
 InputSection (const InputSection &other)=default
 
InputSectionoperator= (const InputSection &other)=default
 
bool has (const std::string &name) const
 
template<typename 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

- Public Types inherited from InputSection
using Real = QMCTraits::FullPrecRealType
 
using Position = typename QMCTypes< Real, OHMMS_DIM >::PosType
 
- Static Public Member Functions inherited from InputSection
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...
 
- Protected Types inherited from InputSection
using DelegateHandler = std::function< std::any(xmlNodePtr cur, std::string &value_name)>
 Function that returns Input class as std::any. More...
 
- Protected Member Functions inherited from InputSection
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 std::any assignAnyEnum (const std::string &tag) const
 Derived class overrides this to get proper assignment of scoped enum values. More...
 
void report () const
 
void report (std::ostream &out) const
 
- Static Protected Member Functions inherited from InputSection
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...
 
- Protected Attributes inherited from InputSection
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_
 

Detailed Description

Definition at line 64 of file SpaceGridInput.h.

Constructor & Destructor Documentation

◆ SpaceGridAxisInputSection() [1/2]

Definition at line 67 of file SpaceGridInput.h.

References InputSection::attributes, InputSection::custom, InputSection::reals, InputSection::required, InputSection::section_name, and InputSection::strings.

68  {
69  section_name = "axis";
70  attributes = {"label", "grid", "p1", "p2", "scale"};
71  strings = {"label", "p1", "p2"};
72  custom = {"grid"}, reals = {"scale"};
73  required = {"label", "p1"};
74  }
std::unordered_set< std::string > strings
Definition: InputSection.h:67
std::unordered_set< std::string > reals
Definition: InputSection.h:72
std::unordered_set< std::string > custom
Definition: InputSection.h:74
std::unordered_set< std::string > attributes
Definition: InputSection.h:62
std::unordered_set< std::string > required
Definition: InputSection.h:65
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.
Definition: InputSection.h:57

◆ SpaceGridAxisInputSection() [2/2]

Member Function Documentation

◆ setFromStreamCustom()

void setFromStreamCustom ( const std::string &  ename,
const std::string &  name,
std::istringstream &  svalue 
)
overridevirtual

Derived class can overrides this to do custom parsing of the element values for Custom elements These can have a name attribute only.

Parameters
[in]enamename of the element svalue comes from, top level attributes do not have ename.
[in]namename of the attribute
[in]svalueinput stream consisting of the contents of one element. It is expected that your custom stream handler will consume this entirely.

Reimplemented from InputSection.

Definition at line 36 of file SpaceGridInput.cpp.

39 {
40  // grid can only be an attribute for space grid axes.
41  if (name == "grid")
42  {
43  try
44  {
45  values_[name] = parseGridInput<Real>(svalue);
46  }
47  catch (const UniformCommunicateError& uce)
48  {
49  std::ostringstream msg;
50  msg << "SpaceGridAxisInputSection failed in custom stream handler with: " << uce.what()
51  << " a report of the current parse progress should be found above\n";
52  report();
53  throw UniformCommunicateError(msg.str());
54  }
55  }
56  else
57  throw std::runtime_error("bad name passed or custom setFromStream not implemented in derived class.");
58 }
std::unordered_map< std::string, std::any > values_
Definition: InputSection.h:83

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