SheafSystem  0.0.0.0
sheaf::implicit_crg_interval Class Referenceabstract

Abstract implementation of crg_interval for an interval of implicit cover relation graph members. More...

#include <implicit_crg_interval.h>

Inheritance diagram for sheaf::implicit_crg_interval:
sheaf::crg_interval sheaf::any fiber_bundle::base_space_crg_interval fiber_bundle::homogeneous_block_crg_interval fiber_bundle::point_block_crg_interval fiber_bundle::structured_block_1d_crg_interval fiber_bundle::structured_block_2d_crg_interval fiber_bundle::structured_block_3d_crg_interval fiber_bundle::zone_nodes_block_crg_interval

Friends

SHEAF_DLL_SPEC size_t deep_size (const implicit_crg_interval &xp, bool xinclude_shallow)
 The deep size of the referenced object of type implicit_crg_interval; if xinclude_shallow, add the sizeof xp to the result. More...
 

IMPLICIT_CRG_INTERVAL FACET

 implicit_crg_interval ()
 Default Constructor; constructs an uninitialized interval. More...
 
virtual ~implicit_crg_interval ()
 Destructor. More...
 

IMPLICIT INTERVAL FACET

pod_index_type implicit_begin () const
 The beginning of the implicit member interval (begin(), end()), excludes interval member; synonym for begin() + 1. More...
 
void implicit_begin (scoped_index &result) const
 The beginning of the implicit member interval (begin(), end()), excludes interval member; synonym for begin() + 1. More...
 
pod_index_type interval_member () const
 The index of the interval member itself; synonym for begin(). More...
 
void interval_member (scoped_index &result) const
 The index of the interval member itself; synonym for begin(). More...
 
bool is_interval_member (pod_index_type xindex) const
 True if xindex is the interval member. More...
 
bool is_interval_member (const scoped_index &xindex) const
 True if xindex is the interval member. More...
 

COVER SET FACET

static std::string implicit_cover_name (bool xlower, const scoped_index &xmbr_index)
 Creates a name for the implicit cover id space for member with index, xmbr_index. More...
 
static std::string implicit_cover_name (bool xlower, pod_index_type xmbr_index)
 Creates a name for the implicit cover id space for member with index, xmbr_index. More...
 

DOF_TUPLE_ID FACET

block< pod_index_type_dof_tuple_ids
 The ids of the dof tuples associated with this interval. More...
 
bool _dof_tuple_ids_initialized
 True if dof tuple ids have been initialized. More...
 
virtual bool is_jim (pod_index_type xmbr_index) const =0
 True if and only if the member with index xmbr_index is join-irreducible. More...
 
bool is_jim (const scoped_index &xmbr_index) const
 True if and only if the member with index xmbr_index is join-irreducible. More...
 
virtual pod_index_type dof_tuple_id (pod_index_type xmbr_index) const =0
 The dof tuple id of the member with index xmbr_index. More...
 
pod_index_type dof_tuple_id (const scoped_index &xmbr_index) const
 The dof tuple id of the member with index xmbr_index. More...
 
block< pod_index_type > & dof_tuple_ids ()
 The ids of the dof tuples associated with this interval. More...
 
const block< pod_index_type > & dof_tuple_ids () const
 The ids of the dof tuples associated with this interval; const version. More...
 
bool dof_tuple_ids_initialized () const
 True if dof tuple ids have been initialized. More...
 
void initialize_dof_tuple_ids (const block< pod_index_type > &xdof_tuple_ids)
 Allocates and initializes dof_tuple_ids() with xdof_tuple_ids. More...
 

I/O SUPPORT FACET

void clean_cover (bool xlower, pod_index_type xmbr_index)
 Removes members of the cover that are no longer members of the crg. More...
 

PRIVATE_DATA FACET

bool _private_data_initialized
 True if private data has been initialized. More...
 
size_type private_data_size () const
 The size of the private data. More...
 
void get_private_data (block< pod_index_type > &xdata) const
 Initializes this using private data xdata. More...
 
void put_private_data (const block< pod_index_type > &xdata)
 Initializes this using private data xdata. More...
 
bool private_data_initialized () const
 True if private data has been initialized. More...
 
virtual size_type implicit_private_data_size () const =0
 The size of the private data. More...
 
virtual void get_implicit_private_data (block< pod_index_type > &xdata) const =0
 Initializes this using private data xdata. More...
 
