25#include "neml2/base/Factory.h"
29std::vector<std::string>
Factory::pipeline = {
"Tensors",
"Solvers",
"Data",
"Models",
"Drivers"};
47 const std::string & name = options.
name();
48 const std::string & type = options.
type();
51 auto object = (*builder)(options);
52 _objects[section][name].push_back(
object);
63 os <<
"- " << section <<
":" << std::endl;
75 get()._objects.clear();
The wrapper (decorator) for cross-referencing unresolved values at parse time.
Definition CrossRef.h:52
static void load(const OptionCollection &all_options)
Provide all objects' options to the factory. The factory is ready to manufacture objects after this c...
Definition Factory.cxx:39
void create_object(const std::string §ion, const OptionSet &options)
Manufacture a single NEML2Object.
Definition Factory.cxx:45
static std::vector< std::string > pipeline
The sequence which we use to manufacture objects.
Definition Factory.h:42
static void clear()
Destruct all the objects.
Definition Factory.cxx:73
static Factory & get()
Get the global Factory singleton.
Definition Factory.cxx:32
static void print(std::ostream &os=std::cout)
List all the manufactured objects.
Definition Factory.cxx:58
A data structure that holds options of multiple objects.
Definition OptionCollection.h:38
A custom map-like data structure. The keys are strings, and the values can be nonhomogeneously typed.
Definition OptionSet.h:59
const std::string & name() const
A readonly reference to the option set's name.
Definition OptionSet.h:79
const std::string & type() const
A readonly reference to the option set's type.
Definition OptionSet.h:83
static BuildPtr builder(const std::string &name)
Return the build method pointer of a specific registered class.
Definition Registry.cxx:63
Definition CrossRef.cxx:32