t8
1.2.0
t8code is a C library to manage a forest of adaptive space-trees of general element classes in parallel.
|
We define all possible element classes that occur in hybrid meshes. More...
#include <t8.h>
Go to the source code of this file.
Macros | |
#define | T8_MPI_ECLASS_TYPE |
The MPI datatype used for t8_eclass_t. More... | |
#define | T8_ECLASS_MAX_FACES 6 |
The maximum number of boundary faces an element class can have. | |
#define | T8_ECLASS_MAX_EDGES 12 |
The maximum number of boundary edges an element class can have. | |
#define | T8_ECLASS_MAX_EDGES_2D 4 |
The maximum number of boundary edges a 2D element class can have. | |
#define | T8_ECLASS_MAX_CORNERS_2D 4 |
The maximum number of cornes a 2-dimensional element class can have. | |
#define | T8_ECLASS_MAX_CORNERS 8 |
The maximum number of cornes an element class can have. | |
#define | T8_ECLASS_MAX_DIM 3 |
The maximal possible dimension for an eclass. | |
Typedefs | |
typedef enum t8_eclass | t8_eclass_t |
This enumeration contains all possible element classes. | |
Enumerations | |
enum | t8_eclass { T8_ECLASS_ZERO = 0 , T8_ECLASS_VERTEX = T8_ECLASS_ZERO , T8_ECLASS_LINE , T8_ECLASS_QUAD , T8_ECLASS_TRIANGLE , T8_ECLASS_HEX , T8_ECLASS_TET , T8_ECLASS_PRISM , T8_ECLASS_PYRAMID , T8_ECLASS_COUNT , T8_ECLASS_INVALID } |
This enumeration contains all possible element classes. More... | |
Functions | |
int | t8_eclass_count_boundary (t8_eclass_t theclass, int min_dim, int *per_eclass) |
Query the element class and count of boundary points. More... | |
int | t8_eclass_compare (t8_eclass_t eclass1, t8_eclass_t eclass2) |
Compare two eclasses of the same dimension as necessary for face neighbor orientation. More... | |
int | t8_eclass_is_valid (t8_eclass_t eclass) |
Check whether a class is a valid class. More... | |
Variables | |
const int | t8_eclass_to_dimension [T8_ECLASS_COUNT] |
Map each of the element classes to its dimension. | |
const int | t8_eclass_num_faces [T8_ECLASS_COUNT] |
The number of codimension-one boundaries of an element class. | |
const int | t8_eclass_max_num_faces [T8_ECLASS_MAX_DIM+1] |
For each dimension the maximum possible number of faces of an eclass of that dimension. | |
const int | t8_face_vertex_to_tree_vertex [T8_ECLASS_COUNT][T8_ECLASS_MAX_FACES][T8_ECLASS_MAX_CORNERS_2D] |
For each eclass and each face f the entry i gives the vertex number of f's i-th vertex within all vertices of the tree. | |
const int | t8_face_edge_to_tree_edge_n [T8_ECLASS_COUNT][T8_ECLASS_MAX_FACES][T8_ECLASS_MAX_EDGES_2D] |
For each eclass and each face f the entry i gives the edge number of f's i-th edge within all edges of the tree. | |
const int | t8_face_to_edge_neighbor [T8_ECLASS_COUNT][T8_ECLASS_MAX_FACES][T8_ECLASS_MAX_CORNERS_2D] |
For each eclass, each face f and the face vertex v, we get the edge number of the tree which is incident to vertex v but not part of f. | |
const int | t8_edge_vertex_to_tree_vertex_n [T8_ECLASS_COUNT][T8_ECLASS_MAX_EDGES][2] |
For each eclass and each edge e the entry i gives the vertex number of e's i-th vertex within all vertices of the tree. | |
const int | t8_edge_to_face_n [T8_ECLASS_COUNT][T8_ECLASS_MAX_EDGES][2] |
For each eclass and each edge e the entry i gives the face number of e's i-th incident face within all faces of the tree. | |
const int | t8_eclass_face_orientation [T8_ECLASS_COUNT][T8_ECLASS_MAX_FACES] |
Each face is either 0 or 1 oriented, depending on the order of its vertices. More... | |
const int | t8_eclass_num_vertices [T8_ECLASS_COUNT] |
The number of vertices of an element class. | |
const int | t8_eclass_num_edges [T8_ECLASS_COUNT] |
The number of edges of an element class. | |
const int | t8_eclass_vtk_type [T8_ECLASS_COUNT] |
The vtk cell type for the eclass. | |
const int | t8_eclass_vtk_corner_number [T8_ECLASS_COUNT][T8_ECLASS_MAX_CORNERS] |
Map the t8code corner number to the vtk corner number. | |
const int | t8_eclass_face_types [T8_ECLASS_COUNT][T8_ECLASS_MAX_FACES] |
For each of the element classes, list the type of the faces. | |
const int | t8_eclass_boundary_count [T8_ECLASS_COUNT][T8_ECLASS_COUNT] |
For each of the element classes, count the boundary points. | |
const char * | t8_eclass_to_string [T8_ECLASS_COUNT] |
For each eclass, the name of this class as a string. | |
We define all possible element classes that occur in hybrid meshes.
Notable examples are triangles, tetrahedra, quadrilaterals and hexahedra. We cover all dimensions between zero and three, so it is in principal possible to build a topological complex out of these element classes.
#define T8_MPI_ECLASS_TYPE |
The MPI datatype used for t8_eclass_t.
enum t8_eclass |
This enumeration contains all possible element classes.
int t8_eclass_compare | ( | t8_eclass_t | eclass1, |
t8_eclass_t | eclass2 | ||
) |
Compare two eclasses of the same dimension as necessary for face neighbor orientation.
The implemented order is Triangle < Square in 2D and Tet < Hex < Prism < Pyramid in 3D.
[in] | eclass1 | The first eclass to compare. |
[in] | eclass2 | The second eclass to compare. |
int t8_eclass_count_boundary | ( | t8_eclass_t | theclass, |
int | min_dim, | ||
int * | per_eclass | ||
) |
Query the element class and count of boundary points.
[in] | theclass | We query a point of this element class. |
[in] | min_dim | Ignore boundary points of lesser dimension. The ignored points get a count value of 0. |
[out] | per_eclass | Array of length T8_ECLASS_COUNT to be filled with the count of the boundary objects, counted per each of the element classes. |
int t8_eclass_is_valid | ( | t8_eclass_t | eclass | ) |
Check whether a class is a valid class.
Returns non-zero if it is a valid class, returns zero, if the class is equal to T8_ECLASS_INVALID.
[in] | eclass | The eclass to check. |
|
extern |
Each face is either 0 or 1 oriented, depending on the order of its vertices.
We say a face is 0 oriented, if its normal vector points inwards, 1 oriented otherwise. The normal vector is computed as the cross product of v_1 - v_0 and v_2 - v_0. v_i being the i-th vertex. The faces of an eclass of dimension 2 or lower are all 0 oriented.