DUNE Geometry (2.8)

typefromvertexcount.hh
1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2// vi: set et ts=4 sw=2 sts=2:
3#ifndef DUNE_GEOMETRY_TYPE_FROM_VERTEX_COUNT_HH
4#define DUNE_GEOMETRY_TYPE_FROM_VERTEX_COUNT_HH
5
7
8namespace Dune {
9
14 inline
15 GeometryType geometryTypeFromVertexCount(unsigned int dim, unsigned int vertices)
16 {
17 switch (dim)
18 {
19 case 0 :
20 return GeometryTypes::vertex;
21 case 1 :
22 return GeometryTypes::line;
23 case 2 :
24 switch (vertices) {
25 case 3 :
26 return GeometryTypes::triangle;
27 case 4 :
28 return GeometryTypes::quadrilateral;
29 default :
30 DUNE_THROW(NotImplemented, "2d elements with " << vertices << " corners are not supported!");
31 }
32 case 3 :
33 switch (vertices) {
34 case 4 :
35 return GeometryTypes::tetrahedron;
36 case 5 :
37 return GeometryTypes::pyramid;
38 case 6 :
39 return GeometryTypes::prism;
40 case 8 :
41 return GeometryTypes::hexahedron;
42 default :
43 DUNE_THROW(NotImplemented, "3d elements with " << vertices << " corners are not supported!");
44 }
45 default :
46 DUNE_THROW(NotImplemented, "geometryTypeFromVertexCount works only up to dim=3");
47 }
48 }
49
50}
51
52#endif // DUNE_GEOMETRY_TYPE_FROM_VERTEX_COUNT_HH
A unique label for each type of element that can occur in a grid.
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden & Uni Heidelberg  |  generated with Hugo v0.111.3 (May 28, 22:40, 2026)