virtual void put_implicit_private_data (const block< pod_index_type > &xdata)=0
 Initializes this using private data xdata. More...
 

FINIALIZE FACET

bool _is_finalized
 True if the initialization of this crg interval has been finalized. More...
 
virtual void finalize (poset_state_handle &xhost)
 Finialize the initialization of this crg interval in the host xhost. More...
 

FACTORY FACET

void initialize (const namespace_poset &xnamespace)
 Sets is_initialized() == true; dummy routine provided to satisfy factory template. More...
 
virtual bool is_initialized () const
 True if fully initialized. More...
 
virtual const std::string & class_name () const
 The name of this class; provided to satisfy factory template. More...
 

ANY FACET

virtual bool is_ancestor_of (const any *other) const
 Conformance test; true if other conforms to this. More...
 
virtual implicit_crg_intervalclone () const =0
 Virtual constructor, makes a new instance of the same type as this. More...
 
virtual bool invariant () const
 Class invariant. More...
 

Additional Inherited Members

- Public Member Functions inherited from sheaf::crg_interval
 crg_interval ()
 Default Constructor; constructs an uninitialized interval. More...
 
virtual ~crg_interval ()
 Destructor. More...
 
pod_index_type begin () const
 The beginning of the member interval; this emulates members in the interval [begin(), end()), includes interval member. More...
 
void begin (scoped_index &result) const
 The beginning of the member interval; this emulates members in the interval [begin(), end()), includes interval member. More...
 
pod_index_type end () const
 The end of the member interval. More...
 
void end (scoped_index &result) const
 The end of the member interval. More...
 
size_type size () const
 The number of members in the member interval. More...
 
bool contains_member (pod_index_type xindex) const
 True if and only if the index xindex is contained in this interval. More...
 
bool contains_member (const scoped_index &xindex) const
 True if and only if the index xindex is contained in this interval. More...
 
const index_space_familyid_spaces () const
 The id space family for this interval. More...
 
const hub_index_space_handlehub_id_space () const
 The hub id space of this interval. More...
 
void initialize_id_spaces (index_space_family &xid_spaces)
 Set the index space family to xid_spaces. More...
 
bool id_spaces_initialized () const
 True if the index space family has been initialized. More...
 
const primary_index_space_handlelocal_id_space () const
 The local id space of this interval. More...
 
void initialize_local_id_space (const index_space_handle &xlocal_id_space)
 Sets the local id space to xlocal_id_space and initializes local ids. More...
 
bool local_id_space_initialized () const
 True if local id space has been initialized. More...
 
pod_index_type cover_id_space_id (bool xlower, pod_index_type xmbr_index) const
 The id for the lower (xlower true) or upper (xlower false) cover id space with index xmbr_index. More...
 
bool covers_initialized (bool xlower) const
 True if and only if the lower (xlower true) or upper (xlower false) covers has been initialized for this interval. More...
 
void initialize_covers ()
 Initialize the upper and lower covers for this interval. More...
 
bool cover_is_explicit (bool xlower, pod_index_type xmbr_index) const
 True if and only if the lower (xlower true) or upper (xlower false) cover with index xmbr_index is explicit. More...
 
pod_index_type force_explicit_cover (bool xlower, pod_index_type xmbr_index, bool xinitialize=true)
 The explicit lower (xlower true) or upper (xlower false) cover id space of the member with index xmbr_index; creates an explict cover id space if the cover id space is not already explicit and, if xinitialize, initializes it with the contents of the implicit cover id space, if any. Returns the space id of the explicit cover. More...
 
void initialize (const namespace_poset &xnamespace)
 Sets is_initialized() == true; dummy routine provided to satisfy factory template. More...
 
- Public Member Functions inherited from sheaf::any
bool is_same_type (const any *other) const
 True if other is the same type as this. More...
 
virtual ~any ()
 Destructor. More...
 
bool invariant_check () const
 True if invariant checking is enabled. More...
 
void enable_invariant_check () const
 Enable invariant checking. More...
 
void disable_invariant_check () const
 Disable invariant check. Intended for preventing recursive calls to invariant and for suppressing invariant checking during multi-phase initialization. More...
 
int disable_invariance_check_request_depth () const
 Number of times disable_invariant_check has been called without matching call to enable_invariant_check. More...
 
