GEOSX
Public Types | List of all members
geosx::dataRepository::Group Class Reference

#include <Group.hpp>

Inheritance diagram for geosx::dataRepository::Group:
Inheritance graph
[legend]

Public Types

using subGroupMap = MappedVector< Group, Group *, keyType, indexType >
 The template specialization of MappedVector to use for the collection of sub-Group objects.
 
using wrapperMap = MappedVector< WrapperBase, WrapperBase *, keyType, indexType >
 The template specialization of MappedVector to use for the collection wrappers objects.
 

Public Member Functions

Constructors/destructor
 Group (std::string const &name, Group *const parent)
 Constructor. More...
 
 Group (Group &&source)
 Move constructor. More...
 
virtual ~Group ()
 Destructor, deletes all Groups and Wrappers owned by this Group.
 
 Group ()=delete
 Deleted default constructor.
 
 Group (Group const &)=delete
 Deleted copy constructor.
 
 Group (Group const &&)=delete
 Deleted move constructor.
 
Groupoperator= (Group const &)=delete
 Deleted copy assignment operator. More...
 
Groupoperator= (Group &&)=delete
 Deleted move assignment operator. More...
 
Miscellaneous
virtual const std::type_info & get_typeid () const
 Get typeid for current group. More...
 
bool CheckTypeID (std::type_info const &typeToCheck) const
 Check a type_info against the type_info of this Group. More...
 
void PrintDataHierarchy (integer indent=0)
 Prints the data hierarchy recursively. More...
 
string dumpInputOptions () const
 
Sub-group registration interface
template<typename T = Group>
T * RegisterGroup (std::string const &name, std::unique_ptr< T > newObject)
 Register a new Group as a sub-group of current Group. More...
 
template<typename T = Group>
T * RegisterGroup (std::string const &name, T *newObject)
 Register a new Group as a sub-group of current Group. More...
 
template<typename T = Group>
T * RegisterGroup (std::string const &name)
 Register a new Group as a sub-group of current Group. More...
 
template<typename T = Group>
T * RegisterGroup (subGroupMap::KeyIndex const &keyIndex)
 Register a new Group as a sub-group of current Group. More...
 
template<typename T = Group, typename TBASE = Group>
T * RegisterGroup (std::string const &name, std::string const &catalogName)
 Register a new Group as a sub-group of current Group. More...
 
void deregisterGroup (std::string const &name)
 Removes a child group from this group. More...
 
virtual GroupCreateChild (string const &childKey, string const &childName)
 Creates a new sub-Group using the ObjectCatalog functionality. More...
 
Sub-group retrieval methods.

This collection of functions are used to get a sub-Group from the current group. Various methods for performing the lookup are provided (localIndex, string, KeyIndex), and each have their advantages and costs. The lowest cost lookup is the "localIndex" lookup. The KeyIndex lookup will add a cost for checking to make sure the index stored in KeyIndex is valid (a string compare, and a hash if it is incorrect). The string lookup is the full cost hash lookup every time that it is called.

The template parameter specifies the "type" that the caller expects to lookup, and thus attempts to cast the pointer that is stored in m_subGroups to a pointer of the desired type. If this cast fails, then a nullptr is returned. If no template parameter is specified then a default type of Group is assumed.

template<typename T = Group>
T * GetGroup (localIndex index)
 Retrieve a sub-group from the current Group using an index. More...
 
template<typename T = Group>
T const * GetGroup (localIndex index) const
 Retrieve a sub-group from the current Group using an index. More...
 
template<typename T = Group>
T * GetGroup (string const &name)
 Retrieve a sub-group from the current Group using a string. More...
 
template<typename T = Group>
T const * GetGroup (string const &name) const
 Retrieve a sub-group from the current Group using a string. More...
 
template<typename T = Group>
T & getGroupReference (string const &key)
 
template<typename T = Group>
T const & getGroupReference (string const &key) const
 
template<typename T = Group>
T & GetGroupReference (subGroupMap::KeyIndex const &key)
 
template<typename T = Group>
T const & GetGroupReference (subGroupMap::KeyIndex const &key) const
 
template<typename T = Group>
T * GetGroup (subGroupMap::KeyIndex const &key)
 Retrieve a sub-group from the current Group using a KeyIndexT. More...
 
template<typename T = Group>
T const * GetGroup (subGroupMap::KeyIndex const &key) const
 Retrieve a sub-group from the current Group using a KeyIndexT. More...
 
template<typename T = Group>
T * GetGroupByPath (string const &path)
 Retrieve a group from the hierarchy using a path. More...
 
template<typename T = Group>
T const * GetGroupByPath (string const &path) const
 Retrieve a group from the hierarchy using a path. More...
 
subGroupMapGetSubGroups ()
 Get the subgroups object. More...
 
subGroupMap const & GetSubGroups () const
 Get the subgroups object. More...
 
localIndex numSubGroups () const
 return the number of sub groups in this Group More...
 
bool hasGroup (std::string const &name) const
 Check whether a sub-group exists. More...
 
Functor-based subgroup iteration

These functions loop over sub-groups and executes a functor that uses the sub-group as an argument. The functor is only executed if the group can be cast to a certain type specified by the ROUPTYPE/S pack. The variadic list consisting of GROUPTYPE/S will be used recursively to check if the group is able to be cast to the one of these types. The first type in the GROUPTYPE/S list will be used to execute the functor, and the next sub-group will be processed.

template<typename GROUPTYPE = Group, typename ... GROUPTYPES, typename LAMBDA >
void forSubGroups (LAMBDA lambda)
 Apply the given functor to subgroups that can be casted to one of specified types. More...
 
template<typename GROUPTYPE = Group, typename ... GROUPTYPES, typename LAMBDA >
void forSubGroups (LAMBDA lambda) const
 Apply the given functor to subgroups that can be casted to one of specified types. More...
 
template<typename GROUPTYPE = Group, typename ... GROUPTYPES, typename LOOKUP_CONTAINER , typename LAMBDA >
void forSubGroups (LOOKUP_CONTAINER const &subGroupKeys, LAMBDA lambda)
 
template<typename GROUPTYPE = Group, typename ... GROUPTYPES, typename LOOKUP_CONTAINER , typename LAMBDA >
void forSubGroups (LOOKUP_CONTAINER const &subGroupKeys, LAMBDA lambda) const
 
Functor-based wrapper iteration

These functions loop over the wrappers contained in this group, and executes a functor that uses the Wrapper as an argument. The functor is only executed if the Wrapper can be casted to a certain type specified by the TYPE/S pack. The variadic list consisting of TYPE/S will be used recursively to check if the Wrapper is able to be casted to the one of these types. The first type in the WRAPPERTYPE/S list will be used to execute the functor, and the next Wrapper will be processed.

template<typename LAMBDA >
void forWrappers (LAMBDA lambda)
 Apply the given functor to wrappers. More...
 
template<typename LAMBDA >
void forWrappers (LAMBDA lambda) const
 Apply the given functor to wrappers. More...
 
template<typename TYPE , typename ... TYPES, typename LAMBDA >
void forWrappers (LAMBDA lambda)
 Apply the given functor to wrappers that can be cast to one of specified types. More...
 
template<typename TYPE , typename ... TYPES, typename LAMBDA >
void forWrappers (LAMBDA lambda) const
 Apply the given functor to wrappers that can be cast to one of specified types. More...
 
Initialization and data registration
void Initialize (Group *const group)
 Run initialization functions on this and all subgroups. More...
 
virtual void InitializationOrder (string_array &order)
 Sets the initialization order for sub-Groups. More...
 
void InitializePostInitialConditions (Group *const group)
 Initialization routine to be called after calling ApplyInitialConditions(). More...
 
