dune-geometry  2.11
typefromvertexcount.hh
Go to the documentation of this file.
1 // -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 // vi: set et ts=4 sw=2 sts=2:
3 // SPDX-FileCopyrightInfo: Copyright © DUNE Project contributors, see file LICENSE.md in module root
4 // SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
5 #ifndef DUNE_GEOMETRY_TYPE_FROM_VERTEX_COUNT_HH
6 #define DUNE_GEOMETRY_TYPE_FROM_VERTEX_COUNT_HH
7 
8 #include <dune/geometry/type.hh>
9 
10 namespace Dune {
11 
16  inline
17  GeometryType geometryTypeFromVertexCount(unsigned int dim, unsigned int vertices)
18  {
19  switch (dim)
20  {
21  case 0 :
22  return GeometryTypes::vertex;
23  case 1 :
24  return GeometryTypes::line;
25  case 2 :
26  switch (vertices) {
27  case 3 :
29  case 4 :
31  default :
32  DUNE_THROW(NotImplemented, "2d elements with " << vertices << " corners are not supported!");
33  }
34  case 3 :
35  switch (vertices) {
36  case 4 :
38  case 5 :
40  case 6 :
41  return GeometryTypes::prism;
42  case 8 :
44  default :
45  DUNE_THROW(NotImplemented, "3d elements with " << vertices << " corners are not supported!");
46  }
47  default :
48  DUNE_THROW(NotImplemented, "geometryTypeFromVertexCount works only up to dim=3");
49  }
50  }
51 
52 }
53 
54 #endif // DUNE_GEOMETRY_TYPE_FROM_VERTEX_COUNT_HH
constexpr GeometryType hexahedron
GeometryType representing a hexahedron.
Definition: type.hh:534
constexpr GeometryType pyramid
GeometryType representing a 3D pyramid.
Definition: type.hh:522
A unique label for each type of element that can occur in a grid.
constexpr GeometryType vertex
GeometryType representing a vertex.
Definition: type.hh:492
Unique label for each type of entities that can occur in DUNE grids.
Definition: type.hh:113
constexpr GeometryType prism
GeometryType representing a 3D prism.
Definition: type.hh:528
constexpr GeometryType tetrahedron
GeometryType representing a tetrahedron.
Definition: type.hh:516
constexpr GeometryType triangle
GeometryType representing a triangle.
Definition: type.hh:504
GeometryType geometryTypeFromVertexCount(unsigned int dim, unsigned int vertices)
Utility function to construct the correct geometry type given the dimension and the number of vertice...
Definition: typefromvertexcount.hh:17
Definition: affinegeometry.hh:21
constexpr GeometryType quadrilateral
GeometryType representing a quadrilateral (a square).
Definition: type.hh:510
constexpr GeometryType line
GeometryType representing a line.
Definition: type.hh:498