SheafSystem  0.0.0.0
fiber_bundle::block_adjacency Class Reference

Node to zone adjacency relation for a block of zones of a given type. More...

#include <block_adjacency.h>

Inheritance diagram for fiber_bundle::block_adjacency:
fiber_bundle::block_relation sheaf::any

Public Types

typedef std::map< pod_index_type, singly_linked_list< pod_index_type > > adj_type
 The type of the adjacency relation. More...
 
typedef adj_type::iterator node_iterator_type
 Type of iterator for nodes. More...
 
typedef adj_type::const_iterator const_node_iterator_type
 Type of const iterator for nodes. More...
 
typedef adj_type::mapped_type::iterator zone_iterator_type
 Type of iterator for zones. More...
 
typedef adj_type::mapped_type::const_iterator const_zone_iterator_type
 Type of const iterator for zones. More...
 
- Public Types inherited from fiber_bundle::block_relation
enum  cell_type {
  POINT, LINE, QUAD, TRIANGLE,
  HEX, TETRA, CELL_TYPE_END
}
 Cell types. More...
 

Public Member Functions

 block_adjacency ()
 Default constructor. More...
 
 block_adjacency (const block_adjacency &xother)
 Copy constructor. More...
 
 block_adjacency (const block_connectivity &xconn)
 Creates an instance which is the transpose of connectivty xconn. More...
 
 block_adjacency (size_type xzone_ct, size_type xnodes_per_zone, size_type xnode_ids_ct, const pod_index_type *xnode_ids, cell_type xelement_type=CELL_TYPE_END)
 Creates an instance which is transpose of the connectivity in xnode_ids, wit element_type() == xelement_type. More...
 
virtual ~block_adjacency ()
 Destructor. More...
 
void put_connectivity (const block_connectivity &xconn)
 Makes this the transpose of connectivity xconn. More...
 
void put_connectivity (size_type xzone_ct, size_type xnodes_per_zone, size_type xnode_ids_ct, const pod_index_type *xnode_ids)
 Makes this the transpose of connectivity xconn. More...
 
block_adjacencyoperator= (const block_connectivity &xconn)
 Makes this the transpose of connectivity xconn; synonym for put_connectivity(xconn). More...
 
node_iterator_type begin ()
 Beginning of adjacency relation. More...
 
const_node_iterator_type begin () const
 Beginning of adjacency relation; const version. More...
 
node_iterator_type end ()
 End of adjacency relation. More...
 
const_node_iterator_type end () const
 End of adjacency relation; const version. More...
 
size_type node_ct () const
 The number of distinct nodes. More...
 
size_type zone_ct () const
 The number of distinct zones. More...
 
virtual cell_type element_type () const
 The element type. More...
 
virtual bool is_ancestor_of (const any *other) const
 Conformance test; true if other conforms to this. More...
 
virtual block_adjacencyclone () const
 Virtual constructor, makes a new instance of the same type as this. More...
 
block_adjacencyoperator= (const block_adjacency &xother)
 Assignment operator. More...
 
virtual bool invariant () const
 Class invariant. More...
 
- Public Member Functions inherited from fiber_bundle::block_relation
 block_relation ()
 Default constructor. More...
 
virtual ~block_relation ()
 Destructor. 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...
 

Protected Attributes

adj_type _adj
 Storage for the adjcency relation. More...
 
size_type _node_ct
 The number of distinct nodes. More...
 
size_type _zone_ct
 The number of distinct zones. More...
 
cell_type _element_type
 The element type. More...
 

Additional Inherited Members

- Protected Member Functions inherited from sheaf::any
 any ()
 default constructor More...
 

Detailed Description

Node to zone adjacency relation for a block of zones of a given type.

Definition at line 48 of file block_adjacency.h.

Member Typedef Documentation

◆ adj_type

The type of the adjacency relation.

Definition at line 60 of file block_adjacency.h.

◆ const_node_iterator_type

Type of const iterator for nodes.

Definition at line 70 of file block_adjacency.h.

◆ const_zone_iterator_type

typedef adj_type::mapped_type::const_iterator fiber_bundle::block_adjacency::const_zone_iterator_type

Type of const iterator for zones.

Definition at line 80 of file block_adjacency.h.

◆ node_iterator_type

Type of iterator for nodes.

Definition at line 65 of file block_adjacency.h.

◆ zone_iterator_type

typedef adj_type::mapped_type::iterator fiber_bundle::block_adjacency::zone_iterator_type

Type of iterator for zones.

Definition at line 75 of file block_adjacency.h.

Constructor & Destructor Documentation

◆ block_adjacency() [1/4]

fiber_bundle::block_adjacency::block_adjacency ( )

Default constructor.

Postcondition

Definition at line 35 of file block_adjacency.cc.

Referenced by block_adjacency().

◆ block_adjacency() [2/4]

fiber_bundle::block_adjacency::block_adjacency ( const block_adjacency xother)

Copy constructor.

Postcondition

Definition at line 60 of file block_adjacency.cc.

References _adj, _element_type, _node_ct, _zone_ct, and block_adjacency().

◆ block_adjacency() [3/4]

fiber_bundle::block_adjacency::block_adjacency ( const block_connectivity xconn)

Creates an instance which is the transpose of connectivty xconn.