void postRestartInitializationRecursive (Group *const domain)
 Initialization routine to be called after calling reading a restart file. More...
 
void ProcessInputFileRecursive (xmlWrapper::xmlNode &targetNode)
 Recursively read values using ProcessInputFile() from the input file and put them into the wrapped values for this group. More...
 
void PostProcessInputRecursive ()
 Recursively call PostProcessInput() to apply post processing after reading input values.
 
Wrapper registration interface
template<typename T , typename TBASE = T>
Wrapper< TBASE > * registerWrapper (std::string const &name, wrapperMap::KeyIndex::index_type *const rkey=nullptr)
 Create and register a Wrapper around a new object. More...
 
template<typename T , typename TBASE = T>
Wrapper< TBASE > * registerWrapper (Group::wrapperMap::KeyIndex const &viewKey)
 
template<typename T >
Wrapper< T > * registerWrapper (std::string const &name, std::unique_ptr< T > newObject)
 Register a Wrapper around a given object and take ownership. More...
 
template<typename T >
Wrapper< T > * registerWrapper (std::string const &name, T *newObject)
 Register a Wrapper around an existing object, does not take ownership of the object. More...
 
WrapperBaseregisterWrapper (string const &name, std::unique_ptr< WrapperBase > wrapper)
 Register and take ownership of an existing Wrapper. More...
 
void deregisterWrapper (string const &name)
 Removes a Wrapper from this group. More...
 
Schema generation methods
void GenerateDataStructureSkeleton (integer const level)
 Build a complete datastructure for schema generation. More...
 
virtual void ExpandObjectCatalogs ()
 Expand any catalogs in the data structure.
 
virtual void SetSchemaDeviations (xmlWrapper::xmlNode schemaRoot, xmlWrapper::xmlNode schemaParent, integer documentationType)
 Inform the schema generator of any deviations between the xml and GEOS data structures. More...
 
Mesh data registration
virtual void RegisterDataOnMeshRecursive (Group *const meshBodies)
 Calls RegisterDataOnMesh() recursively. More...
 
virtual void RegisterDataOnMesh (Group *const meshBodies)
 Register data on mesh entities. More...
 
Packing/upacking methods
virtual localIndex PackSize (string_array const &wrapperNames, integer const recursive, bool on_device=false) const
 Get the size required to pack a list of wrappers. More...
 
virtual localIndex PackSize (string_array const &wrapperNames, arrayView1d< localIndex const > const &packList, integer const recursive, bool on_device=false) const
 Get the size required to pack a list of indices within a list of wrappers. More...
 
virtual localIndex Pack (buffer_unit_type *&buffer, string_array const &wrapperNames, integer const recursive, bool on_device=false) const
 Pack a list of wrappers to a buffer. More...
 
virtual localIndex Pack (buffer_unit_type *&buffer, string_array const &wrapperNames, arrayView1d< localIndex const > const &packList, integer const recursive, bool on_device=false) const
 Pack a list of indices within a list of wrappers. More...
 
virtual localIndex Unpack (buffer_unit_type const *&buffer, arrayView1d< localIndex > &packList, integer const recursive, bool on_device=false)
 Unpack a buffer. More...
 
Untyped wrapper retrieval methods

These functions query the collection of Wrapper objects for the given index/name/KeyIndex and returns a WrapperBase pointer to the object if it exists. If it is not found, nullptr is returned.

WrapperBase const * getWrapperBase (indexType const index) const
 Retrieve a WrapperBase stored in this group. More...
 
WrapperBasegetWrapperBase (indexType const index)
 Retrieve a WrapperBase stored in this group. More...
 
WrapperBase const * getWrapperBase (std::string const &name) const
 Retrieve a WrapperBase stored in this group. More...
 
WrapperBasegetWrapperBase (std::string const &name)
 Retrieve a WrapperBase stored in this group. More...
 
WrapperBase const * getWrapperBase (wrapperMap::KeyIndex const &keyIndex) const
 Retrieve a WrapperBase stored in this group. More...
 
WrapperBasegetWrapperBase (wrapperMap::KeyIndex const &keyIndex)
 Retrieve a WrapperBase stored in this group. More...
 
indexType getWrapperIndex (std::string const &name) const
 
wrapperMap const & wrappers () const
 Get access to the internal wrapper storage. More...
 
wrapperMapwrappers ()
 Get access to the internal wrapper storage. More...
 
Typed wrapper retrieval methods

These functions query the collection of Wrapper objects for the given index/key and returns a Wrapper<T> pointer to the object if it exists. The template parameter T is used to perform a cast on the WrapperBase pointer that is returned by the lookup, into a Wrapper<T> pointer. If the wrapper is not found, or the WrapperBase pointer cannot be cast to a Wrapper<T> pointer, then nullptr is returned.

template<typename LOOKUP_TYPE >
bool hasWrapper (LOOKUP_TYPE const &lookup) const
 Check if a wrapper exists. More...
 
template<typename T , typename LOOKUP_TYPE >
Wrapper< T > const * getWrapper (LOOKUP_TYPE const &index) const
 Retrieve a Wrapper stored in this group. More...
 
template<typename T , typename LOOKUP_TYPE >
Wrapper< T > * getWrapper (LOOKUP_TYPE const &index)
 Retrieve a Wrapper stored in this group. More...
 
template<typename T >
Wrapper< T > const * getWrapper (char const *const key) const
 Retrieve a Wrapper stored in this group. More...
 
template<typename T >
Wrapper< T > * getWrapper (char const *const key)
 Retrieve a Wrapper stored in this group. More...
 
Wrapper data access methods.

These functions can be used to get referece/pointer access to the data stored by wrappers in this group. They are essentially just shortcuts for Group::getWrapper() and Wrapper<T>::getReference(). An additional template parameter can be provided to cast the return pointer or reference to a base class pointer or reference (e.g. Array to ArrayView).

template<typename T , typename LOOKUP_TYPE >
GEOSX_DECLTYPE_AUTO_RETURN getReference (LOOKUP_TYPE const &lookup) const
 Look up a wrapper and get reference to wrapped object. More...
 
template<typename T , typename LOOKUP_TYPE >
T & getReference (LOOKUP_TYPE const &lookup)
 Look up a wrapper and get reference to wrapped object. More...
 
template<typename T >
GEOSX_DECLTYPE_AUTO_RETURN getReference (char const *const name) const
 
template<typename T >
T & getReference (char const *const name)
 
Size/capacity management
virtual void resize (localIndex const newSize)
 Resize the group and all contained wrappers that resize with parent. More...
 
virtual void reserve (indexType const newsize)
 Set the new capacity and reserve it in all wrappers that resize with parent. More...
 
localIndex capacity () const
 Get the "capacity" of the group, which determines the capacity of resizable wrappers. More...
 
localIndex size () const
 Get the "size" of the group, which determines the number of elements in resizable wrappers. More...
 
Basic group properties
const string getName () const
 Get group name. More...
 
GroupgetParent ()
 Access the group's parent. More...
 
Group const * getParent () const
 Access the group's parent. More...
 
localIndex getIndexInParent () const
 Get the group's index withing its parent group. More...
 
integer sizedFromParent () const
 Check whether this Group is resized when its parent is resized. More...
 
GroupsetSizedFromParent (int val)
 Set whether this wrapper is resized when its parent is resized. More...
 
RestartFlags getRestartFlags () const
 Get flags that control restart output of this group. More...
 
void setRestartFlags (RestartFlags flags)
 Set flags that control restart output of this group. More...
 
InputFlags getInputFlags () const
 Get input flags for schema generation. More...
 
void setInputFlags (InputFlags flags)
 Set input flags for schema generation. More...
 
