NEML2 2.1.0
Loading...
Searching...
No Matches

#include <Data.h>

Inheritance diagram for Data:

Public Member Functions

 Data (const OptionSet &options)
 Construct a new Data object.
const std::vector< std::shared_ptr< Data > > & registered_data () const
 All the registered data objects.
Public Member Functions inherited from NEML2Object
 NEML2Object ()=delete
 NEML2Object (NEML2Object &&)=delete
 NEML2Object (const NEML2Object &)=delete
NEML2Objectoperator= (NEML2Object &&)=delete
NEML2Objectoperator= (const NEML2Object &)=delete
virtual ~NEML2Object ()=default
 NEML2Object (const OptionSet &options)
 Construct a new NEML2Object object.
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.
Factoryfactory () const
 Get the factory that created this object.
const Settingssettings () 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 &section, 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.
Public Member Functions inherited from BufferStore
 BufferStore (NEML2Object *object)
 BufferStore (const BufferStore &)=delete
 BufferStore (BufferStore &&)=delete
BufferStoreoperator= (const BufferStore &)=delete
BufferStoreoperator= (BufferStore &&)=delete
virtual ~BufferStore ()=default
const std::map< std::string, std::unique_ptr< TensorValueBase > > & named_buffers () const
std::map< std::string, std::unique_ptr< TensorValueBase > > & named_buffers ()
const TensorValueBaseget_buffer (const std::string &name) const
 }@
TensorValueBaseget_buffer (const std::string &name)
 Get a writable reference of a buffer.

Static Public Member Functions

static OptionSet expected_options ()
Static Public Member Functions inherited from NEML2Object
static OptionSet expected_options ()

Protected Member Functions

template<typename T, typename = typename std::enable_if_t<std::is_base_of_v<Data, T>>>
T & register_data (const std::string &name)
virtual void send_buffers_to (const TensorOptions &options)
 Send all buffers to options.
template<typename T, typename = typename std::enable_if_t<std::is_base_of_v<TensorBase<T>, T>>>
const T & declare_buffer (const std::string &name, const T &rawval)
 Declare a buffer.
template<typename T, typename = typename std::enable_if_t<std::is_base_of_v<TensorBase<T>, T>>>
const T & declare_buffer (const std::string &name, const TensorName< T > &tensorname)
 Declare a buffer.
template<typename T, typename = typename std::enable_if_t<std::is_base_of_v<TensorBase<T>, T>>>
const T & declare_buffer (const std::string &name, const std::string &input_option_name)
 Declare a buffer.
void assign_buffer_stack (jit::Stack &stack)
 Assign stack to buffers.
jit::Stack collect_buffer_stack () const
 Collect stack from buffers.

Protected Attributes

std::vector< std::shared_ptr< Data > > _registered_data
 Registered Data objects.

Constructor & Destructor Documentation

◆ Data()

Data ( const OptionSet & options)

Construct a new Data object.

Parameters
optionsThe set of options extracted from the input file

Member Function Documentation

◆ expected_options()

OptionSet expected_options ( )
static

◆ register_data()

template<typename T, typename = typename std::enable_if_t<std::is_base_of_v<Data, T>>>
T & register_data ( const std::string & name)
inlineprotected

Register a data object and return its reference

◆ registered_data()

const std::vector< std::shared_ptr< Data > > & registered_data ( ) const
inline

All the registered data objects.

Member Data Documentation

◆ _registered_data

std::vector<std::shared_ptr<Data> > _registered_data
protected

Registered Data objects.