t8  1.2.0
t8code is a C library to manage a forest of adaptive space-trees of general element classes in parallel.
t8_element_shape.h
Go to the documentation of this file.
1 /*
2  This file is part of t8code.
3  t8code is a C library to manage a collection (a forest) of multiple
4  connected adaptive space-trees of general element classes in parallel.
5 
6  Copyright (C) 2015 the developers
7 
8  t8code is free software; you can redistribute it and/or modify
9  it under the terms of the GNU General Public License as published by
10  the Free Software Foundation; either version 2 of the License, or
11  (at your option) any later version.
12 
13  t8code is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License
19  along with t8code; if not, write to the Free Software Foundation, Inc.,
20  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21 */
22 
27 #ifndef T8_ELEMENT_SHAPE_H
28 #define T8_ELEMENT_SHAPE_H
29 
30 #include <t8.h>
31 #include <t8_eclass.h>
32 
33 T8_EXTERN_C_BEGIN ();
34 
39 
41 #define T8_MPI_ELEMENT_SHAPE_TYPE (T8_ASSERT (sizeof (int) == sizeof (t8_element_shape_t)),\
42  sc_MPI_INT)
43 
45 #define T8_ELEMENT_SHAPE_MAX_FACES 6
47 #define T8_ELEMENT_SHAPE_MAX_CORNERS 8
48 
49 /* Maximum possible number of corner nodes of an element in a specific dimension */
50 extern const int t8_element_shape_max_num_corner[T8_ECLASS_MAX_DIM + 1];
51 
53 int t8_element_shape_num_faces (int element_shape);
54 
56 int t8_element_shape_max_num_faces (int element_shape);
57 
59 int t8_element_shape_num_vertices (int element_shape);
60 
62 int t8_element_shape_vtk_type (int element_shape);
63 
65 int t8_element_shape_vtk_corner_number (int element_shape,
66  int index);
67 
69 const char *t8_element_shape_to_string (int element_shape);
70 
81  element_shape1,
83  element_shape2);
84 
85 T8_EXTERN_C_END ();
86 
87 #endif /* !T8_ELEMENT_SHAPE_H */
This is the administrative header file for t8code.
We define all possible element classes that occur in hybrid meshes.
enum t8_eclass t8_eclass_t
This enumeration contains all possible element classes.
#define T8_ECLASS_MAX_DIM
The maximal possible dimension for an eclass.
Definition: t8_eclass.h:80
int t8_element_shape_num_vertices(int element_shape)
The number of vertices of an element class.
Definition: t8_element_shape.c:44
int t8_element_shape_compare(t8_element_shape_t element_shape1, t8_element_shape_t element_shape2)
Compare two element_shapees of the same dimension as necessary for face neighbor orientation.
Definition: t8_element_shape.c:72
int t8_element_shape_num_faces(int element_shape)
The number of codimension-one boundaries of an element class.
Definition: t8_element_shape.c:30
int t8_element_shape_vtk_corner_number(int element_shape, int index)
Maps the t8code corner number of the element to the vtk corner number.
Definition: t8_element_shape.c:58
const char * t8_element_shape_to_string(int element_shape)
For each element_shape, the name of this class as a string.
Definition: t8_element_shape.c:65
int t8_element_shape_vtk_type(int element_shape)
The vtk cell type for the element_shape.
Definition: t8_element_shape.c:51
t8_eclass_t t8_element_shape_t
Type definition for the geometric shape of an element.
Definition: t8_element_shape.h:38
int t8_element_shape_max_num_faces(int element_shape)
For each dimension the maximum possible number of faces of an element_shape of that dimension.
Definition: t8_element_shape.c:37