Restart output methods
conduit::Node & getConduitNode ()
 Get the Conduit node object associated with this group. More...
 
void prepareToWrite ()
 Register the group and its wrappers with Conduit.
 
void finishWriting ()
 Write the group and its wrappers into Conduit.
 
void loadFromConduit ()
 Read the group and its wrappers from Conduit.
 
void enableLogLevelInput ()
 Enable verbosity input for object.
 
integer getLogLevel () const
 

Static Public Member Functions

Functor application helpers

This function is useful when trying to apply a functor that passes a pointer to an container, but it is desired that the functor is only executed if the container can be casted to a certain type. The variadic list consisting of CASTTYPE/S will be used recursively to check if the container is able to be casted to the one of these types. The first type in the CASTTYPE/S list will be used to execute the functor, and the function will return true.

template<typename T0 , typename T1 , typename ... CASTTYPES, typename CONTAINERTYPE , typename LAMBDA >
static bool applyLambdaToContainer (CONTAINERTYPE &container, LAMBDA &&lambda)
 Apply a given functor to a container if the container can be cast to one of the specified types. More...
 

Protected Member Functions

Overridable initialization hooks

These methods can be overridden by derived classes to customize input post processing and object initialization.

virtual void PostProcessInput ()
 
virtual void InitializePreSubGroups (Group *const group)
 Called by Initialize() prior to initializing sub-Groups. More...
 
virtual void InitializePostSubGroups (Group *const group)
 Called by Initialize() after to initializing sub-Groups. More...
 
virtual void InitializePostInitialConditions_PreSubGroups (Group *const group)
 Called by InitializePostInitialConditions() prior to initializing sub-Groups. More...
 
virtual void InitializePostInitialConditions_PostSubGroups (Group *const group)
 Called by InitializePostInitialConditions() after to initializing sub-Groups. More...
 
virtual void postRestartInitialization (Group *const domain)
 Performs initialization required after reading from a restart file. More...
 

Static Factory Catalog Functions

using CatalogInterface = dataRepository::CatalogInterface< Group, std::string const &, Group *const >
 Type alias for catalog interface used by this class. See CatalogInterface.
 
static CatalogInterface::CatalogTypeGetCatalog ()
 Get the singleton catalog for this class. More...
 

Group type-casting methods

template<typename T >
group_cast ()
 Downcast this Group. More...
 
template<typename T >
group_cast () const
 Downcast this Group. More...
 
template<typename T >
static T group_cast (Group *group)
 Downcast a Group *. More...
 
template<typename T >
static T group_cast (Group const *group)
 Downcast a Group const *. More...
 

Detailed Description

The Group class serves as a "node" in a hierarchy of the dataRepository. The data structure is built as a hierarchy of Group objects, or objects derived from group objects.

Definition at line 70 of file Group.hpp.

Constructor & Destructor Documentation

◆ Group() [1/2]

geosx::dataRepository::Group::Group ( std::string const &  name,
Group *const  parent 
)
explicit

Constructor.

Parameters
[in]namethe name of this object manager
[in]parentthe parent Group

◆ Group() [2/2]

geosx::dataRepository::Group::Group ( Group &&  source)

Move constructor.

Parameters
[in]sourcesource Group

Member Function Documentation

◆ applyLambdaToContainer()

template<typename T0 , typename T1 , typename ... CASTTYPES, typename CONTAINERTYPE , typename LAMBDA >
static bool geosx::dataRepository::Group::applyLambdaToContainer ( CONTAINERTYPE &  container,
LAMBDA &&  lambda 
)
inlinestatic

Apply a given functor to a container if the container can be cast to one of the specified types.

Template Parameters
CASTTYPEthe first type that will be used in the attempted casting of container
CASTTYPESa variadic list of types that will be used in the attempted casting of container
CONTAINERTYPEthe type of container
LAMBDAthe type of lambda function to call in the function
Parameters
[in]containera pointer to the container which will be passed to the lambda function
[in]lambdathe lambda function to call in the function
Returns
a boolean to indicate whether the lambda was successfully applied to the container.

Definition at line 557 of file Group.hpp.

◆ capacity()

localIndex geosx::dataRepository::Group::capacity ( ) const
inline

Get the "capacity" of the group, which determines the capacity of resizable wrappers.

Returns
capacity of this group

Definition at line 1292 of file Group.hpp.

◆ CheckTypeID()

bool geosx::dataRepository::Group::CheckTypeID ( std::type_info const &  typeToCheck) const
inline

Check a type_info against the type_info of this Group.

Parameters
typeToCheckvalue to check against
Returns
true of types are the same, false if not

Definition at line 174 of file Group.hpp.

◆ CreateChild()

virtual Group* geosx::dataRepository::Group::CreateChild ( string const &  childKey,
string const &  childName 
)
virtual

Creates a new sub-Group using the ObjectCatalog functionality.

Parameters
[in]childKeyThe name of the new object type's key in the ObjectCatalog.
[in]childNameThe name of the new object in the collection of sub-Groups.
Returns
A pointer to the new Group created by this function.

Reimplemented in geosx::ElementRegionManager, geosx::InternalWellGenerator, geosx::InternalMeshGenerator, geosx::EventBase, geosx::ProblemManager, geosx::PAMELAMeshGenerator, geosx::CellBlockManager, geosx::FunctionManager, geosx::FieldSpecificationManager, geosx::EventManager, geosx::FiniteVolumeManager, geosx::GeometricObjectManager, geosx::NumericalMethodsManager, geosx::MeshManager, geosx::OutputManager, and geosx::TasksManager.

◆ deregisterGroup()

void geosx::dataRepository::Group::deregisterGroup ( std::string const &  name)

Removes a child group from this group.

Parameters
namethe name of the child group to remove from this group.

◆ deregisterWrapper()

void geosx::dataRepository::Group::deregisterWrapper ( string const &  name)

Removes a Wrapper from this group.

Parameters
namethe name of the Wrapper to remove from this group.

◆ dumpInputOptions()

string geosx::dataRepository::Group::dumpInputOptions ( ) const
Returns
a table formatted string containing all input options.

◆ forSubGroups() [1/4]

template<typename GROUPTYPE = Group, typename ... GROUPTYPES, typename LAMBDA >
void geosx::dataRepository::Group::forSubGroups ( LAMBDA  lambda)
inline

Apply the given functor to subgroups that can be casted to one of specified types.

Template Parameters
GROUPTYPEthe first type that will be used in the attempted casting of group.
GROUPTYPESa variadic list of types that will be used in the attempted casting of group.
LAMBDAthe type of functor to call
Parameters
[in]lambdathe functor to call on subgroups

Definition at line 593 of file Group.hpp.

◆ forSubGroups() [2/4]

template<typename GROUPTYPE = Group, typename ... GROUPTYPES, typename LAMBDA >
void geosx::dataRepository::Group::forSubGroups ( LAMBDA  lambda) const
inline

Apply the given functor to subgroups that can be casted to one of specified types.

Template Parameters
GROUPTYPEthe first type that will be used in the attempted casting of group.
GROUPTYPESa variadic list of types that will be used in the attempted casting of group.
LAMBDAthe type of functor to call
Parameters
[in]lambdathe functor to call on subgroups

Definition at line 608 of file Group.hpp.

◆ forSubGroups() [3/4]

template<typename GROUPTYPE = Group, typename ... GROUPTYPES, typename LOOKUP_CONTAINER , typename LAMBDA >
void geosx::dataRepository::Group::forSubGroups ( LOOKUP_CONTAINER const &  subGroupKeys,
LAMBDA  lambda 
)
inline

Apply the given functor to subgroups that can be casted to one of specified types.