Definition at line 84 of file block_adjacency.cc.

References block_adjacency().

◆ block_adjacency() [4/4]

fiber_bundle::block_adjacency::block_adjacency ( size_type  xzone_ct,
size_type  xnodes_per_zone,
size_type  xnode_ids_ct,
const pod_index_type xnode_ids,
cell_type  xelement_type = CELL_TYPE_END 
)

Creates an instance which is transpose of the connectivity in xnode_ids, wit element_type() == xelement_type.

Precondition
  • xnode_ids_ct == xzone_ct*xnodes_per_zone
Postcondition

Definition at line 104 of file block_adjacency.cc.

References ~block_adjacency().

◆ ~block_adjacency()

fiber_bundle::block_adjacency::~block_adjacency ( )
virtual

Destructor.

Definition at line 132 of file block_adjacency.cc.

References put_connectivity().

Referenced by block_adjacency().

Member Function Documentation

◆ begin() [1/2]

◆ begin() [2/2]

fiber_bundle::block_adjacency::const_node_iterator_type fiber_bundle::block_adjacency::begin ( ) const

Beginning of adjacency relation; const version.

Definition at line 261 of file block_adjacency.cc.

References end().

◆ clone()

fiber_bundle::block_adjacency * fiber_bundle::block_adjacency::clone ( ) const
virtual

Virtual constructor, makes a new instance of the same type as this.

Postcondition
  • result != 0
  • is_same_type(result)

Implements fiber_bundle::block_relation.

Definition at line 340 of file block_adjacency.cc.

References operator=().

Referenced by is_ancestor_of().

◆ element_type()

fiber_bundle::block_relation::cell_type fiber_bundle::block_adjacency::element_type ( ) const
virtual

The element type.

Implements fiber_bundle::block_relation.

Definition at line 306 of file block_adjacency.cc.

References is_ancestor_of().

Referenced by zone_ct().

◆ end() [1/2]

◆ end() [2/2]

fiber_bundle::block_adjacency::const_node_iterator_type fiber_bundle::block_adjacency::end ( ) const

End of adjacency relation; const version.

Definition at line 277 of file block_adjacency.cc.

References node_ct().

◆ invariant()

bool fiber_bundle::block_adjacency::invariant ( ) const
virtual

Class invariant.

Invariant

Reimplemented from fiber_bundle::block_relation.

Definition at line 386 of file block_adjacency.cc.

References fiber_bundle::operator<<().

Referenced by operator=().

◆ is_ancestor_of()

bool fiber_bundle::block_adjacency::is_ancestor_of ( const any other) const
virtual

Conformance test; true if other conforms to this.

Precondition
  • other != 0

Reimplemented from fiber_bundle::block_relation.

Definition at line 319 of file block_adjacency.cc.

References clone().

Referenced by element_type().

◆ node_ct()

sheaf::size_type fiber_bundle::block_adjacency::node_ct ( ) const

◆ operator=() [1/2]

fiber_bundle::block_adjacency & fiber_bundle::block_adjacency::operator= ( const block_connectivity xconn)

Makes this the transpose of connectivity xconn; synonym for put_connectivity(xconn).

Definition at line 233 of file block_adjacency.cc.

References begin().

Referenced by clone(), and put_connectivity().

◆ operator=() [2/2]

fiber_bundle::block_adjacency & fiber_bundle::block_adjacency::operator= ( const block_adjacency xother)

Assignment operator.

Not Implemented.

Postcondition

Definition at line 364 of file block_adjacency.cc.

References invariant().

◆ put_connectivity() [1/2]

void fiber_bundle::block_adjacency::put_connectivity ( const block_connectivity xconn)

◆ put_connectivity() [2/2]

void fiber_bundle::block_adjacency::put_connectivity ( size_type  xzone_ct,
size_type  xnodes_per_zone,
size_type  xnode_ids_ct,
const pod_index_type xnode_ids 
)

Makes this the transpose of connectivity xconn.

Precondition
  • xnode_ids_ct == xzone_ct*xnodes_per_zone
Postcondition

Definition at line 180 of file block_adjacency.cc.

References operator=().

◆ zone_ct()

sheaf::size_type fiber_bundle::block_adjacency::zone_ct ( ) const

The number of distinct zones.

Definition at line 293 of file block_adjacency.cc.

References element_type().

Referenced by fiber_bundle::zone_nodes_block_crg_interval::initialize_vertex_client_id_space(), and node_ct().

Member Data Documentation

◆ _adj

adj_type fiber_bundle::block_adjacency::_adj
protected

Storage for the adjcency relation.

Definition at line 170 of file block_adjacency.h.

Referenced by block_adjacency().

◆ _element_type

cell_type fiber_bundle::block_adjacency::_element_type
protected

The element type.

Definition at line 201 of file block_adjacency.h.

Referenced by block_adjacency().

◆ _node_ct

size_type fiber_bundle::block_adjacency::_node_ct
protected

The number of distinct nodes.

Definition at line 175 of file block_adjacency.h.

Referenced by block_adjacency().

◆ _zone_ct

size_type fiber_bundle::block_adjacency::_zone_ct
protected

The number of distinct zones.

Definition at line 180 of file block_adjacency.h.

Referenced by block_adjacency().


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