SheafSystem
0.0.0.0
|
An implementation of index_space_interval for an interval of implicit id spaces for the adjacency of a 1-dimensional structured block. More...
#include <i_adjacency_index_space_interval.h>
Public Member Functions | |
virtual const std::string & | class_name () const |
The name of this class. More... | |
virtual i_adjacency_index_space_interval * | clone () const |
Virtual constructor; create a new instance of the same type at this. More... | |
Public Member Functions inherited from sheaf::index_space_interval | |
virtual | ~index_space_interval () |
Destructor. More... | |
pod_type | begin () const |
Beginning space id of this interval in the id space family scope. More... | |
pod_type | end () const |
Ending space id of this interval in the id space family scope. More... | |
bool | in_bounds (pod_type xspace_id) const |
True if id xspace_id is in the bounds [begin(), end()). More... | |
virtual const index_space_family & | id_spaces () const |
The id space family for this (const version). More... | |
virtual index_space_family & | id_spaces () |
The id space family for this (mutable version). More... | |
virtual bool | contains (pod_type xlocal_id) const |
True if this collection contains the id space with local id xlocal_id. More... | |
virtual bool | contains_family (pod_type xspace_id) const |
True if this collection contains the id space with family id xspace_id. More... | |
virtual pod_type | local_scope (pod_type xspace_id) const |
Id relative to this collection equivalent to the id space family id xspace_id. More... | |
virtual pod_type | family_scope (pod_type xlocal_id) const |
Id relative to the id space family equivalent to the local id xlocal_id. More... | |
Public Member Functions inherited from sheaf::index_space_collection | |
virtual | ~index_space_collection () |
Destructor. More... | |
virtual bool | contains (pod_type xlocal_id) const =0 |
True if this collection contains the id space with local id xlocal_id. More... | |
virtual bool | contains_family (pod_type xspace_id) const =0 |
True if this collection contains the id space with family id xspace_id. More... | |
virtual pod_type | local_scope (pod_type xspace_id) const =0 |
Id relative to this collection equivalent to the id space family id xspace_id. More... | |
virtual pod_type | family_scope (pod_type xlocal_id) const =0 |
Id relative to the id space family equivalent to the local id xlocal_id. More... | |
const hub_index_space_handle & | hub_id_space () const |
The hub id space. More... | |
bool | is_empty (pod_type xlocal_id) const |
True if there are no ids in the space with id xlocal_id. More... | |
bool | is_gathered (pod_type xlocal_id) const |
True if begin(xlocal_id) == 0 and end(xlocal_id) == ct(xlocal_id). More... | |
bool | contains (pod_type xlocal_id, const scoped_index &xid) const |
True if the space with id xlocal_id contains an id equivalent to xid. synonym for contains_hub(xlocal_id, xid.hub_pod()). More... | |
bool | contains_hub (pod_type xlocal_id, pod_type xid) const |
True if the space with id xlocal_id contains an id equivalent to xid in the hub id space. synonym for contains_unglued_hub(xlocal_id, xid) More... | |
bool | contains_glued_hub (pod_type xlocal_id, pod_type xid) const |
True if the space with id xlocal_id contains an id equivalent to xid in the glued hub id space. More... | |
bool | contains (pod_type xlocal_id, pod_type xid, const scoped_index &xhub_id) const |
True if the space with id xlocal_id contains an id xid equivalent to xhub_id in the hub id space. synonym for contains(xlocal_id, xid, xhub_id.hub_pod()). More... | |
pod_type | pod (pod_type xlocal_id, const scoped_index &xid) const |
The pod index in the space with id xlocal_id equivalent to xid. synonym for pod(xlocal_id, id.hub_pod()). More... | |
pod_type | hub_pod (pod_type xlocal_id, pod_type xid) const |
The pod index in the glued hub id space equivalent to xid in the id space with id xlocal_id. synonym for unglued_hub_pod(xlocal_id, xid). More... | |
pod_type | glued_hub_pod (pod_type xlocal_id, pod_type xid) const |
The pod index in the unglued hub id space equivalent to xid in the id space with id xlocal_id. 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... | |
Friends | |
class | fiber_bundles_namespace |
SHEAF_DLL_SPEC size_t | deep_size (const i_adjacency_index_space_interval &xn, bool xinclude_shallow) |
The deep size of i_adjacency_index_space_interval& xn. More... | |
SPACE FACTORY FACET | |
static const i_adjacency_index_space_interval & | new_space (index_space_family &xid_spaces, size_type xub, pod_type xzone_hub_begin, size_type xi_size) |
Create a new interval of id spaces for 1D structured block adjacency in the id space family xid_spaces with upper bound xub, zone hub begin and the number of zones in the i-direction, xi_size. Return a reference to the id space interval. More... | |
I_ADJACENCY_INDEX_SPACE_INTERVAL FACET | |
pod_type | _zone_hub_begin |
The hub id of the beginning of the zone id space. More... | |
size_type | _i_size |
The number of zones in the i direction. More... | |
virtual | ~i_adjacency_index_space_interval () |
Destructor. More... | |
pod_type | zone_hub_begin () const |
The hub id of the beginning of the zone id space. More... | |
pod_type | zone_hub_begin (pod_type xlocal_id) const |
The hub id of the first adjacent zone for id space with id xlocal_id. More... | |
void | adjacent_zones (pod_type xlocal_id, pod_type &xzone_hub_begin, size_type &xi_ct) const |
Compute the hub id of the fist adjacent zone and the number of adjacent zones in each direction for id space with id xlocal_id. More... | |
size_type | i_size () const |
The number of zones in the i direction. More... | |
i_adjacency_index_space_interval () | |
Default constructor. More... | |
i_adjacency_index_space_interval (const i_adjacency_index_space_interval &xother) | |
Copy constructor; disabled. More... | |
INDEX_SPACE_COLLECTION FACET | |
virtual bool | operator== (const index_space_collection &xother) const |
True if this is equivalent to xother. More... | |
virtual size_type | deep_size (bool xinclude_shallow) const |
The deep size of this. More... | |
virtual i_adjacency_index_space_interval & | operator= (const index_space_collection &xother) |
Assignment operator. More... | |
virtual explicit_index_space_state * | explicit_state (pod_type xlocal_id) const |
The explicit id space state for id xlocal_id. Returns null if there is no explicit id space for xlocal_id. More... | |
INDEX SPACE FACET | |
virtual void | remove (pod_type xlocal_id) |
Remove the id space with id xlocal_id. More... | |
virtual size_type | ct (pod_type xlocal_id) const |
The number of members for the id space with id xlocal_id. More... | |
virtual pod_type | begin (pod_type xlocal_id) const |
Beginning id of this space with id xlocal_id. More... | |
virtual pod_type | end (pod_type xlocal_id) const |
Ending id of this space with id xlocal_id. More... | |
virtual bool | contains (pod_type xlocal_id, pod_type xid) const |
True if the space with id xlocal_id contains id xid. More... | |
virtual bool | contains_unglued_hub (pod_type xlocal_id, pod_type xid) const |
True if the space with id xlocal_id contains an id equivalent to xid in the unglued hub id space. More... | |
virtual bool | contains (pod_type xlocal_id, pod_type xid, pod_type xhub_id) const |
True if the space with id xlocal_id contains an id xid equivalent to xhub_id in the hub id space. More... | |
virtual pod_type | pod (pod_type xlocal_id, pod_type xid) const |
The pod index in the space with id xlocal_id equivalent to xid in the hub id space. More... | |
virtual pod_type | unglued_hub_pod (pod_type xlocal_id, pod_type xid) const |
The pod index in the unglued_hub id space equivalent to xid in the id space with id xlocal_id. More... | |
virtual bool | is_persistent (pod_type xlocal_id) const |
True if the id space with id xlocal_id should be written to disk. More... | |
PRODUCT STRUCTURE FACET | |
virtual void | new_product_structure (pod_type xlocal_id, const abstract_product_structure &xproduct) |
Creates a new product structure for the id space with id xlocal_id by cloning the product structure, xproduct. More... | |
virtual void | delete_product_structure (pod_type xlocal_id) |
Deletes the product structure for the id space with id xlocal_id. More... | |
virtual const abstract_product_structure & | product_structure (pod_type xlocal_id) const |
The product structure for the id space with id xlocal_id (const version). More... | |
virtual abstract_product_structure & | product_structure (pod_type xlocal_id) |
The product structure for the id space with id xlocal_id (mutable version). More... | |
virtual bool | has_product_structure (pod_type xlocal_id) const |
True if the id space with id xlocal_id has a product structure. More... | |
HANDLE POOL FACET | |
list_pool< forwarding_index_space_handle > | _handles |
The handle pool. More... | |
virtual index_space_handle & | get_id_space (pod_type xlocal_id) const |
Allocates an id space handle from the handle pool attached to state with id xlocal_id. More... | |
virtual void | release_id_space (index_space_handle &xid_space) const |
Returns the id space handle xid_space to the handle pool. More... | |
virtual bool | allocated_id_space (const index_space_handle &xid_space) const |
True if and only if id space handle xid_space was allocated by the handle pool. More... | |
ITERATOR POOL FACET | |
list_pool< i_adjacency_implicit_index_space_iterator > | _iterators |
The iterator pool. More... | |
virtual index_space_iterator & | get_id_space_iterator (pod_type xlocal_id) const |
Allocates an id space iterator from the iterator pool attached to state with id xlocal_id. More... | |
virtual void | release_id_space_iterator (index_space_iterator &xitr) const |
Returns the id space iterator xitr to the iterator pool. More... | |
virtual bool | allocated_id_space_iterator (const index_space_iterator &xitr) const |
True if and only if id space iterator xitr was allocated by the iterator pool. More... | |
ANY FACET | |
virtual bool | is_ancestor_of (const any *other) const |
Conformance test; true if other conforms to this. More... | |
virtual bool | invariant () const |
Class invariant. More... | |
Additional Inherited Members | |
Public Types inherited from sheaf::index_space_collection | |
typedef pod_index_type | pod_type |
The "plain old data" index type for this. More... | |
Static Public Member Functions inherited from sheaf::index_space_interval | |
static factory< index_space_interval > & | id_space_interval_factory () |
A factory for making descendants of this class. More... | |
Protected Member Functions inherited from sheaf::index_space_interval | |
index_space_interval () | |
Default constructor. More... | |
index_space_interval (const index_space_interval &xother) | |
Copy constructor; disabled. More... | |
void | new_state (index_space_family &xid_spaces, size_type xub) |
Create a new id space interval in the id space family xid_spaces with upper bound xub. More... | |
virtual bool | supports_persistent_id_spaces () const |
True, if this interval supports persistent id spaces. More... | |
Protected Member Functions inherited from sheaf::index_space_collection | |
index_space_collection () | |
Default constructor. More... | |
index_space_collection (const index_space_collection &xother) | |
Copy constructor; disabled. More... | |
Protected Member Functions inherited from sheaf::any | |
any () | |
default constructor More... | |
Protected Attributes inherited from sheaf::index_space_interval | |
pod_type | _begin |
Beginning space id of this interval in the id space family scope. More... | |
pod_type | _end |
Ending space id of this interval in the id space family scope. More... | |
index_space_family * | _id_spaces |
The index space family of this collection. More... | |
An implementation of index_space_interval for an interval of implicit id spaces for the adjacency of a 1-dimensional structured block.
Definition at line 51 of file i_adjacency_index_space_interval.h.
|
virtual |
Destructor.
Definition at line 92 of file i_adjacency_index_space_interval.cc.
References zone_hub_begin().
Referenced by new_space().
|
protected |
Default constructor.
Definition at line 209 of file i_adjacency_index_space_interval.cc.
References class_name(), and invariant().
|
inlineprotected |
Copy constructor; disabled.
Definition at line 127 of file i_adjacency_index_space_interval.h.
void fiber_bundle::i_adjacency_index_space_interval::adjacent_zones | ( | pod_type | xlocal_id, |
pod_type & | xzone_hub_begin, | ||
size_type & | xi_ct | ||
) | const |
Compute the hub id of the fist adjacent zone and the number of adjacent zones in each direction for id space with id xlocal_id.
Definition at line 152 of file i_adjacency_index_space_interval.cc.
References i_size().
Referenced by fiber_bundle::i_adjacency_implicit_index_space_iterator::attach_to(), contains_unglued_hub(), pod(), unglued_hub_pod(), and zone_hub_begin().
|
virtual |
True if and only if id space handle xid_space was allocated by the handle pool.
Implements sheaf::index_space_collection.
Definition at line 853 of file i_adjacency_index_space_interval.cc.
References _handles, and get_id_space_iterator().
Referenced by release_id_space().
|
virtual |
True if and only if id space iterator xitr was allocated by the iterator pool.
Implements sheaf::index_space_collection.
Definition at line 935 of file i_adjacency_index_space_interval.cc.
References _iterators, and is_ancestor_of().
Referenced by release_id_space_iterator().
|
virtual |
Beginning id of this space with id xlocal_id.
Implements sheaf::index_space_collection.
Definition at line 454 of file i_adjacency_index_space_interval.cc.
References contains(), and sheaf::index_space_interval::end().
Referenced by new_space().
|
virtual |
The name of this class.
Reimplemented from sheaf::index_space_interval.
Definition at line 247 of file i_adjacency_index_space_interval.cc.
References clone().
Referenced by i_adjacency_index_space_interval().
|
virtual |
Virtual constructor; create a new instance of the same type at this.
Implements sheaf::index_space_interval.
Definition at line 255 of file i_adjacency_index_space_interval.cc.
References i_adjacency_index_space_interval(), sheaf::index_space_interval::id_space_interval_factory(), sheaf::any::is_same_type(), and operator==().
Referenced by class_name().
|
virtual |
True if the space with id xlocal_id contains id xid.
Implements sheaf::index_space_collection.
Definition at line 496 of file i_adjacency_index_space_interval.cc.
References contains_unglued_hub(), and sheaf::index_space_interval::end().
Referenced by begin(), contains(), contains_unglued_hub(), ct(), delete_product_structure(), end(), get_id_space(), get_id_space_iterator(), has_product_structure(), is_persistent(), new_product_structure(), pod(), product_structure(), remove(), and unglued_hub_pod().
|
virtual |
True if the space with id xlocal_id contains an id xid equivalent to xhub_id in the hub id space.
Implements sheaf::index_space_collection.
Definition at line 550 of file i_adjacency_index_space_interval.cc.
References contains(), sheaf::index_space_collection::hub_pod(), sheaf::is_valid(), and pod().
|
virtual |
True if the space with id xlocal_id contains an id equivalent to xid in the unglued hub id space.
Implements sheaf::index_space_collection.
Definition at line 517 of file i_adjacency_index_space_interval.cc.
References adjacent_zones(), and contains().
Referenced by contains(), and unglued_hub_pod().
|
virtual |
The number of members for the id space with id xlocal_id.
Implements sheaf::index_space_collection.
Definition at line 431 of file i_adjacency_index_space_interval.cc.
References _i_size, sheaf::index_space_interval::begin(), and contains().
|
virtual |
The deep size of this.
Implements sheaf::index_space_collection.
Definition at line 331 of file i_adjacency_index_space_interval.cc.
References fiber_bundle::deep_size(), and operator=().
|
virtual |
Deletes the product structure for the id space with id xlocal_id.
Not Implemented.
Implements sheaf::index_space_collection.
Definition at line 693 of file i_adjacency_index_space_interval.cc.
References contains(), has_product_structure(), and product_structure().
Referenced by new_product_structure().
|
virtual |
Ending id of this space with id xlocal_id.
Implements sheaf::index_space_collection.
Definition at line 475 of file i_adjacency_index_space_interval.cc.
References contains(), and ct().
Referenced by new_space().
|
protectedvirtual |
The explicit id space state for id xlocal_id. Returns null if there is no explicit id space for xlocal_id.
Implements sheaf::index_space_collection.
Definition at line 380 of file i_adjacency_index_space_interval.cc.
References remove().
Referenced by operator=().
|
virtual |
Allocates an id space handle from the handle pool attached to state with id xlocal_id.
Implements sheaf::index_space_collection.
Definition at line 804 of file i_adjacency_index_space_interval.cc.
References _handles, sheaf::index_space_handle::attach_to(), contains(), sheaf::index_space_handle::is_attached(), and release_id_space().
Referenced by has_product_structure().
|
virtual |
Allocates an id space iterator from the iterator pool attached to state with id xlocal_id.
Implements sheaf::index_space_collection.
Definition at line 886 of file i_adjacency_index_space_interval.cc.
References _iterators, sheaf::index_space_iterator::attach_to(), contains(), sheaf::index_space_iterator::is_attached(), and release_id_space_iterator().
Referenced by allocated_id_space().
|
virtual |
True if the id space with id xlocal_id has a product structure.
Not Implemented.
Implements sheaf::index_space_collection.
Definition at line 768 of file i_adjacency_index_space_interval.cc.
References contains(), and get_id_space().
Referenced by delete_product_structure(), new_product_structure(), and product_structure().
sheaf::size_type fiber_bundle::i_adjacency_index_space_interval::i_size | ( | ) | const |
The number of zones in the i direction.
Definition at line 191 of file i_adjacency_index_space_interval.cc.
References i_adjacency_index_space_interval().
Referenced by adjacent_zones(), and new_space().
|
virtual |
Class invariant.
Reimplemented from sheaf::index_space_interval.
Definition at line 989 of file i_adjacency_index_space_interval.cc.
References sheaf::any::disable_invariant_check(), sheaf::any::enable_invariant_check(), sheaf::index_space_interval::invariant(), and sheaf::any::invariant_check().
Referenced by i_adjacency_index_space_interval(), is_ancestor_of(), and operator=().
|
virtual |
Conformance test; true if other conforms to this.
Reimplemented from sheaf::index_space_interval.
Definition at line 968 of file i_adjacency_index_space_interval.cc.
References invariant().
Referenced by allocated_id_space_iterator(), operator=(), and operator==().
|
virtual |
True if the id space with id xlocal_id should be written to disk.
Implements sheaf::index_space_collection.
Definition at line 637 of file i_adjacency_index_space_interval.cc.
References contains(), and new_product_structure().
Referenced by unglued_hub_pod().
|
virtual |
Creates a new product structure for the id space with id xlocal_id by cloning the product structure, xproduct.
Not Implemented.
Implements sheaf::index_space_collection.
Definition at line 669 of file i_adjacency_index_space_interval.cc.
References contains(), delete_product_structure(), and has_product_structure().
Referenced by is_persistent().
|
static |
Create a new interval of id spaces for 1D structured block adjacency in the id space family xid_spaces with upper bound xub, zone hub begin and the number of zones in the i-direction, xi_size. Return a reference to the id space interval.
Definition at line 42 of file i_adjacency_index_space_interval.cc.
References begin(), sheaf::explicit_index_space_handle::contains(), sheaf::index_space_family::end(), end(), sheaf::index_space_family::hub_id_space(), i_size(), sheaf::index_space_interval::id_spaces(), zone_hub_begin(), and ~i_adjacency_index_space_interval().
|
protectedvirtual |
Assignment operator.
Reimplemented from sheaf::index_space_interval.
Definition at line 352 of file i_adjacency_index_space_interval.cc.
References _i_size, _zone_hub_begin, explicit_state(), invariant(), is_ancestor_of(), and sheaf::index_space_interval::operator=().
Referenced by deep_size().
|
virtual |
True if this is equivalent to xother.
Reimplemented from sheaf::index_space_interval.
Definition at line 306 of file i_adjacency_index_space_interval.cc.
References _i_size, _zone_hub_begin, deep_size, is_ancestor_of(), and sheaf::index_space_interval::operator==().
Referenced by clone().
|
virtual |
The pod index in the space with id xlocal_id equivalent to xid in the hub id space.
Implements sheaf::index_space_collection.
Definition at line 571 of file i_adjacency_index_space_interval.cc.
References adjacent_zones(), contains(), sheaf::invalid_pod_index(), sheaf::is_valid(), and unglued_hub_pod().
Referenced by contains().
|
virtual |
The product structure for the id space with id xlocal_id (const version).
Not Implemented.
Implements sheaf::index_space_collection.
Definition at line 716 of file i_adjacency_index_space_interval.cc.
References contains(), and has_product_structure().
Referenced by delete_product_structure().
|
virtual |
The product structure for the id space with id xlocal_id (mutable version).
Not Implemented.
Implements sheaf::index_space_collection.
Definition at line 742 of file i_adjacency_index_space_interval.cc.
References contains(), and has_product_structure().
|
virtual |
Returns the id space handle xid_space to the handle pool.
Implements sheaf::index_space_collection.
Definition at line 826 of file i_adjacency_index_space_interval.cc.
References _handles, allocated_id_space(), and sheaf::index_space_handle::detach().
Referenced by get_id_space().
|
virtual |
Returns the id space iterator xitr to the iterator pool.
Implements sheaf::index_space_collection.
Definition at line 908 of file i_adjacency_index_space_interval.cc.
References _iterators, allocated_id_space_iterator(), and sheaf::index_space_iterator::detach().
Referenced by get_id_space_iterator().
|
virtual |
Remove the id space with id xlocal_id.
Not Implemented.
Implements sheaf::index_space_collection.
Definition at line 410 of file i_adjacency_index_space_interval.cc.
References contains(), and ct().
Referenced by explicit_state().
|
virtual |
The pod index in the unglued_hub id space equivalent to xid in the id space with id xlocal_id.
Implements sheaf::index_space_collection.
Definition at line 606 of file i_adjacency_index_space_interval.cc.
References adjacent_zones(), contains(), contains_unglued_hub(), sheaf::invalid_pod_index(), is_persistent(), and sheaf::is_valid().
Referenced by pod().
fiber_bundle::i_adjacency_index_space_interval::pod_type fiber_bundle::i_adjacency_index_space_interval::zone_hub_begin | ( | ) | const |
The hub id of the beginning of the zone id space.
Definition at line 109 of file i_adjacency_index_space_interval.cc.
Referenced by new_space(), and ~i_adjacency_index_space_interval().
fiber_bundle::i_adjacency_index_space_interval::pod_type fiber_bundle::i_adjacency_index_space_interval::zone_hub_begin | ( | pod_type | xlocal_id | ) | const |
The hub id of the first adjacent zone for id space with id xlocal_id.
Definition at line 126 of file i_adjacency_index_space_interval.cc.
References adjacent_zones().
|
friend |
The deep size of i_adjacency_index_space_interval& xn.
Referenced by fiber_bundle::deep_size(), and operator==().
|
mutableprotected |
The handle pool.
Definition at line 367 of file i_adjacency_index_space_interval.h.
Referenced by allocated_id_space(), fiber_bundle::deep_size(), get_id_space(), and release_id_space().
|
protected |
The number of zones in the i direction.
Definition at line 137 of file i_adjacency_index_space_interval.h.
Referenced by ct(), operator=(), and operator==().
|
mutableprotected |
The iterator pool.
Definition at line 403 of file i_adjacency_index_space_interval.h.
Referenced by allocated_id_space_iterator(), fiber_bundle::deep_size(), get_id_space_iterator(), and release_id_space_iterator().
|
protected |
The hub id of the beginning of the zone id space.
Definition at line 127 of file i_adjacency_index_space_interval.h.
Referenced by operator=(), and operator==().