Template Parameters
GROUPTYPEthe first type that will be used in the attempted casting of group.
GROUPTYPESa variadic list of types that will be used in the attempted casting of group.
LOOKUP_CONTAINERtype of container of subgroup lookup keys (names or indices), must support range-based for loop
LAMBDAtype of functor callable with an index in lookup container and a reference to casted subgroup
Parameters
[in]subGroupKeyscontainer with subgroup lookup keys (e.g. names or indices) to apply the functor to
[in]lambdathe functor to call

Definition at line 631 of file Group.hpp.

◆ forSubGroups() [4/4]

template<typename GROUPTYPE = Group, typename ... GROUPTYPES, typename LOOKUP_CONTAINER , typename LAMBDA >
void geosx::dataRepository::Group::forSubGroups ( LOOKUP_CONTAINER const &  subGroupKeys,
LAMBDA  lambda 
) const
inline

Apply the given functor to subgroups that can be casted to one of specified types.

Template Parameters
GROUPTYPEthe first type that will be used in the attempted casting of group.
GROUPTYPESa variadic list of types that will be used in the attempted casting of group.
LOOKUP_CONTAINERtype of container of subgroup lookup keys (names or indices), must support range-based for loop
LAMBDAtype of functor callable with an index in lookup container and a reference to casted subgroup
Parameters
[in]subGroupKeyscontainer with subgroup lookup keys (e.g. names or indices) to apply the functor to
[in]lambdathe functor to call

Definition at line 656 of file Group.hpp.

◆ forWrappers() [1/4]

template<typename LAMBDA >
void geosx::dataRepository::Group::forWrappers ( LAMBDA  lambda)
inline

Apply the given functor to wrappers.

Template Parameters
LAMBDAthe type of functor to call
Parameters
[in]lambdathe functor to call

Definition at line 688 of file Group.hpp.

◆ forWrappers() [2/4]

template<typename LAMBDA >
void geosx::dataRepository::Group::forWrappers ( LAMBDA  lambda) const
inline

Apply the given functor to wrappers.

Template Parameters
LAMBDAthe type of functor to call
Parameters
[in]lambdathe functor to call

Definition at line 700 of file Group.hpp.

◆ forWrappers() [3/4]

template<typename TYPE , typename ... TYPES, typename LAMBDA >
void geosx::dataRepository::Group::forWrappers ( LAMBDA  lambda)
inline

Apply the given functor to wrappers that can be cast to one of specified types.

Template Parameters
TYPEthe first type that will be used in the attempted casting of Wrapper
TYPESa variadic list of types that will be used in the attempted casting of Wrapper
LAMBDAthe type of functor to call
Parameters
[in]lambdathe functor to call

Definition at line 716 of file Group.hpp.

◆ forWrappers() [4/4]

template<typename TYPE , typename ... TYPES, typename LAMBDA >
void geosx::dataRepository::Group::forWrappers ( LAMBDA  lambda) const
inline

Apply the given functor to wrappers that can be cast to one of specified types.

Template Parameters
TYPEthe first type that will be used in the attempted casting of Wrapper
TYPESa variadic list of types that will be used in the attempted casting of Wrapper
LAMBDAthe type of functor to call
Parameters
[in]lambdathe functor to call

Definition at line 733 of file Group.hpp.

◆ GenerateDataStructureSkeleton()

void geosx::dataRepository::Group::GenerateDataStructureSkeleton ( integer const  level)
inline

Build a complete datastructure for schema generation.

Parameters
levelindent level for printing out the structure

Definition at line 896 of file Group.hpp.

◆ get_typeid()

virtual const std::type_info& geosx::dataRepository::Group::get_typeid ( ) const
inlinevirtual

Get typeid for current group.

Returns
typeid(*this)

Definition at line 164 of file Group.hpp.

◆ GetCatalog()

static CatalogInterface::CatalogType& geosx::dataRepository::Group::GetCatalog ( )
static

Get the singleton catalog for this class.

Returns
reference to the catalog object

◆ getConduitNode()

conduit::Node& geosx::dataRepository::Group::getConduitNode ( )
inline

Get the Conduit node object associated with this group.

Returns
reference to inner conduit::Node member

Definition at line 1396 of file Group.hpp.

◆ GetGroup() [1/6]

template<typename T = Group>
T* geosx::dataRepository::Group::GetGroup ( localIndex  index)
inline

Retrieve a sub-group from the current Group using an index.

Template Parameters
Ttype of subgroup
Parameters
[in]indexthe integral index of the group to retrieve.
Returns
A pointer to T that refers to the sub-group

Definition at line 374 of file Group.hpp.

◆ GetGroup() [2/6]

template<typename T = Group>
T const* geosx::dataRepository::Group::GetGroup ( localIndex  index) const
inline

Retrieve a sub-group from the current Group using an index.

Template Parameters
Ttype of subgroup
Parameters
[in]indexthe integral index of the group to retrieve.
Returns
A pointer to T that refers to the sub-group

Definition at line 383 of file Group.hpp.

◆ GetGroup() [3/6]

template<typename T = Group>
T* geosx::dataRepository::Group::GetGroup ( string const &  name)
inline

Retrieve a sub-group from the current Group using a string.

Template Parameters
Ttype of subgroup
Parameters
[in]namethe name/key of the group lookup and retrieve.
Returns
A pointer to T that refers to the sub-group

Definition at line 395 of file Group.hpp.

◆ GetGroup() [4/6]

template<typename T = Group>
T const* geosx::dataRepository::Group::GetGroup ( string const &  name) const
inline

Retrieve a sub-group from the current Group using a string.

Template Parameters
Ttype of subgroup
Parameters
[in]namethe name/key of the group lookup and retrieve.
Returns
A pointer to T that refers to the sub-group

Definition at line 404 of file Group.hpp.

◆ GetGroup() [5/6]

template<typename T = Group>
T* geosx::dataRepository::Group::GetGroup ( subGroupMap::KeyIndex const &  key)
inline

Retrieve a sub-group from the current Group using a KeyIndexT.

Template Parameters
Ttype of subgroup
Parameters
[in]keythe KeyIndex to use for the lookup
Returns
A pointer to T that refers to the sub-group

Definition at line 445 of file Group.hpp.

◆ GetGroup() [6/6]

template<typename T = Group>
T const* geosx::dataRepository::Group::GetGroup ( subGroupMap::KeyIndex const &  key) const
inline

Retrieve a sub-group from the current Group using a KeyIndexT.

Template Parameters
Ttype of subgroup
Parameters
[in]keythe KeyIndex to use for the lookup
Returns
A pointer to T that refers to the sub-group

Definition at line 454 of file Group.hpp.

◆ GetGroupByPath() [1/2]

template<typename T = Group>
T* geosx::dataRepository::Group::GetGroupByPath ( string const &  path)
inline

Retrieve a group from the hierarchy using a path.

Template Parameters
Ttype of subgroup
Parameters
[in]patha unix-style string (absolute, relative paths valid) to lookup the Group to return. Absolute paths search from the tree root, while relative - from current group.
Returns
A pointer to T that refers to the sub-group

Definition at line 468 of file Group.hpp.

◆ GetGroupByPath() [2/2]

template<typename T >
T const * geosx::dataRepository::Group::GetGroupByPath ( string const &  path) const

Retrieve a group from the hierarchy using a path.

Template Parameters
Ttype of subgroup
Parameters
[in]patha unix-style string (absolute, relative paths valid) to lookup the Group to return. Absolute paths search from the tree root, while relative - from current group.
Returns
A pointer to T that refers to the sub-group

Definition at line 1636 of file Group.hpp.

◆ getGroupReference() [1/2]