- Static Public Member Functions inherited from sheaf::crg_interval
static std::string local_id_space_name (pod_index_type xindex)
 The reserved name for the local id space of the ramge member with index xindex. More...
 
static factory< crg_interval > & interval_factory ()
 A factory for making descendants of this class. More...
 
static crg_intervalnew_interval (const std::string &xname)
 Creates a default constructed instance of the the class with name xname. More...
 
- Protected Types inherited from sheaf::crg_interval
typedef unordered::unordered_map< pod_index_type, pod_index_typeexplicit_cover_map_type
 The type of the explicit cover maps.. More...
 
- Protected Member Functions inherited from sheaf::crg_interval
virtual void initialize_lower_covers ()=0
 Initialize the lower covers for this interval. More...
 
virtual void initialize_upper_covers ()=0
 Initialize the upper cover for this interval. More...
 
explicit_cover_map_typeexplicit_cover_map (bool xlower)
 The lower (xlower true) or upper (xlower false) map to explicit cover id spaces. More...
 
const explicit_cover_map_typeexplicit_cover_map (bool xlower) const
 The lower (xlower true) or upper (xlower false) map to explicit cover id spaces; const version. More...
 
- Protected Member Functions inherited from sheaf::any
 any ()
 default constructor More...
 
- Static Protected Member Functions inherited from sheaf::crg_interval
static std::string explicit_cover_name (bool xlower, const scoped_index &xmbr_index)
 Creates a name for the explicit cover id space for member with index, xmbr_index. More...
 
static std::string explicit_cover_name (bool xlower, pod_index_type xmbr_index)
 Creates a name for the explicit cover id space for member with index, xmbr_index. More...
 
- Protected Attributes inherited from sheaf::crg_interval
index_space_family_id_spaces
 The id space family of this interval. More...
 
bool _id_spaces_initialized
 True if the id space family has been initialized. More...
 
primary_index_space_handle _local_id_space
 The id space of this interval. More...
 
bool _local_id_space_initialized
 True if local id space has been initialized. More...
 
pod_index_type _lower_covers_begin
 The offset into the id space family for the interval of lower covers. More...
 
bool _lower_covers_initialized
 True if and only if the lower cover is initialized. More...
 
pod_index_type _upper_covers_begin
 The offset into the id space family for the interval of upper covers. More...
 
bool _upper_covers_initialized
 True if and only if the upper cover is initialized. More...
 
explicit_cover_map_type _explicit_upper_cover_map
 The map from ids to explicit upper cover id spaces. More...
 
explicit_cover_map_type _explicit_lower_cover_map
 The map from ids to explicit lower cover id spaces. More...
 

Detailed Description

Abstract implementation of crg_interval for an interval of implicit cover relation graph members.

Definition at line 43 of file implicit_crg_interval.h.

Constructor & Destructor Documentation

◆ implicit_crg_interval()

sheaf::implicit_crg_interval::implicit_crg_interval ( )

Default Constructor; constructs an uninitialized interval.

Postcondition
  • !is_initialized()

Definition at line 40 of file implicit_crg_interval.cc.

References invariant(), is_initialized(), and ~implicit_crg_interval().

◆ ~implicit_crg_interval()

sheaf::implicit_crg_interval::~implicit_crg_interval ( )
virtual

Destructor.

Definition at line 60 of file implicit_crg_interval.cc.

References implicit_begin().

Referenced by implicit_crg_interval().

Member Function Documentation

◆ class_name()

◆ clean_cover()

void sheaf::implicit_crg_interval::clean_cover ( bool  xlower,
pod_index_type  xmbr_index 
)

Removes members of the cover that are no longer members of the crg.

Precondition
  • contains_member(xmbr_index)
Todo:
Reimplement or design out of the io system.

Definition at line 345 of file implicit_crg_interval.cc.

References sheaf::crg_interval::contains_member(), and private_data_size().

Referenced by dof_tuple_ids_initialized().

◆ clone()

sheaf::implicit_crg_interval * sheaf::implicit_crg_interval::clone ( ) const
pure virtual

◆ dof_tuple_id() [1/2]

virtual pod_index_type sheaf::implicit_crg_interval::dof_tuple_id ( pod_index_type  xmbr_index) const
pure virtual

The dof tuple id of the member with index xmbr_index.

Implemented in fiber_bundle::homogeneous_block_crg_interval.

