shards  Version of the Day
 All Classes Functions Variables Typedefs Enumerations Enumerator Groups
CellTopologyData Struct Reference

A simple 'C' struct of cell topology attributes. More...

#include <Shards_CellTopologyData.h>

Inherited by shards::CellTopologyManagedData.

Public Attributes

struct CellTopologyDatabase
 Base, a.k.a. not-extended, version of this topology where vertex_count == node_count.
 
const char * name
 Intuitive name for this topology.
 
unsigned key
 Unique key for this topology.
 
unsigned dimension
 Topological dimension.
 
unsigned vertex_count
 Number of vertices.
 
unsigned node_count
 Number of nodes (a.k.a. $ {Cell}^{0} $ subcells). More...
 
unsigned edge_count
 Number of edges (a.k.a. $ {Cell}^{1} $ boundary subcells).
 
unsigned side_count
 Number of sides (a.k.a. $ {Cell}^{D-1} $ boundary subcells).
 
unsigned permutation_count
 Number of defined permutations.
 
unsigned subcell_homogeneity [4]
 Flag if the subcells of a given dimension are homogeneous.
 
unsigned subcell_count [4]
 Number of subcells of each dimension.
 
struct CellTopologyData_Subcellsubcell [4]
 Array of subcells of each dimension. More...
 
struct CellTopologyData_Subcellside
 Array of side subcells of length side_count. More...
 
struct CellTopologyData_Subcelledge
 Array of edges subcells of length edge_count. More...
 
struct
CellTopologyData_Permutation
permutation
 Array of node permutations. More...
 
struct
CellTopologyData_Permutation
permutation_inverse
 

Detailed Description

A simple 'C' struct of cell topology attributes.

The topology may be extended such that the number of nodes (subcells of dimension zero) is greater than the number of vertices. In this case the vertices must be ordered first.

Nodes, edges, and sides are subcells with a particular dimension. A cell has edges and sides only if its dimension is greater than one.

  • node has Dim == 0
  • edge has Dim == 1
  • side has Dim == dimension - 1.

Definition at line 75 of file Shards_CellTopologyData.h.

Member Data Documentation

unsigned CellTopologyData::node_count

Number of nodes (a.k.a. $ {Cell}^{0} $ subcells).

A topology is extended if node_count > vertex_count

Definition at line 97 of file Shards_CellTopologyData.h.

struct CellTopologyData_Subcell* CellTopologyData::subcell[4]

Array of subcells of each dimension.

The length of each subcell array is subcell_count[Dim]

  • subcell[Dim][Ord].topology topology of the subcell
  • subcell[Dim][Ord].node[I] node ordinal of the subcell's node I

Definition at line 120 of file Shards_CellTopologyData.h.

struct CellTopologyData_Subcell* CellTopologyData::side

Array of side subcells of length side_count.

The length of the side array is side_count

  • side[Ord].topology topology of the side
  • side[Ord].node[I] node ordinal of the side's node I

Definition at line 128 of file Shards_CellTopologyData.h.

struct CellTopologyData_Subcell* CellTopologyData::edge

Array of edges subcells of length edge_count.

The length of the edge array is edge_count

  • edge[Ord].topology topology of the edge
  • edge[Ord].node[I] node ordinal of the edge's node I

Definition at line 136 of file Shards_CellTopologyData.h.

struct CellTopologyData_Permutation* CellTopologyData::permutation

Array of node permutations.

  • required: 0 <= P < permutation_count
  • required: 0 <= I < node_count

Let ParentCell be dimension D and SubCell be dimension dim < D. Let SubCell be connected as subcell Ord with permutation P.

Then ParentCell.node(K) == SubCell.node(I) where:

  • SubCellTopology == ParentCellTopology->subcell[dim][Ord].topology
  • K = ParentCellTopology->subcell[dim][Ord].node[IP]
  • IP = SubCellTopology->permutation[P].node[I]
  • I = SubCellTopology->permutation_inverse[P].node[IP]

The permutation map for P == 0 is required to be identity.

Definition at line 154 of file Shards_CellTopologyData.h.


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