template<typename T = Group>
T& geosx::dataRepository::Group::getGroupReference ( string const &  key)
inline
Returns
Return a reference to the Group name.
Template Parameters
Thetype to return.
Parameters
keyThe name of the group to retrieve.
Note
Will abort if the group doesn't exist.

Definition at line 414 of file Group.hpp.

◆ getGroupReference() [2/2]

template<typename T = Group>
T const& geosx::dataRepository::Group::getGroupReference ( string const &  key) const
inline

Returns
Return a reference to the Group name.
Template Parameters
Thetype to return.
Parameters
keyThe name of the group to retrieve.
Note
Will abort if the group doesn't exist.

Definition at line 421 of file Group.hpp.

◆ GetGroupReference() [1/2]

template<typename T = Group>
T& geosx::dataRepository::Group::GetGroupReference ( subGroupMap::KeyIndex const &  key)
inline

Returns
Return a reference to the Group name.
Template Parameters
Thetype to return.
Parameters
keyThe name of the group to retrieve.
Note
Will abort if the group doesn't exist.

Definition at line 428 of file Group.hpp.

◆ GetGroupReference() [2/2]

template<typename T = Group>
T const& geosx::dataRepository::Group::GetGroupReference ( subGroupMap::KeyIndex const &  key) const
inline

Returns
Return a reference to the Group name.
Template Parameters
Thetype to return.
Parameters
keyThe name of the group to retrieve.
Note
Will abort if the group doesn't exist.

Definition at line 435 of file Group.hpp.

◆ getIndexInParent()

localIndex geosx::dataRepository::Group::getIndexInParent ( ) const
inline

Get the group's index withing its parent group.

Returns
integral index of current group within its parent

Definition at line 1337 of file Group.hpp.

◆ getInputFlags()

InputFlags geosx::dataRepository::Group::getInputFlags ( ) const
inline

Get input flags for schema generation.

Returns
the current value of input flags

Definition at line 1377 of file Group.hpp.

◆ getLogLevel()

integer geosx::dataRepository::Group::getLogLevel ( ) const
inline
Returns
The verbosity level

Definition at line 1420 of file Group.hpp.

◆ getName()

const string geosx::dataRepository::Group::getName ( ) const
inline

Get group name.

Returns
group name

Definition at line 1317 of file Group.hpp.

◆ getParent() [1/2]

Group* geosx::dataRepository::Group::getParent ( )
inline

Access the group's parent.

Returns
pointer to parent Group

Definition at line 1326 of file Group.hpp.

◆ getParent() [2/2]

Group const* geosx::dataRepository::Group::getParent ( ) const
inline

Access the group's parent.

Returns
pointer to parent Group

Definition at line 1331 of file Group.hpp.

◆ getReference() [1/4]

template<typename T , typename LOOKUP_TYPE >
GEOSX_DECLTYPE_AUTO_RETURN geosx::dataRepository::Group::getReference ( LOOKUP_TYPE const &  lookup) const
inline

Look up a wrapper and get reference to wrapped object.

Template Parameters
Treturn value type
WRAPPEDTYPEwrapped value type (by default, same as return)
LOOKUP_TYPEtype of value used for wrapper lookup
Parameters
lookupvalue for wrapper lookup
Returns
reference to T
Note
An error will be raised if wrapper does not exist or type cast is invalid.

Definition at line 1211 of file Group.hpp.

◆ getReference() [2/4]

template<typename T , typename LOOKUP_TYPE >
T& geosx::dataRepository::Group::getReference ( LOOKUP_TYPE const &  lookup)
inline

Look up a wrapper and get reference to wrapped object.

Template Parameters
Treturn value type
WRAPPEDTYPEwrapped value type (by default, same as return)
LOOKUP_TYPEtype of value used for wrapper lookup
Parameters
lookupvalue for wrapper lookup
Returns
reference to T
Note
An error will be raised if wrapper does not exist or type cast is invalid.

Definition at line 1231 of file Group.hpp.

◆ getReference() [3/4]

template<typename T >
GEOSX_DECLTYPE_AUTO_RETURN geosx::dataRepository::Group::getReference ( char const *const  name) const
inline

Look up a wrapper and get reference to wrapped object.

Template Parameters
Treturn value type
WRAPPEDTYPEwrapped value type (by default, same as return)
Parameters
namename of the wrapper
Returns
reference to T
Note
An error will be raised if wrapper does not exist or type cast is invalid.

Definition at line 1257 of file Group.hpp.

◆ getReference() [4/4]

template<typename T >
T& geosx::dataRepository::Group::getReference ( char const *const  name)
inline

Look up a wrapper and get reference to wrapped object.

Template Parameters
Treturn value type
WRAPPEDTYPEwrapped value type (by default, same as return)
Parameters
namename of the wrapper
Returns
reference to T
Note
An error will be raised if wrapper does not exist or type cast is invalid.

Definition at line 1264 of file Group.hpp.

◆ getRestartFlags()

RestartFlags geosx::dataRepository::Group::getRestartFlags ( ) const
inline

Get flags that control restart output of this group.

Returns
the current value of restart flags

Definition at line 1365 of file Group.hpp.

◆ GetSubGroups() [1/2]

subGroupMap& geosx::dataRepository::Group::GetSubGroups ( )
inline

Get the subgroups object.

Returns
a reference to the sub-group map.

Definition at line 485 of file Group.hpp.

◆ GetSubGroups() [2/2]

subGroupMap const& geosx::dataRepository::Group::GetSubGroups ( ) const
inline

Get the subgroups object.

Returns
a reference to const that points to the sub-group map.

Definition at line 494 of file Group.hpp.

◆ getWrapper() [1/4]

template<typename T , typename LOOKUP_TYPE >
Wrapper< T > const* geosx::dataRepository::Group::getWrapper ( LOOKUP_TYPE const &  index) const
inline

Retrieve a Wrapper stored in this group.

Template Parameters
Tthe object type contained in the Wrapper
LOOKUP_TYPEthe type of key used to perform the lookup
Parameters
[in]indexa lookup value used to search the collection of wrappers
Returns
A pointer to the Wrapper<T> that resulted from the lookup

Definition at line 1157 of file Group.hpp.

◆ getWrapper() [2/4]

template<typename T , typename LOOKUP_TYPE >
Wrapper< T >* geosx::dataRepository::Group::getWrapper ( LOOKUP_TYPE const &  index)
inline

Retrieve a Wrapper stored in this group.

Template Parameters
Tthe object type contained in the Wrapper
LOOKUP_TYPEthe type of key used to perform the lookup
Parameters
[in]indexa lookup value used to search the collection of wrappers
Returns
A pointer to the Wrapper<T> that resulted from the lookup

Definition at line 1166 of file Group.hpp.

◆ getWrapper() [3/4]

template<typename T >
Wrapper< T > const* geosx::dataRepository::Group::getWrapper ( char const *const  key) const
inline

Retrieve a Wrapper stored in this group.

Template Parameters
Tthe object type contained in the Wrapper
Parameters
[in]keya string lookup value used to search the collection of wrappers
Returns
a pointer to the Wrapper<T> that resulted from the lookup

Definition at line 1176 of file Group.hpp.

◆ getWrapper() [4/4]

template<typename T >
Wrapper< T >* geosx::dataRepository::Group::getWrapper ( char const *const  key)
inline

Retrieve a Wrapper stored in this group.

Template Parameters
Tthe object type contained in the Wrapper
Parameters
[in]keya string lookup value used to search the collection of wrappers
Returns
a pointer to the Wrapper<T> that resulted from the lookup

Definition at line 1183 of file Group.hpp.

◆ getWrapperBase() [1/6]

WrapperBase const* geosx::dataRepository::Group::getWrapperBase ( indexType const  index) const
inline

Retrieve a WrapperBase stored in this group.