Referenced by dof_tuple_id(), is_jim(), and sheaf::poset_crg_state::member_dof_tuple_id().

◆ dof_tuple_id() [2/2]

sheaf::pod_index_type sheaf::implicit_crg_interval::dof_tuple_id ( const scoped_index xmbr_index) const

The dof tuple id of the member with index xmbr_index.

Precondition
  • contains_member(xmbr_index)

Definition at line 270 of file implicit_crg_interval.cc.

References sheaf::crg_interval::contains_member(), dof_tuple_id(), dof_tuple_ids(), and sheaf::scoped_index::hub_pod().

◆ dof_tuple_ids() [1/2]

sheaf::block< sheaf::pod_index_type > & sheaf::implicit_crg_interval::dof_tuple_ids ( )

The ids of the dof tuples associated with this interval.

Definition at line 283 of file implicit_crg_interval.cc.

References _dof_tuple_ids.

Referenced by dof_tuple_id(), sheaf::member_record::external_size(), sheaf::member_record::externalize(), and initialize_dof_tuple_ids().

◆ dof_tuple_ids() [2/2]

const sheaf::block< sheaf::pod_index_type > & sheaf::implicit_crg_interval::dof_tuple_ids ( ) const

The ids of the dof tuples associated with this interval; const version.

Definition at line 290 of file implicit_crg_interval.cc.

References _dof_tuple_ids, and initialize_dof_tuple_ids().

◆ dof_tuple_ids_initialized()

bool sheaf::implicit_crg_interval::dof_tuple_ids_initialized ( ) const

True if dof tuple ids have been initialized.

Definition at line 327 of file implicit_crg_interval.cc.

References _dof_tuple_ids_initialized, and clean_cover().

Referenced by initialize_dof_tuple_ids().

◆ finalize()

◆ get_implicit_private_data()

void sheaf::implicit_crg_interval::get_implicit_private_data ( block< pod_index_type > &  xdata) const
protectedpure virtual

◆ get_private_data()

◆ implicit_begin() [1/2]

sheaf::pod_index_type sheaf::implicit_crg_interval::implicit_begin ( ) const

◆ implicit_begin() [2/2]

void sheaf::implicit_crg_interval::implicit_begin ( scoped_index result) const

The beginning of the implicit member interval (begin(), end()), excludes interval member; synonym for begin() + 1.

Precondition
Postcondition
  • result.is_hub_scope()

Definition at line 101 of file implicit_crg_interval.cc.

References sheaf::crg_interval::hub_id_space(), implicit_begin(), interval_member(), sheaf::scoped_index::is_hub_scope(), sheaf::crg_interval::local_id_space_initialized(), and sheaf::scoped_index::put().

◆ implicit_cover_name() [1/2]

std::string sheaf::implicit_crg_interval::implicit_cover_name ( bool  xlower,
const scoped_index xmbr_index 
)
staticprotected

Creates a name for the implicit cover id space for member with index, xmbr_index.

Definition at line 216 of file implicit_crg_interval.cc.

References sheaf::scoped_index::hub_pod(), and is_jim().

Referenced by implicit_cover_name(), and is_interval_member().

◆ implicit_cover_name() [2/2]

std::string sheaf::implicit_crg_interval::implicit_cover_name ( bool  xlower,
pod_index_type  xmbr_index 
)
staticprotected

Creates a name for the implicit cover id space for member with index, xmbr_index.

Postcondition
  • !result.empty()

Definition at line 195 of file implicit_crg_interval.cc.

References implicit_cover_name(), and sheaf::poset_path::make_reserved_name().

◆ implicit_private_data_size()

◆ initialize()

void sheaf::implicit_crg_interval::initialize ( const namespace_poset xnamespace)

Sets is_initialized() == true; dummy routine provided to satisfy factory template.

Postcondition

Definition at line 689 of file implicit_crg_interval.cc.

References _dof_tuple_ids_initialized, _is_finalized, _private_data_initialized, sheaf::crg_interval::initialize(), and is_initialized().

Referenced by finalize(), and fiber_bundle::base_space_crg_interval::initialize().

◆ initialize_dof_tuple_ids()

void sheaf::implicit_crg_interval::initialize_dof_tuple_ids ( const block< pod_index_type > &  xdof_tuple_ids)

Allocates and initializes dof_tuple_ids() with xdof_tuple_ids.

