GEOSX
|
#include <Wrapper.hpp>
Public Types | |
using | TYPE = T |
Alias for the wrapped type T . | |
Public Member Functions | |
virtual HistoryMetadata | getHistoryMetadata (localIndex const packCount=-1) const override final |
Get a description of the wrapped data for time history collection/output. More... | |
void const * | voidPointer () const override |
virtual localIndex | elementByteSize () const override |
Constructors, destructor, copy/move assignment | |
Wrapper (std::string const &name, Group *const parent) | |
Constructor that creates a new instance of wrapped type. More... | |
Wrapper (std::string const &name, Group *const parent, std::unique_ptr< T > object) | |
Constructor that takes ownership of an existing object. More... | |
Wrapper (std::string const &name, Group *const parent, T *object) | |
Constructor that does not take ownership of an existing object. More... | |
virtual | ~Wrapper () noexcept override |
Default destructor. More... | |
Wrapper & | operator= (Wrapper const &source) |
Copy Assignment Operator. More... | |
Wrapper & | operator= (Wrapper &&source) |
Move Assignment Operator. More... | |
Miscellaneous | |
virtual std::unique_ptr< WrapperBase > | clone (string const &name, Group *const parent) override |
Creates a clone of *this WrapperBase. More... | |
virtual void | copyWrapper (WrapperBase const &source) override |
Copies the contents of a Wrapper into *this. More... | |
virtual void | copyWrapperAttributes (WrapperBase const &source) override |
Copy attributes from another wrapper. More... | |
virtual const std::type_info & | get_typeid () const noexcept override |
Get the typeid of T. More... | |
Packing/unpacking methods. | |
virtual bool | isPackable (bool onDevice) const override |
Check whether wrapped type is can be packed into a buffer on host or device. More... | |
virtual localIndex | Pack (buffer_unit_type *&buffer, bool withMetadata, bool onDevice) const override final |
Pack the entire wrapped object into a buffer. More... | |
virtual localIndex | PackByIndex (buffer_unit_type *&buffer, arrayView1d< localIndex const > const &packList, bool withMetadata, bool onDevice) const override final |
For indexable types, pack selected indices of wrapped object into a buffer. More... | |
virtual localIndex | PackSize (bool withMetadata, bool onDevice) const override final |
Get the buffer size needed to pack the entire wrapped object. More... | |
virtual localIndex | PackByIndexSize (arrayView1d< localIndex const > const &packList, bool withMetadata, bool onDevice) const override final |
Get the buffer size needed to pack the selected indices wrapped object. More... | |
virtual localIndex | Unpack (buffer_unit_type const *&buffer, bool withMetadata, bool onDevice) override final |
Unpack the entire wrapped object from a buffer. More... | |
virtual localIndex | UnpackByIndex (buffer_unit_type const *&buffer, arrayView1d< localIndex const > const &unpackIndices, bool withMetadata, bool onDevice) override final |
For indexable types, unpack selected indices of wrapped object from a buffer. More... | |
Methods that delegate to the wrapped type | |
These functions will call the corresponding method on the wrapped object, if such method is declared in wrapped type. | |
virtual localIndex | size () const override |
Calls T::size() More... | |
virtual void | resize (int ndims, localIndex const *const dims) override |
Calls T::resize( num_dims, dims ) More... | |
virtual void | reserve (localIndex const newCapacity) override |
Calls T::reserve( newCapacity ) if it exists, otherwise a no-op. More... | |
virtual localIndex | capacity () const override |
virtual void | resize (localIndex const newSize) override |
Calls T::resize(newsize) if it exists. More... | |
virtual void | copy (localIndex const sourceIndex, localIndex const destIndex) override |
Calls T::copy(sourceIndex, destIndex) More... | |
virtual void | copyData (WrapperBase const &source) override |
Copy the the data contained in another wrapper into this wrapper. More... | |
virtual void | move (LvArray::MemorySpace const space, bool const touch) const override |
Calls T::move(space, touch) More... | |
virtual string | typeRegex () const override |
Calls TypeRegex< T >::get(). More... | |
Methods for wrapped value data access | |
T & | reference () |
Accessor for m_data. More... | |
GEOSX_DECLTYPE_AUTO_RETURN | reference () const |
const Accessor for m_data More... | |
template<typename _T = T, typename = std::enable_if_t< traits::HasMemberFunction_toView< _T > >> | |
GEOSX_DECLTYPE_AUTO_RETURN | referenceAsView () |
Provide access to wrapped object converted to a view, if possible. More... | |
template<typename _T = T, typename = std::enable_if_t< !traits::HasMemberFunction_toView< _T > >> | |
T & | referenceAsView () |
Provide access to wrapped object converted to a view, if possible. More... | |
template<typename _T = T, typename = std::enable_if_t< traits::HasMemberFunction_toView< _T > >> | |
GEOSX_DECLTYPE_AUTO_RETURN | referenceAsView () const |
Provide access to wrapped object converted to a view, if possible. More... | |
template<typename _T = T, typename = std::enable_if_t< !traits::HasMemberFunction_toView< _T > >> | |
T const & | referenceAsView () const |
Provide access to wrapped object converted to a view, if possible. More... | |
Methods to manipulate default value for wrapped object | |
virtual bool | hasDefaultValue () const final override |
Return true iff this wrapper has a valid default value. More... | |
template<typename U = T> | |
DefaultValue< T > const & | getDefaultValueStruct () const |
Accessor for m_default. More... | |
template<typename U = T> | |
std::enable_if< DefaultValue< U >::has_default_value, typename DefaultValue< U >::value_type const &>::type | getDefaultValue () const |
Accessor for default value. More... | |
template<typename U = T> | |
std::enable_if< DefaultValue< U >::has_default_value, Wrapper< T > *>::type | setDefaultValue (typename DefaultValue< U >::value_type const &defaultVal) |
Setter for default value. More... | |
template<typename U = T> | |
std::enable_if< !traits::is_array< U > &&DefaultValue< U >::has_default_value, Wrapper< T > *>::type | setApplyDefaultValue (typename DefaultValue< U >::value_type const &defaultVal) |
Set and apply for default value. More... | |
template<typename U = T> | |
std::enable_if< traits::is_array< U > &&DefaultValue< U >::has_default_value, Wrapper< T > *>::type | setApplyDefaultValue (typename DefaultValue< U >::value_type const &defaultVal) |
Set and apply for default value. More... | |
virtual std::string | getDefaultValueString () const override |
Return a string representing the default value. More... | |
virtual bool | processInputFile (xmlWrapper::xmlNode const &targetNode) override |
Initialize the wrapper from the input xml node. More... | |
void | setName () |
DO_NOT_DOCUMENT. More... | |
void | addBlueprintField (conduit::Node &fields, std::string const &name, std::string const &topology, std::vector< std::string > const &componentNames={}) const override |
Push the data in the wrapper into a Conduit blueprint field. More... | |
void | populateMCArray (conduit::Node &node, std::vector< std::string > const &componentNames={}) const override |
Push the data in the wrapper into a Conduit Blueprint mcarray. More... | |
std::unique_ptr< WrapperBase > | averageOverSecondDim (std::string const &name, Group &group) const override |
Create a new Wrapper with values averaged over the second dimension. More... | |
void | registerToWrite () const override |
Register the wrapper's data for writing with Conduit. | |
void | finishWriting () const override |
Write the wrapped data into Conduit. | |
bool | loadFromConduit () override |
Read the wrapped data from Conduit. More... | |
Overridden setters | |
Setters that replace (hide) corresponding non-virtual functions in WrapperBase with the goal of returning Wrapper<T> pointers rather than WrapperBase pointers. | |
Wrapper< T > * | setSizedFromParent (int val) |
Set whether this wrapper is resized when its parent is resized. More... | |
Wrapper< T > * | setRestartFlags (RestartFlags flags) |
Set the RestartFlags of the wrapper. More... | |
Wrapper< T > * | setPlotLevel (PlotLevel const flag) |
Set the PlotLevel of the wrapper. More... | |
Wrapper< T > * | setInputFlag (InputFlags const input) |
Set the InputFlag of the wrapper. More... | |
Wrapper< T > * | setDescription (string const &description) |
Set the description string of the wrapper. More... | |
Wrapper< T > * | setRegisteringObjects (string const &objectName) |
Add a new name to the list of groups that register this wrapper. More... | |
Public Member Functions inherited from geosx::dataRepository::WrapperBase | |
WrapperBase (string const &name, Group *const parent) | |
Constructor. More... | |
virtual | ~WrapperBase () |
Default destructor. | |
void | resize () |
Calls resize(newsize) where newsize is taken from the parent Group. | |
int | sizedFromParent () const |
Check whether this wrapper is resized when its parent is resized. More... | |
WrapperBase * | setSizedFromParent (int val) |
Set whether this wrapper is resized when its parent is resized. More... | |
RestartFlags | getRestartFlags () const |
Get the RestartFlags of the wrapper. More... | |
WrapperBase * | setRestartFlags (RestartFlags flags) |
Set the RestartFlags of the wrapper. More... | |
PlotLevel | getPlotLevel () const |
Get PlotLevel for this wrapper. More... | |
WrapperBase * | setPlotLevel (PlotLevel const flag) |
Set the PlotLevel of the wrapper. More... | |
string const & | getName () const |
Get name of the wrapper. More... | |
WrapperBase * | setInputFlag (InputFlags const input) |
Set the InputFlag of the wrapper. More... | |
InputFlags | getInputFlag () const |
Get the InputFlag of the wrapper. More... | |
WrapperBase * | setDescription (string const &description) |
Set the description string of the wrapper. More... | |
string const & | getDescription () const |
Get the description string of the wrapper. More... | |
string | dumpInputOptions (bool const outputHeader) const |
std::set< string > const & | getRegisteringObjects () const |
Get the list of names of groups that registered this wrapper. More... | |
WrapperBase * | setRegisteringObjects (string const &objectName) |
Add a new name to the list of groups that register this wrapper. More... | |
Static Public Member Functions | |
Type-casting static functions | |
static Wrapper< T > * | cast (WrapperBase *const base) |
Static function to cast a Wrapper base to a derived Wrapper<T> More... | |
static Wrapper< T > const * | cast (WrapperBase const *const base) |
Static function to cast a Wrapper base to a derived Wrapper<T> More... | |
static Wrapper< T > & | cast (WrapperBase &base) |
Static function to cast a Wrapper base to a derived Wrapper<T> More... | |
static Wrapper< T > const & | cast (WrapperBase const &base) |
Additional Inherited Members | |
Protected Attributes inherited from geosx::dataRepository::WrapperBase | |
string | m_name |
Name of the object that is being wrapped. | |
Group * | m_parent |
Pointer to Group that holds this WrapperBase. | |
int | m_sizedFromParent |
Integer to indicate whether or not this wrapped object should be resized when m_parent is resized. | |
RestartFlags | m_restart_flags |
Flag to determine the restart behavior for this wrapped object. | |
PlotLevel | m_plotLevel |
Flag to store the plotLevel. | |
InputFlags | m_inputFlag |
Flag to store if this wrapped object should be read from input. | |
string | m_description |
A string description of the wrapped object. | |
std::set< string > | m_registeringObjects |
A vector of the names of the objects that created this Wrapper. | |
conduit::Node & | m_conduitNode |
A reference to the corresponding conduit::Node. | |
Templated class to serve as a wrapper to arbitrary objects.
T | is any type that is to be wrapped by Wrapper |
Definition at line 56 of file Wrapper.hpp.
|
inlineexplicit |
Constructor that creates a new instance of wrapped type.
name | name of the object |
parent | parent group which owns the Wrapper |
Definition at line 75 of file Wrapper.hpp.
|
inlineexplicit |
Constructor that takes ownership of an existing object.
name | name of the object |
parent | parent group that owns the Wrapper |
object | object that is being wrapped by the Wrapper |
Definition at line 96 of file Wrapper.hpp.
|
inlineexplicit |
Constructor that does not take ownership of an existing object.
name | name of the object |
parent | parent group that owns the Wrapper |
object | object that is being wrapped by the Wrapper |
Definition at line 118 of file Wrapper.hpp.
|
inlineoverridevirtualnoexcept |
Default destructor.
Deletes wrapped object if the wrapper is owning
Definition at line 139 of file Wrapper.hpp.
|
inlineoverridevirtual |
Push the data in the wrapper into a Conduit blueprint field.
fields | The Conduit Node containg the blueprint fields. |
name | The name of the field. |
topology | The topology associated with the field. |
componentNames | The name of the components, if not specified they are auto generated. |
Implements geosx::dataRepository::WrapperBase.
Definition at line 792 of file Wrapper.hpp.
|
inlineoverridevirtual |
Create a new Wrapper with values averaged over the second dimension.
name | The name to give the new wrapper. |
group | The group to hang the new Wrapper from. |
group
. Implements geosx::dataRepository::WrapperBase.
Definition at line 803 of file Wrapper.hpp.
|
inlineoverridevirtual |
Implements geosx::dataRepository::WrapperBase.
Definition at line 503 of file Wrapper.hpp.
|
inlinestatic |
Static function to cast a Wrapper base to a derived Wrapper<T>
base |
Definition at line 228 of file Wrapper.hpp.
|
inlinestatic |
Static function to cast a Wrapper base to a derived Wrapper<T>
base |
Definition at line 239 of file Wrapper.hpp.
|
inlinestatic |
Static function to cast a Wrapper base to a derived Wrapper<T>
base |
Definition at line 250 of file Wrapper.hpp.
|
inlinestatic |
Static function to cast a Wrapper base to a derived Wrapper<T>
base |
Definition at line 260 of file Wrapper.hpp.
|
inlineoverridevirtual |
Creates a clone of *this
WrapperBase.
[in] | name | name of the clone |
[in] | parent | parent Group that will hold this clone |
The overridden function will create a copy of the derived Wrapper<T> the using the provided values of name and parent to differentiate itself from the source.
Implements geosx::dataRepository::WrapperBase.
Definition at line 179 of file Wrapper.hpp.
|
inlineoverridevirtual |
Calls T::copy(sourceIndex, destIndex)
[in] | sourceIndex | index to copy from |
[in] | destIndex | index to copy to |
Implements geosx::dataRepository::WrapperBase.
Definition at line 552 of file Wrapper.hpp.
|
inlineoverridevirtual |
Copy the the data contained in another wrapper into this wrapper.
source | The wrapper that holds the data to copy. |
Implements geosx::dataRepository::WrapperBase.
Definition at line 562 of file Wrapper.hpp.
|
inlineoverridevirtual |
Copies the contents of a Wrapper into *this.
[in] | source | The wrapper to copy |
Implements geosx::dataRepository::WrapperBase.
Definition at line 189 of file Wrapper.hpp.
|
inlineoverridevirtual |
Copy attributes from another wrapper.
[in] | source | the source wrapper, must wrap the same type T |
Reimplemented from geosx::dataRepository::WrapperBase.
Definition at line 201 of file Wrapper.hpp.
|
inlineoverridevirtual |
Implements geosx::dataRepository::WrapperBase.
Definition at line 473 of file Wrapper.hpp.
|
inlineoverridevirtualnoexcept |
Get the typeid of T.
Implements geosx::dataRepository::WrapperBase.
Definition at line 210 of file Wrapper.hpp.
|
inline |
|
inlineoverridevirtual |
Return a string representing the default value.
Implements geosx::dataRepository::WrapperBase.
Definition at line 714 of file Wrapper.hpp.
|
inline |
Accessor for m_default.
Definition at line 653 of file Wrapper.hpp.
|
inlinefinaloverridevirtual |
Get a description of the wrapped data for time history collection/output.
packCount | The number of indices from the wrapped data to collect, |
Implements geosx::dataRepository::WrapperBase.
Definition at line 269 of file Wrapper.hpp.
|
inlinefinaloverridevirtual |
Return true iff this wrapper has a valid default value.
Implements geosx::dataRepository::WrapperBase.
Definition at line 642 of file Wrapper.hpp.
|
inlineoverridevirtual |
Check whether wrapped type is can be packed into a buffer on host or device.
[in] | onDevice | determine whether the wrapper is packable on host vs device |
true
if T
is packable, false
otherwise Implements geosx::dataRepository::WrapperBase.
Definition at line 282 of file Wrapper.hpp.
|
inlineoverridevirtual |
Read the wrapped data from Conduit.
Implements geosx::dataRepository::WrapperBase.
Definition at line 836 of file Wrapper.hpp.
|
inlineoverridevirtual |
Calls T::move(space, touch)
[in] | space | A CHAI execution space to move the data into |
[in] | touch | whether to register a touch in target space |
Implements geosx::dataRepository::WrapperBase.
Definition at line 570 of file Wrapper.hpp.
|
inline |
Copy Assignment Operator.
source | rhs |
*this
Definition at line 154 of file Wrapper.hpp.
|
inline |
Move Assignment Operator.
source |
Definition at line 165 of file Wrapper.hpp.
|
inlinefinaloverridevirtual |
Pack the entire wrapped object into a buffer.
[in,out] | buffer | the binary buffer pointer, advanced upon completion |
[in] | withMetadata | whether to pack string metadata with the underlying data |
[in] | onDevice | whether to use device-based packing functions (buffer must be either pinned or a device pointer) |
buffer_unit_type
units packed Implements geosx::dataRepository::WrapperBase.
Definition at line 298 of file Wrapper.hpp.
|
inlinefinaloverridevirtual |
For indexable types, pack selected indices of wrapped object into a buffer.
[in,out] | buffer | the binary buffer pointer, advanced upon completion |
[in] | packList | the list of indices to pack |
[in] | withMetadata | whether to pack string metadata with the underlying data |
[in] | onDevice | whether to use device-based packing functions (buffer must be either pinned or a device pointer) |
buffer_unit_type
units packed Implements geosx::dataRepository::WrapperBase.
Definition at line 323 of file Wrapper.hpp.
|
inlinefinaloverridevirtual |
Get the buffer size needed to pack the selected indices wrapped object.
[in] | packList | the list of indices to pack |
[in] | withMetadata | whether to pack string metadata with the underlying data |
[in] | onDevice | whether to use device-based packing functions (buffer must be either pinned or a device pointer) |
buffer_unit_type
units needed to pack Implements geosx::dataRepository::WrapperBase.
Definition at line 377 of file Wrapper.hpp.
|
inlinefinaloverridevirtual |
Get the buffer size needed to pack the entire wrapped object.
[in] | withMetadata | whether to pack string metadata with the underlying data |
[in] | onDevice | whether to use device-based packing functions this matters as the size on device differs from the size on host as we pack less metadata on device |
buffer_unit_type
units needed to pack Implements geosx::dataRepository::WrapperBase.
Definition at line 351 of file Wrapper.hpp.
|
inlineoverridevirtual |
Push the data in the wrapper into a Conduit Blueprint mcarray.
node | The Conduit Node to put the data into. |
componentNames | The names of the components, if not specified they are auto generated. |
Implements geosx::dataRepository::WrapperBase.
Definition at line 799 of file Wrapper.hpp.
|
inlineoverridevirtual |
Initialize the wrapper from the input xml node.
targetNode | the xml node to initialize from. |
Implements geosx::dataRepository::WrapperBase.
Definition at line 750 of file Wrapper.hpp.
|
inline |
|
inline |
const Accessor for m_data
Definition at line 596 of file Wrapper.hpp.
|
inline |
Provide access to wrapped object converted to a view, if possible.
U | dummy template parameter to enable SFINAE (do not change) |
This is used mainly for LvArray
classes (arrays, etc.) that can convert themselves into views. For other types, a regular reference is returned.
Definition at line 608 of file Wrapper.hpp.
|
inline |
Provide access to wrapped object converted to a view, if possible.
U | dummy template parameter to enable SFINAE (do not change) |
This is used mainly for LvArray
classes (arrays, etc.) that can convert themselves into views. For other types, a regular reference is returned.
Definition at line 615 of file Wrapper.hpp.
|
inline |
Provide access to wrapped object converted to a view, if possible.
U | dummy template parameter to enable SFINAE (do not change) |
This is used mainly for LvArray
classes (arrays, etc.) that can convert themselves into views. For other types, a regular reference is returned.
Definition at line 622 of file Wrapper.hpp.
|
inline |
Provide access to wrapped object converted to a view, if possible.
U | dummy template parameter to enable SFINAE (do not change) |
This is used mainly for LvArray
classes (arrays, etc.) that can convert themselves into views. For other types, a regular reference is returned.
Definition at line 629 of file Wrapper.hpp.
|
inlineoverridevirtual |
Calls T::reserve( newCapacity ) if it exists, otherwise a no-op.
[in] | newCapacity | the new capacity of the T. |
Implements geosx::dataRepository::WrapperBase.
Definition at line 496 of file Wrapper.hpp.
|
inlineoverridevirtual |
Calls T::resize( num_dims, dims )
[in] | num_dims | number of dimensions in T |
[in] | dims | pointer to the new dims |
Implements geosx::dataRepository::WrapperBase.
Definition at line 489 of file Wrapper.hpp.
|
inlineoverridevirtual |
Calls T::resize(newsize) if it exists.
[in] | newsize | parameter to pass to T::resize(newsize) |
Implements geosx::dataRepository::WrapperBase.
Definition at line 510 of file Wrapper.hpp.
|
inline |
Set and apply for default value.
defaultVal | the new default value |
Definition at line 690 of file Wrapper.hpp.
|
inline |
Set and apply for default value.
defaultVal | the new default value |
Definition at line 704 of file Wrapper.hpp.
|
inline |
Setter for default value.
defaultVal | the new default value |
Definition at line 677 of file Wrapper.hpp.
|
inline |
Set the description string of the wrapper.
description | the description |
Definition at line 905 of file Wrapper.hpp.
|
inline |
Set the InputFlag of the wrapper.
input | the new InputFlags value |
Definition at line 896 of file Wrapper.hpp.
|
inline |
DO_NOT_DOCUMENT.
Associate the path to this wrapper with the object being held.
Definition at line 787 of file Wrapper.hpp.
|
inline |
Set the PlotLevel of the wrapper.
flag | the new PlotLevel value |
Definition at line 887 of file Wrapper.hpp.
|
inline |
Add a new name to the list of groups that register this wrapper.
objectName | name of the registering object |
Definition at line 914 of file Wrapper.hpp.
|
inline |
Set the RestartFlags of the wrapper.
flags | the new RestartFlags value |
Definition at line 878 of file Wrapper.hpp.
|
inline |
Set whether this wrapper is resized when its parent is resized.
val | an int that is converted into a bool |
Definition at line 869 of file Wrapper.hpp.
|
inlineoverridevirtual |
Calls T::size()
Implements geosx::dataRepository::WrapperBase.
Definition at line 485 of file Wrapper.hpp.
|
inlineoverridevirtual |
Calls TypeRegex< T >::get().
Implements geosx::dataRepository::WrapperBase.
Definition at line 574 of file Wrapper.hpp.
|
inlinefinaloverridevirtual |
Unpack the entire wrapped object from a buffer.
[in,out] | buffer | the binary buffer pointer, advanced upon completion |
[in] | withMetadata | whether to expect string metadata with the underlying data |
[in] | onDevice | whether to use device-based packing functions (buffer must be either pinned or a device pointer) |
buffer_unit_type
units unpacked Implements geosx::dataRepository::WrapperBase.
Definition at line 406 of file Wrapper.hpp.
|
inlinefinaloverridevirtual |
For indexable types, unpack selected indices of wrapped object from a buffer.
[in,out] | buffer | the binary buffer pointer, advanced upon completion |
[in] | unpackIndices | the list of indices to pack |
[in] | withMetadata | whether to include metadata in the packing |
[in] | onDevice | whether to use device-based packing functions (buffer must be either pinned or a device pointer) |
buffer_unit_type
units unpacked Implements geosx::dataRepository::WrapperBase.
Definition at line 436 of file Wrapper.hpp.
|
inlineoverridevirtual |
Implements geosx::dataRepository::WrapperBase.
Definition at line 469 of file Wrapper.hpp.