Parameters
[in]indexan integral lookup value used to search the collection of wrappers.
Returns
a pointer to the WrapperBase that resulted from the lookup.

Definition at line 1058 of file Group.hpp.

◆ getWrapperBase() [2/6]

WrapperBase* geosx::dataRepository::Group::getWrapperBase ( indexType const  index)
inline

Retrieve a WrapperBase stored in this group.

Parameters
[in]indexan integral lookup value used to search the collection of wrappers.
Returns
a pointer to the WrapperBase that resulted from the lookup.

Definition at line 1064 of file Group.hpp.

◆ getWrapperBase() [3/6]

WrapperBase const* geosx::dataRepository::Group::getWrapperBase ( std::string const &  name) const
inline

Retrieve a WrapperBase stored in this group.

Parameters
[in]namea string lookup value used to search the collection of wrappers.
Returns
a pointer to the WrapperBase that resulted from the lookup.

Definition at line 1072 of file Group.hpp.

◆ getWrapperBase() [4/6]

WrapperBase* geosx::dataRepository::Group::getWrapperBase ( std::string const &  name)
inline

Retrieve a WrapperBase stored in this group.

Parameters
[in]namea string lookup value used to search the collection of wrappers.
Returns
a pointer to the WrapperBase that resulted from the lookup.

Definition at line 1078 of file Group.hpp.

◆ getWrapperBase() [5/6]

WrapperBase const* geosx::dataRepository::Group::getWrapperBase ( wrapperMap::KeyIndex const &  keyIndex) const
inline

Retrieve a WrapperBase stored in this group.

Parameters
[in]keyIndexa KeyIndex lookup value used to search the collection of wrappers.
Returns
a pointer to the WrapperBase that resulted from the lookup.

Definition at line 1086 of file Group.hpp.

◆ getWrapperBase() [6/6]

WrapperBase* geosx::dataRepository::Group::getWrapperBase ( wrapperMap::KeyIndex const &  keyIndex)
inline

Retrieve a WrapperBase stored in this group.

Parameters
[in]keyIndexa KeyIndex lookup value used to search the collection of wrappers.
Returns
a pointer to the WrapperBase that resulted from the lookup.

Definition at line 1092 of file Group.hpp.

◆ getWrapperIndex()

indexType geosx::dataRepository::Group::getWrapperIndex ( std::string const &  name) const
inline
Parameters
name
Returns

Definition at line 1100 of file Group.hpp.

◆ group_cast() [1/4]

template<typename T >
static T geosx::dataRepository::Group::group_cast ( Group group)
inlinestatic

Downcast a Group *.

Template Parameters
TPointer type to downcast into
Parameters
groupA pointer the group to be casted
Returns
A pointer to T that refers to the group

Definition at line 308 of file Group.hpp.

◆ group_cast() [2/4]

template<typename T >
static T geosx::dataRepository::Group::group_cast ( Group const *  group)
inlinestatic

Downcast a Group const *.

Template Parameters
TPointer type to downcast into
Parameters
groupA pointer the group to be casted
Returns
A pointer to T that refers to the group

Definition at line 320 of file Group.hpp.

◆ group_cast() [3/4]

template<typename T >
T geosx::dataRepository::Group::group_cast ( )
inline

Downcast this Group.

Template Parameters
TPointer type to downcast into
Returns
A pointer to T that refers to this object

Definition at line 331 of file Group.hpp.

◆ group_cast() [4/4]

template<typename T >
T geosx::dataRepository::Group::group_cast ( ) const
inline

Downcast this Group.

Template Parameters
TPointer type to downcast into
Returns
A pointer to T that refers to this object

Definition at line 342 of file Group.hpp.

◆ hasGroup()

bool geosx::dataRepository::Group::hasGroup ( std::string const &  name) const
inline

Check whether a sub-group exists.

Parameters
namethe name of sub-group to search for
Returns
true if sub-group exists, false otherwise

Definition at line 510 of file Group.hpp.

◆ hasWrapper()

template<typename LOOKUP_TYPE >
bool geosx::dataRepository::Group::hasWrapper ( LOOKUP_TYPE const &  lookup) const
inline

Check if a wrapper exists.

Template Parameters
LOOKUP_TYPEthe type of key used to perform the lookup.
Parameters
[in]lookupa lookup value used to search the collection of wrappers
Returns
true if wrapper exists (regardless of type), false otherwise

Definition at line 1144 of file Group.hpp.

◆ InitializationOrder()

virtual void geosx::dataRepository::Group::InitializationOrder ( string_array order)
virtual

Sets the initialization order for sub-Groups.

Parameters
[out]orderAn array of strings that define the iteration order.

This function will fill the order array that is used to specify the order in which the Initialize() function loops over sub-Groups. If a custom order is required by a derived type, this function should be overridden with a implementation that specifies the desired order.

Reimplemented in geosx::ProblemManager, and geosx::DomainPartition.

◆ Initialize()

void geosx::dataRepository::Group::Initialize ( Group *const  group)

Run initialization functions on this and all subgroups.

Parameters
[in]groupA group that is passed in to the initialization functions in order to facilitate the initialization.

This function will first call InitializePreSubGroups() on this Group, then loop over all subgroups and call Initialize() on them, then call InitializePostSubGroups() on this Group.

Note
The order in which the sub-Groups are iterated over is defined by InitializationOrder().

◆ InitializePostInitialConditions()

void geosx::dataRepository::Group::InitializePostInitialConditions ( Group *const  group)

Initialization routine to be called after calling ApplyInitialConditions().

Parameters
[in]groupA group that is passed in to the initialization functions in order to facilitate the initialization.

This function provides a capability for post-initial condition problem initialization. First the InitializePostInitialConditions_PreSubGroups() function is called on this Group. Then there is a loop over all subgroups and InitializePostInitialConditions() is called on them. Finally, the InitializePostInitialConditions_PostSubGroups() function is called this Group.

Note
The order in which the sub-Groups are iterated over is defined by InitializationOrder().

◆ InitializePostInitialConditions_PostSubGroups()

virtual void geosx::dataRepository::Group::InitializePostInitialConditions_PostSubGroups ( Group *const  group)
inlineprotectedvirtual

Called by InitializePostInitialConditions() after to initializing sub-Groups.

Parameters
[in]groupA group that is passed in to the initialization functions in order to facilitate the initialization.

Reimplemented in geosx::MeshLevel.

Definition at line 1474 of file Group.hpp.

◆ InitializePostInitialConditions_PreSubGroups()

virtual void geosx::dataRepository::Group::InitializePostInitialConditions_PreSubGroups ( Group *const  group)
inlineprotectedvirtual

Called by InitializePostInitialConditions() prior to initializing sub-Groups.

Parameters
[in]groupA group that is passed in to the initialization functions in order to facilitate the initialization.

Reimplemented in geosx::FluxApproximationBase.

Definition at line 1464 of file Group.hpp.

◆ InitializePostSubGroups()

virtual void geosx::dataRepository::Group::InitializePostSubGroups ( Group *const  group)
inlineprotectedvirtual

Called by Initialize() after to initializing sub-Groups.

Parameters
[in]groupA group that is passed in to the initialization functions in order to facilitate the initialization.

Reimplemented in geosx::TimeHistoryOutput, geosx::HistoryCollection, and geosx::PackCollection.

Definition at line 1454 of file Group.hpp.

◆ InitializePreSubGroups()

virtual void geosx::dataRepository::Group::InitializePreSubGroups ( Group *const  group)
inlineprotectedvirtual

Called by Initialize() prior to initializing sub-Groups.

Parameters
[in]groupA group that is passed in to the initialization functions in order to facilitate the initialization.

