shards Version of the Day
Loading...
Searching...
No Matches

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

#include <Shards_CellTopologyData.h>

Inherited by shards::CellTopologyManagedData.

Public Attributes

const 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).
 
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.
 
const struct CellTopologyData_Subcellsubcell [4]
 Array of subcells of each dimension.
 
const struct CellTopologyData_Subcellside
 Array of side subcells of length side_count.
 
const struct CellTopologyData_Subcelledge
 Array of edges subcells of length edge_count.
 
const struct CellTopologyData_Permutationpermutation
 Array of node permutations.
 
const struct CellTopologyData_Permutationpermutation_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

◆ base

const struct CellTopologyData* CellTopologyData::base

Base, a.k.a. not-extended, version of this topology where vertex_count == node_count.

Definition at line 79 of file Shards_CellTopologyData.h.

◆ name

const char* CellTopologyData::name

Intuitive name for this topology.

Definition at line 82 of file Shards_CellTopologyData.h.

◆ key

unsigned CellTopologyData::key

Unique key for this topology.

Definition at line 85 of file Shards_CellTopologyData.h.

◆ dimension

unsigned CellTopologyData::dimension

Topological dimension.

Definition at line 88 of file Shards_CellTopologyData.h.

◆ vertex_count

unsigned CellTopologyData::vertex_count

Number of vertices.

Definition at line 91 of file Shards_CellTopologyData.h.

◆ node_count

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.

◆ edge_count

unsigned CellTopologyData::edge_count

Number of edges (a.k.a. $ {Cell}^{1} $ boundary subcells).

Definition at line 100 of file Shards_CellTopologyData.h.

◆ side_count

unsigned CellTopologyData::side_count

Number of sides (a.k.a. $ {Cell}^{D-1} $ boundary subcells).

Definition at line 103 of file Shards_CellTopologyData.h.

◆ permutation_count

unsigned CellTopologyData::permutation_count

Number of defined permutations.

Definition at line 106 of file Shards_CellTopologyData.h.

◆ subcell_homogeneity

unsigned CellTopologyData::subcell_homogeneity[4]

Flag if the subcells of a given dimension are homogeneous.

Definition at line 109 of file Shards_CellTopologyData.h.

◆ subcell_count

unsigned CellTopologyData::subcell_count[4]

Number of subcells of each dimension.

Definition at line 112 of file Shards_CellTopologyData.h.

◆ subcell

const 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.

◆ side

const 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.

◆ edge

const 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.

◆ permutation

const 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.

◆ permutation_inverse

const struct CellTopologyData_Permutation* CellTopologyData::permutation_inverse

Definition at line 155 of file Shards_CellTopologyData.h.


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