shards Version of the Day
Loading...
Searching...
No Matches
Shards_CellTopologyData.h
1// @HEADER
2// *****************************************************************************
3// Shards : Shared Discretization Tools
4//
5// Copyright 2008-2011 NTESS and the Shards contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8// @HEADER
9
10#ifndef Shards_CellTopologyData_h
11#define Shards_CellTopologyData_h
12
13#if defined( __cplusplus )
14extern "C" {
15#endif
16
20
21/*----------------------------------------------------------------------*/
22
23struct CellTopologyData ;
26
43 const struct CellTopologyData * base ;
44
46 const char * name ;
47
49 unsigned key ;
50
52 unsigned dimension ;
53
55 unsigned vertex_count ;
56
61 unsigned node_count ;
62
64 unsigned edge_count ;
65
67 unsigned side_count ;
68
71
73 unsigned subcell_homogeneity[4] ;
74
76 unsigned subcell_count[4] ;
77
85
93
101
119 const struct CellTopologyData_Permutation * permutation_inverse ;
120};
121
132 const struct CellTopologyData * topology ;
133
136 const unsigned * node ;
137};
138
141
159 const unsigned * node ;
160 unsigned polarity ;
161};
162
164enum {
165 CELL_PERMUTATION_POLARITY_IRRELEVANT = 0 ,
166 CELL_PERMUTATION_POLARITY_POSITIVE = 1 ,
167 CELL_PERMUTATION_POLARITY_NEGATIVE = 2
168};
169
173extern
174int mapCellFaceEdge( const CellTopologyData * cell_topology ,
175 unsigned face_ordinal ,
176 unsigned face_edge_ordinal );
177
179
180#if defined( __cplusplus )
181} /* extern "C" */
182#endif
183
184#endif /* Shards_CellTopologyData_h */
int mapCellFaceEdge(const CellTopologyData *cell_topology, unsigned face_ordinal, unsigned face_edge_ordinal)
Map a cell->face->edge ordinal to the cell->edge ordinal. Return -1 for erroneous input.
Array of node permutations.
const struct CellTopologyData * topology
Subcell topology.
const unsigned * node
Subcell indexing of with respect to parent cell.
A simple 'C' struct of cell topology attributes.
const char * name
Intuitive name for this topology.
unsigned node_count
Number of nodes (a.k.a. subcells).
const struct CellTopologyData_Subcell * edge
Array of edges subcells of length edge_count.
unsigned side_count
Number of sides (a.k.a. boundary subcells).
const struct CellTopologyData_Subcell * side
Array of side subcells of length side_count.
const struct CellTopologyData * base
Base, a.k.a. not-extended, version of this topology where vertex_count == node_count.
unsigned key
Unique key for this topology.
unsigned edge_count
Number of edges (a.k.a. boundary subcells).
unsigned vertex_count
Number of vertices.
unsigned permutation_count
Number of defined permutations.
unsigned subcell_homogeneity[4]
Flag if the subcells of a given dimension are homogeneous.
const struct CellTopologyData_Subcell * subcell[4]
Array of subcells of each dimension.
const struct CellTopologyData_Permutation * permutation
Array of node permutations.
unsigned dimension
Topological dimension.
unsigned subcell_count[4]
Number of subcells of each dimension.