Reimplemented in geosx::SurfaceElementRegion, geosx::FaceElementRegion, geosx::EmbeddedSurfaceRegion, geosx::OutputBase, and geosx::SourceFluxBoundaryCondition.

Definition at line 1444 of file Group.hpp.

◆ numSubGroups()

localIndex geosx::dataRepository::Group::numSubGroups ( ) const
inline

return the number of sub groups in this Group

Returns
number of sub groups in this Group

Definition at line 503 of file Group.hpp.

◆ operator=() [1/2]

Group& geosx::dataRepository::Group::operator= ( Group const &  )
delete

Deleted copy assignment operator.

Returns

◆ operator=() [2/2]

Group& geosx::dataRepository::Group::operator= ( Group &&  )
delete

Deleted move assignment operator.

Returns

◆ Pack() [1/2]

virtual localIndex geosx::dataRepository::Group::Pack ( buffer_unit_type *&  buffer,
string_array const &  wrapperNames,
integer const  recursive,
bool  on_device = false 
) const
virtual

Pack a list of wrappers to a buffer.

Parameters
[in,out]bufferthe buffer that will be packed.
[in]wrapperNamesan array that contains the names of the wrappers to pack.
[in]recursivewhether or not to perform a recursive pack.
[in]on_devicewhether to use device-based packing functions (buffer must be either pinned or a device pointer)
Returns
the size of data packed to the buffer.

This function takes in a reference to a pointer buffer, and packs data specified by wrapperNames, and recursive to that pointer location. The pointer is altered and returned to the new location corresponding the original value of buffer plus the size of data packed to the buffer.

◆ Pack() [2/2]

virtual localIndex geosx::dataRepository::Group::Pack ( buffer_unit_type *&  buffer,
string_array const &  wrapperNames,
arrayView1d< localIndex const > const &  packList,
integer const  recursive,
bool  on_device = false 
) const
virtual

Pack a list of indices within a list of wrappers.

Parameters
[in,out]bufferthe buffer that will be packed.
[in]wrapperNamesan array that contains the names of the wrappers to pack.
[in]packListthe list of indices to pack
[in]recursivewhether or not to perform a recursive pack.
[in]on_devicewhether to use device-based packing functions (buffer must be either pinned or a device pointer)
Returns
the size of data packed to the buffer.

This function takes in a reference to a pointer buffer, and packs data specified by wrapperNames, packList, and recursive to that pointer location. The pointer is altered and returned to the new location corresponding the original value of buffer plus the size of data packed to the buffer.

Reimplemented in geosx::ObjectManagerBase.

◆ PackSize() [1/2]

virtual localIndex geosx::dataRepository::Group::PackSize ( string_array const &  wrapperNames,
integer const  recursive,
bool  on_device = false 
) const
virtual

Get the size required to pack a list of wrappers.

Parameters
[in]wrapperNamesan array that contains the names of the wrappers to pack.
[in]recursivewhether or not to perform a recursive pack.
[in]on_devicewhether to use device-based packing functions (buffer must be either pinned or a device pointer)
Returns
the size of the buffer required to pack the wrappers.

◆ PackSize() [2/2]

virtual localIndex geosx::dataRepository::Group::PackSize ( string_array const &  wrapperNames,
arrayView1d< localIndex const > const &  packList,
integer const  recursive,
bool  on_device = false 
) const
virtual

Get the size required to pack a list of indices within a list of wrappers.

Parameters
[in]wrapperNamesan array that contains the names of the wrappers to pack.
[in]packListthe list of indices to pack
[in]recursivewhether or not to perform a recursive pack.
[in]on_devicewhether to use device-based packing functions (buffer must be either pinned or a device pointer)
Returns
the size of the buffer required to pack the wrapper indices.

Reimplemented in geosx::ObjectManagerBase.

◆ PostProcessInput()

virtual void geosx::dataRepository::Group::PostProcessInput ( )
inlineprotectedvirtual

This function provides capability to post process input values prior to any other initialization operations.

Reimplemented in geosx::FieldSpecificationBase, geosx::ProblemManager, geosx::InternalWellGenerator, geosx::FunctionBase, geosx::Perforation, geosx::BoundedPlane, geosx::InternalMeshGenerator, geosx::ThickPlane, geosx::PAMELAMeshGenerator, geosx::Box, and geosx::TaskBase.

Definition at line 1437 of file Group.hpp.

◆ postRestartInitialization()

virtual void geosx::dataRepository::Group::postRestartInitialization ( Group *const  domain)
inlineprotectedvirtual

Performs initialization required after reading from a restart file.

Parameters
domainA pointer to the domain partition.

Definition at line 1483 of file Group.hpp.

◆ postRestartInitializationRecursive()

void geosx::dataRepository::Group::postRestartInitializationRecursive ( Group *const  domain)

Initialization routine to be called after calling reading a restart file.

Parameters
domainthe physical domain

This functions recurses and calls postRestartInitialization() on nested sub-groups at any depth, providing a capability to add custom post-restart initialization.

◆ PrintDataHierarchy()

void geosx::dataRepository::Group::PrintDataHierarchy ( integer  indent = 0)

Prints the data hierarchy recursively.

Parameters
[in]indentThe level of indentation to add to this level of output.

◆ ProcessInputFileRecursive()

void geosx::dataRepository::Group::ProcessInputFileRecursive ( xmlWrapper::xmlNode targetNode)

Recursively read values using ProcessInputFile() from the input file and put them into the wrapped values for this group.

Parameters
[in]targetNodethe XML node that to extract input values from.

◆ RegisterDataOnMesh()

virtual void geosx::dataRepository::Group::RegisterDataOnMesh ( Group *const  meshBodies)
virtual

Register data on mesh entities.

Parameters
[in,out]meshBodiesthe group of MeshBody objects to register data on.

This function is used to register data on mesh entities such as the NodeManager, FaceManager...etc.

Reimplemented in geosx::FluxApproximationBase.

◆ RegisterDataOnMeshRecursive()

virtual void geosx::dataRepository::Group::RegisterDataOnMeshRecursive ( Group *const  meshBodies)
virtual

Calls RegisterDataOnMesh() recursively.

Parameters
[in,out]meshBodiesthe group of MeshBody objects to register data on.

Reimplemented in geosx::DomainPartition.

◆ RegisterGroup() [1/5]

template<typename T >
T * geosx::dataRepository::Group::RegisterGroup ( std::string const &  name,
std::unique_ptr< T >  newObject 
)

Register a new Group as a sub-group of current Group.

Template Parameters
TThe type of the Group to add/register. This should be a type that derives from Group.
Parameters
[in]nameThe name of the group to use as a string key.
[in]newObjectA unique_ptr to the object that is being registered.
Returns
A pointer to the newly registered Group.

Registers a Group or class derived from Group as a subgroup of this Group and takes ownership.

Definition at line 1550 of file Group.hpp.

◆ RegisterGroup() [2/5]

template<typename T >
T * geosx::dataRepository::Group::RegisterGroup ( std::string const &  name,
T *  newObject 
)

Register a new Group as a sub-group of current Group.

Template Parameters
TThe type of the Group to add/register. This should be a type that derives from Group.
Parameters
[in]nameThe name of the group to use as a string key.
[in]newObjectA unique_ptr to the object that is being registered.
Returns
A pointer to the newly registered Group.

Registers a Group or class derived from Group as a subgroup of this Group but does not take ownership.

Definition at line 1559 of file Group.hpp.

◆ RegisterGroup() [3/5]

template<typename T = Group>
T* geosx::dataRepository::Group::RegisterGroup ( std::string const &  name)
inline

Register a new Group as a sub-group of current Group.

Template Parameters
TThe type of the Group to add/register. This should be a type that derives from Group.
Parameters
[in]nameThe name of the group to use as a string key.
Returns
A pointer to the newly registered Group.

