Rheolef  7.2
an efficient C++ finite element environment
 
Loading...
Searching...
No Matches
vtk_cell_type.cc
Go to the documentation of this file.
1
21//
22// helper for vtk file io
23//
24// author: Pierre.Saramito@imag.fr
25//
26// 29 january 2020
27//
28#include "rheolef/reference_element.h"
29
30#include "vtk_cell_type.h"
31
32namespace rheolef {
33
34size_t vtk_cell_type2variant (size_t vtk_cell_type)
35{
36 switch (vtk_cell_type) {
37 case VTK_VERTEX:
39 case VTK_LINE:
41 case VTK_CUBIC_LINE:
44 case VTK_TRIANGLE:
48 case VTK_QUAD:
52 case VTK_TETRA:
56 case VTK_WEDGE:
60 case VTK_HEXAHEDRON:
64 case VTK_QUADRATIC_QUAD: // incomplete order 2 variants
67 default:
68 error_macro ("unsupported vtk cell type = "<<vtk_cell_type);
69 }
70}
71size_t nv2vtk_cell_type (size_t map_dim, size_t nv)
72{
73 switch (map_dim) {
74 case 0: {
75 return VTK_VERTEX;
76 }
77 case 1: {
78 check_macro(nv == 2, "unexpected 1D vtk cell with "<<nv<<" vertices");
79 return VTK_LINE;
80 }
81 case 2: {
82 check_macro(nv == 3, "unexpected 2D vtk cell with "<<nv<<" vertices");
83 return VTK_TRIANGLE;
84 }
85 default: {
86 error_macro("unexpected "<<map_dim<<"D vtk cell");
87 return 0;
88 }
89 }
90}
91
92}// namespace rheolef
static const variant_type H
static const variant_type e
static const variant_type p
static const variant_type T
static const variant_type P
static const variant_type t
#define error_macro(message)
Definition dis_macros.h:49
check_macro(expr1.have_homogeneous_space(Xh1), "dual(expr1,expr2); expr1 should have homogeneous space. HINT: use dual(interpolate(Xh, expr1),expr2)")
This file is part of Rheolef.
size_t vtk_cell_type2variant(size_t vtk_cell_type)
size_t nv2vtk_cell_type(size_t map_dim, size_t nv)
#define VTK_BIQUADRATIC_QUADRATIC_WEDGE
#define VTK_HEXAHEDRON
#define VTK_CUBIC_LINE
#define VTK_LAGRANGE_QUADRILATERAL
#define VTK_LINE
#define VTK_QUADRATIC_EDGE
#define VTK_LAGRANGE_TETRAHEDRON
#define VTK_QUADRATIC_QUAD
#define VTK_QUADRATIC_HEXAHEDRON
#define VTK_QUADRATIC_TRIANGLE
#define VTK_LAGRANGE_WEDGE
#define VTK_QUAD
#define VTK_QUADRATIC_WEDGE
#define VTK_VERTEX
#define VTK_TRIANGLE
#define VTK_LAGRANGE_CURVE
#define VTK_QUADRATIC_TETRA
#define VTK_WEDGE
#define VTK_LAGRANGE_TRIANGLE
#define VTK_LAGRANGE_HEXAHEDRON
#define VTK_TRIQUADRATIC_HEXAHEDRON
#define VTK_TETRA
#define VTK_BIQUADRATIC_QUAD