Postcondition
  • for(int i = ( 0 ); i < ( xdof_tuple_ids.ct() ); ++ i ) dof_tuple_ids()[i] == xdof_tuple_ids[i]

Definition at line 297 of file implicit_crg_interval.cc.

References _dof_tuple_ids, _dof_tuple_ids_initialized, sheaf::auto_block< T, S >::ct(), dof_tuple_ids(), dof_tuple_ids_initialized(), sheaf::auto_block< T, S >::reserve(), and sheaf::auto_block< T, S >::set_ct().

Referenced by dof_tuple_ids(), sheaf::member_record::internalize(), and sheaf::poset_state_handle::new_member_interval().

◆ interval_member() [1/2]

◆ interval_member() [2/2]

void sheaf::implicit_crg_interval::interval_member ( scoped_index result) const

The index of the interval member itself; synonym for begin().

Precondition
Postcondition
  • result.is_hub_scope()

Definition at line 135 of file implicit_crg_interval.cc.

References sheaf::crg_interval::begin(), sheaf::scoped_index::is_hub_scope(), is_interval_member(), and sheaf::crg_interval::local_id_space_initialized().

◆ invariant()

◆ is_ancestor_of()

bool sheaf::implicit_crg_interval::is_ancestor_of ( const any other) const
virtual

◆ is_initialized()

◆ is_interval_member() [1/2]

◆ is_interval_member() [2/2]

bool sheaf::implicit_crg_interval::is_interval_member ( const scoped_index xindex) const

◆ is_jim() [1/2]

bool sheaf::implicit_crg_interval::is_jim ( pod_index_type  xmbr_index) const
pure virtual

True if and only if the member with index xmbr_index is join-irreducible.

Precondition
  • contains_member(xmbr_index)
Is Abstract.

Implemented in fiber_bundle::homogeneous_block_crg_interval.

Definition at line 236 of file implicit_crg_interval.cc.

References sheaf::crg_interval::contains_member().

Referenced by finalize(), implicit_cover_name(), is_jim(), and sheaf::refinable_poset::new_member_interval().

◆ is_jim() [2/2]

bool sheaf::implicit_crg_interval::is_jim ( const scoped_index xmbr_index) const

True if and only if the member with index xmbr_index is join-irreducible.

Precondition
  • contains_member(xmbr_index)

Definition at line 257 of file implicit_crg_interval.cc.

References sheaf::crg_interval::contains_member(), dof_tuple_id(), sheaf::scoped_index::hub_pod(), and is_jim().

◆ private_data_initialized()

bool sheaf::implicit_crg_interval::private_data_initialized ( ) const

True if private data has been initialized.

Definition at line 572 of file implicit_crg_interval.cc.

References _private_data_initialized, and implicit_private_data_size().

Referenced by put_private_data().

◆ private_data_size()

◆ put_implicit_private_data()

void sheaf::implicit_crg_interval::put_implicit_private_data ( const block< pod_index_type > &  xdata)
protectedpure virtual

◆ put_private_data()

Friends And Related Function Documentation

◆ deep_size

SHEAF_DLL_SPEC size_t deep_size ( const implicit_crg_interval xp,
bool  xinclude_shallow 
)
friend

The deep size of the referenced object of type implicit_crg_interval; if xinclude_shallow, add the sizeof xp to the result.

Referenced by sheaf::deep_size().

Member Data Documentation

◆ _dof_tuple_ids

◆ _dof_tuple_ids_initialized

bool sheaf::implicit_crg_interval::_dof_tuple_ids_initialized
protected

True if dof tuple ids have been initialized.

Definition at line 203 of file implicit_crg_interval.h.

Referenced by sheaf::deep_size(), dof_tuple_ids_initialized(), initialize(), initialize_dof_tuple_ids(), and is_initialized().

◆ _is_finalized

bool sheaf::implicit_crg_interval::_is_finalized
protected

True if the initialization of this crg interval has been finalized.

Definition at line 306 of file implicit_crg_interval.h.

Referenced by finalize(), initialize(), and is_initialized().

◆ _private_data_initialized

bool sheaf::implicit_crg_interval::_private_data_initialized
protected

True if private data has been initialized.

Definition at line 282 of file implicit_crg_interval.h.

Referenced by sheaf::deep_size(), initialize(), is_initialized(), private_data_initialized(), and put_private_data().


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