Creates and registers a Group or class derived from Group as a subgroup of this Group.

Definition at line 235 of file Group.hpp.

◆ RegisterGroup() [4/5]

template<typename T = Group>
T* geosx::dataRepository::Group::RegisterGroup ( subGroupMap::KeyIndex const &  keyIndex)
inline

Register a new Group as a sub-group of current Group.

Template Parameters
TThe type of the Group to add/register. This should be a type that derives from Group.
Parameters
[in,out]keyIndexA KeyIndexT object that will be used to specify the name of the new group. The index of the KeyIndex will also be set.
Returns
A pointer to the newly registered Group.

Creates and registers a Group or class derived from Group as a subgroup of this Group.

Definition at line 251 of file Group.hpp.

◆ RegisterGroup() [5/5]

template<typename T = Group, typename TBASE = Group>
T* geosx::dataRepository::Group::RegisterGroup ( std::string const &  name,
std::string const &  catalogName 
)
inline

Register a new Group as a sub-group of current Group.

Template Parameters
TThe type of the Group to add/register. This should be a type that derives from Group.
TBASEThe type whose type catalog will be used to look up the new sub-group type
Parameters
[in]nameThe name of the group to use as a string key.
[in]catalogNameThe catalog name of the new type.
Returns
A pointer to the newly registered Group.

Creates and registers a Group or class derived from Group as a subgroup of this Group.

Definition at line 270 of file Group.hpp.

◆ registerWrapper() [1/5]

template<typename T , typename TBASE = T>
Wrapper< TBASE >* geosx::dataRepository::Group::registerWrapper ( std::string const &  name,
wrapperMap::KeyIndex::index_type *const  rkey = nullptr 
)

Create and register a Wrapper around a new object.

Template Parameters
TThe type of the object allocated.
TBASEThe type of the object that the Wrapper holds.
Parameters
[in]namethe name of the wrapper to use as a string key
[out]rkeya pointer to a index type that will be filled with the new Wrapper index in this Group
Returns
a pointer to the newly registered/created Wrapper

◆ registerWrapper() [2/5]

template<typename T , typename TBASE >
Wrapper< TBASE > * geosx::dataRepository::Group::registerWrapper ( Group::wrapperMap::KeyIndex const &  viewKey)

Create and register a Wrapper around a new object.

Template Parameters
Tthe type of the wrapped object
TBASEthe base type to cast the returned wrapper to
Parameters
[in]viewKeyThe KeyIndex that contains the name of the new Wrapper.
Returns
a pointer to the newly registered/created Wrapper

Definition at line 1591 of file Group.hpp.

◆ registerWrapper() [3/5]

template<typename T >
Wrapper< T > * geosx::dataRepository::Group::registerWrapper ( std::string const &  name,
std::unique_ptr< T >  newObject 
)

Register a Wrapper around a given object and take ownership.

Template Parameters
Tthe type of the wrapped object
Parameters
[in]namethe name of the wrapper to use as a string key
[in]newObjectan owning pointer to the object that is being registered
Returns
a pointer to the newly registered/created Wrapper

Definition at line 1602 of file Group.hpp.

◆ registerWrapper() [4/5]

template<typename T >
Wrapper< T > * geosx::dataRepository::Group::registerWrapper ( std::string const &  name,
T *  newObject 
)

Register a Wrapper around an existing object, does not take ownership of the object.

Template Parameters
Tthe type of the wrapped object
Parameters
[in]namethe name of the wrapper to use as a string key
[in]newObjecta pointer to the object that is being registered
Returns
a pointer to the newly registered/created Wrapper

Definition at line 1620 of file Group.hpp.

◆ registerWrapper() [5/5]

WrapperBase* geosx::dataRepository::Group::registerWrapper ( string const &  name,
std::unique_ptr< WrapperBase wrapper 
)

Register and take ownership of an existing Wrapper.

Parameters
namethe name of the wrapper to use as a string key
wrappera pointer to the an existing wrapper.
Returns
an un-typed pointer to the newly registered/created wrapper

◆ reserve()

virtual void geosx::dataRepository::Group::reserve ( indexType const  newsize)
virtual

Set the new capacity and reserve it in all wrappers that resize with parent.

Parameters
newsizethe new capacity of the group

◆ resize()

virtual void geosx::dataRepository::Group::resize ( localIndex const  newSize)
virtual

Resize the group and all contained wrappers that resize with parent.

Parameters
newSizethe new size of the group

Reimplemented in geosx::FaceManager, geosx::NodeManager, and geosx::EdgeManager.

◆ setInputFlags()

void geosx::dataRepository::Group::setInputFlags ( InputFlags  flags)
inline

Set input flags for schema generation.

Parameters
flagsthe new value of input flags

Definition at line 1383 of file Group.hpp.

◆ setRestartFlags()

void geosx::dataRepository::Group::setRestartFlags ( RestartFlags  flags)
inline

Set flags that control restart output of this group.

Parameters
flagsthe new value of restart flags

Definition at line 1371 of file Group.hpp.

◆ SetSchemaDeviations()

virtual void geosx::dataRepository::Group::SetSchemaDeviations ( xmlWrapper::xmlNode  schemaRoot,
xmlWrapper::xmlNode  schemaParent,
integer  documentationType 
)
virtual

Inform the schema generator of any deviations between the xml and GEOS data structures.

Parameters
schemaRootXML node corresponding to the root
schemaParentXML node for the parent node
documentationTypetype of XML schema generated

Reimplemented in geosx::ElementRegionManager, and geosx::ProblemManager.

◆ setSizedFromParent()

Group* geosx::dataRepository::Group::setSizedFromParent ( int  val)
inline

Set whether this wrapper is resized when its parent is resized.

Parameters
valan int that is converted into a bool
Returns
a pointer to this Group

Definition at line 1356 of file Group.hpp.

◆ size()

localIndex geosx::dataRepository::Group::size ( ) const
inline

Get the "size" of the group, which determines the number of elements in resizable wrappers.

Returns
size of this group

Definition at line 1301 of file Group.hpp.

◆ sizedFromParent()

integer geosx::dataRepository::Group::sizedFromParent ( ) const
inline

Check whether this Group is resized when its parent is resized.

Returns
true if Group is resized with parent group, false otherwise

Definition at line 1346 of file Group.hpp.

◆ Unpack()

virtual localIndex geosx::dataRepository::Group::Unpack ( buffer_unit_type const *&  buffer,
arrayView1d< localIndex > &  packList,
integer const  recursive,
bool  on_device = false 
)
virtual

Unpack a buffer.

Parameters
[in,out]bufferthe buffer to unpack
[in,out]packListthe list of indices that will be unpacked.
[in]recursivewhether or not to perform a recursive unpack.
[in]on_devicewhether to use device-based packing functions (buffer must be either pinned or a device pointer)
Returns
the number of bytes unpacked.

This function takes a reference to a pointer to const buffer type, and unpacks data from that buffer into the current Group. If packList is non-empty, then a check is made to ensure that the data that is unpacked matches packList. If packList is empty, the values of the indices that are unpacked are stored and returned in packList.

Reimplemented in geosx::ObjectManagerBase.

◆ wrappers() [1/2]

wrapperMap const& geosx::dataRepository::Group::wrappers ( ) const
inline

Get access to the internal wrapper storage.

Returns
a reference to wrapper map

Definition at line 1109 of file Group.hpp.

◆ wrappers() [2/2]

wrapperMap& geosx::dataRepository::Group::wrappers ( )
inline

Get access to the internal wrapper storage.

Returns
a reference to wrapper map

Definition at line 1117 of file Group.hpp.


The documentation for this class was generated from the following file: