NEML2 1.4.0
Loading...
Searching...
No Matches
NEML2Object Class Reference

The base class of all "manufacturable" objects in the NEML2 library. More...

Detailed Description

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>

Inheritance diagram for NEML2Object:

Public Member Functions

 NEML2Object (const OptionSet &options)
 Construct a new NEML2Object object.
 
virtual ~NEML2Object ()=default
 
const OptionSetinput_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.
 
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.
 

Static Public Member Functions

static OptionSet expected_options ()
 

Constructor & Destructor Documentation

◆ NEML2Object()

NEML2Object ( const OptionSet & options)

Construct a new NEML2Object object.

Parameters
optionsThe set of options extracted from the input file

◆ ~NEML2Object()

virtual ~NEML2Object ( )
virtualdefault

Member Function Documentation

◆ doc()

const std::string & doc ( ) const
inline

A readonly reference to the object's docstring.

◆ expected_options()

OptionSet expected_options ( )
static

◆ host() [1/2]

template<typename T >
T * host ( )

Get a writable pointer to the host.

◆ host() [2/2]

template<typename T >
const T * host ( ) const

Get a readonly pointer to the host.

◆ input_options()

const OptionSet & input_options ( ) const
inline

◆ name()

const std::string & name ( ) const
inline

A readonly reference to the object's name.

◆ path()

const std::string & path ( ) const
inline

A readonly reference to the object's path.

◆ setup()

virtual void setup ( )
inlinevirtual

Setup this object.

This method is called automatically if you use the Factory method get_object or get_object_ptr, 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.

◆ type()

const std::string & type ( ) const
inline

A readonly reference to the object's type.