|
NEML2 2.0.0
|
The base class of all "manufacturable" objects in the NEML2 library. More...
The base class of all "manufacturable" objects in the NEML2 library.
NEML2 uses the standard registry-factory pattern for automatic object registration and creation. The registry and the factory relies on polymophism to collect and resolve all types at run-time. See Registry and Factory for more details.
#include <NEML2Object.h>

Public Member Functions | |
| NEML2Object ()=delete | |
| NEML2Object (NEML2Object &&)=delete | |
| NEML2Object (const NEML2Object &)=delete | |
| NEML2Object & | operator= (NEML2Object &&)=delete |
| NEML2Object & | operator= (const NEML2Object &)=delete |
| virtual | ~NEML2Object ()=default |
| NEML2Object (const OptionSet &options) | |
| Construct a new NEML2Object object. | |
| const OptionSet & | input_options () const |
| virtual void | setup () |
| Setup this object. | |
| const std::string & | name () const |
| A readonly reference to the object's name. | |
| const std::string & | type () const |
| A readonly reference to the object's type. | |
| const std::string & | path () const |
| A readonly reference to the object's path. | |
| const std::string & | doc () const |
| A readonly reference to the object's docstring. | |
| Factory * | factory () const |
| Get the factory that created this object. | |
| const Settings & | settings () const |
| Settings. | |
| template<typename T = NEML2Object> | |
| const T * | host () const |
| Get a readonly pointer to the host. | |
| template<typename T = NEML2Object> | |
| T * | host () |
| Get a writable pointer to the host. | |
| template<typename T > | |
| const T & | resolve_tensor (const std::string &name) |
| Resolve a TensorName to a Tensor. | |
| template<class T > | |
| std::shared_ptr< T > | get_object (const std::string §ion, const std::string &name) |
| template<class T = Solver> | |
| std::shared_ptr< T > | get_solver (const std::string &name) |
| Get a solver from the factory. | |
| template<class T = Data> | |
| std::shared_ptr< T > | get_data (const std::string &name) |
| Get a data from the factory. | |
| template<class T = Model> | |
| std::shared_ptr< T > | get_model (const std::string &name) |
| Get a model from the factory. | |
| template<class T = Driver> | |
| std::shared_ptr< T > | get_driver (const std::string &name) |
| Get a driver from the factory. | |
| template<class T = WorkScheduler> | |
| std::shared_ptr< T > | get_scheduler (const std::string &name) |
| Get a scheduler from the factory. | |
Static Public Member Functions | |
| static OptionSet | expected_options () |
|
delete |
|
delete |
|
delete |
|
virtualdefault |
| NEML2Object | ( | const OptionSet & | options | ) |
Construct a new NEML2Object object.
| options | The set of options extracted from the input file |
|
inline |
A readonly reference to the object's docstring.
|
static |
|
inline |
Get the factory that created this object.
| std::shared_ptr< T > get_data | ( | const std::string & | name | ) |
Get a data from the factory.
| std::shared_ptr< T > get_driver | ( | const std::string & | name | ) |
Get a driver from the factory.
| std::shared_ptr< T > get_model | ( | const std::string & | name | ) |
Get a model from the factory.
| std::shared_ptr< T > get_object | ( | const std::string & | section, |
| const std::string & | name ) |
Get an object from the factory
| std::shared_ptr< T > get_scheduler | ( | const std::string & | name | ) |
Get a scheduler from the factory.
| std::shared_ptr< T > get_solver | ( | const std::string & | name | ) |
Get a solver from the factory.
| T * host | ( | ) |
Get a writable pointer to the host.
| const T * host | ( | ) | const |
Get a readonly pointer to the host.
|
inline |
|
inline |
A readonly reference to the object's name.
|
delete |
|
delete |
|
inline |
A readonly reference to the object's path.
| const T & resolve_tensor | ( | const std::string & | name | ) |
Resolve a TensorName to a Tensor.
|
inlinevirtual |
Setup this object.
This method is called automatically if you use the Factory method get_object or get_object, right after construction. This serves as the entry point for things that are not convenient/possible to do at construction time, but are necessary before this object can be used (by others).
Reimplemented in LDISolidMechanicsDriver, Model, ModelDriver, SimpleMPIScheduler, SolidMechanicsDriver, StaticHybridScheduler, TransientDriver, UserTensorBase< T >, UserTensorBase< R2 >, UserTensorBase< Rot >, UserTensorBase< SR2 >, UserTensorBase< Tensor >, and UserTensorBase< WR2 >.
|
inline |
A readonly reference to the object's type.