19 #ifndef GEOSX_MESH_INTEROBJECTRELATION_HPP_ 20 #define GEOSX_MESH_INTEROBJECTRELATION_HPP_ 33 template<
typename BASETYPE >
34 class InterObjectRelation :
public BASETYPE
46 template<
typename ... ARGS >
48 BASETYPE(
std::forward< ARGS >( args )... )
55 const base_type &
Base()
const {
return static_cast< const BASETYPE &
>(*this); }
68 { m_relatedObject = relatedObject; }
75 {
return m_relatedObject; }
InterObjectRelation(ARGS &&... args)
A forwarding constructor.
unordered_map< globalIndex, localIndex > const & RelatedObjectGlobalToLocal() const
Get the GlobalToLocal mapping from the related object.
InterObjectRelation< array2d< localIndex > > FixedOneToManyRelation
A relationship from single objects to many other objects, where each object is related to the same nu...
arrayView1d< globalIndex const > RelatedObjectLocalToGlobal() const
Get the LocalToGlobal mapping from the related object.
Base template for ordered and unordered maps.
This class implements an array of arrays like object with contiguous storage.
This class serves to provide a "view" of a multidimensional array.
The ObjectManagerBase is the base object of all object managers in the mesh data hierachy.
void SetRelatedObject(ObjectManagerBase const *const relatedObject)
Set the related object.
unordered_map< globalIndex, localIndex > const & globalToLocalMap() const
Get global to local map.
base_type & Base()
Get a reference to this object cast to BASETYPE.
arrayView1d< globalIndex > localToGlobalMap()
Get local to global map.
const base_type & Base() const
Get a reference to this object cast to BASETYPE const.
const ObjectManagerBase * RelatedObject() const
Get the related object.