|
NEML2 2.1.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. | |
| std::string | type () const |
| 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 = EquationSystem> | |
| std::shared_ptr< T > | get_es (const std::string &name) |
| Get an equation system from the factory. | |
| 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 () |
Protected Member Functions | |
| VariableName | history_name (const VariableName &var, std::size_t nstep) const |
| Helper method to wrap a variable name into its history form. | |
| VariableName | rate_name (const VariableName &var) const |
| Helper method to wrap a variable name into its rate form. | |
| VariableName | residual_name (const VariableName &var) const |
| Helper method to wrap a variable name into its residual form. | |
|
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_es | ( | const std::string & | name | ) |
Get an equation system 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.
|
protected |
Helper method to wrap a variable name into its history form.
This is a personal preference in the end. The idea is to have a consistent way to name the history form of a variable, which is commonly used in time integration. The behavior can be controlled via Settings::history_separator.
| var | The variable name |
| nstep | The history step (0 for current, 1 for previous, etc.) |
| 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.
|
protected |
Helper method to wrap a variable name into its rate form.
This is a personal preference in the end. The idea is to have a consistent way to name the rate form of a variable, which is commonly used in time integration. The behavior can be controlled via Settings::rate_prefix and Settings::rate_suffix.
| var | The variable name |
|
protected |
Helper method to wrap a variable name into its residual form.
Similar to rate_name, this is for consistent naming of residual variables, which are commonly used in nonlinear systems. The behavior can be controlled via Settings::residual_prefix and Settings::residual_suffix.
| var | The variable name |
| 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 Model, ModelDriver, ModelNonlinearSystem, SimpleMPIScheduler, StaticHybridScheduler, TransientDriver, UserTensorBase< T >, UserTensorBase< R2 >, UserTensorBase< Rot >, UserTensorBase< Scalar >, UserTensorBase< SR2 >, UserTensorBase< Tensor >, and UserTensorBase< WR2 >.
|
inline |
The object's type.