DNDSR 0.2.1
Distributed Numeric Data Structure for CFV
Loading...
Searching...
No Matches
CGNS.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "Elements.hpp"
4
5#include <cgnslib.h>
6
7namespace DNDS::Geom
8{
9#define DNDS_CGNS_CALL_EXIT(call) \
10 { \
11 if (call) \
12 cg_error_exit(); \
13 }
14
15 // todo: make these mappings easy to maintain (like, inverted with program)
16 constexpr Elem::ElemType _getElemTypeFromCGNSType(ElementType_t cgns_et)
17 {
18 switch (cgns_et)
19 {
20 case BAR_2:
21 return Elem::Line2;
22 case BAR_3:
23 return Elem::Line3;
24 case TRI_3:
25 return Elem::Tri3;
26 case TRI_6:
27 return Elem::Tri6;
28 case QUAD_4:
29 return Elem::Quad4;
30 case QUAD_9:
31 return Elem::Quad9;
32 case TETRA_4:
33 return Elem::Tet4;
34 case TETRA_10:
35 return Elem::Tet10;
36 case HEXA_8:
37 return Elem::Hex8;
38 case HEXA_27:
39 return Elem::Hex27;
40 case PENTA_6:
41 return Elem::Prism6;
42 case PENTA_18:
43 return Elem::Prism18;
44 case PYRA_5:
45 return Elem::Pyramid5;
46 case PYRA_14:
47 return Elem::Pyramid14;
48 default:
49 return Elem::UnknownElem;
50 }
51 }
52
53 constexpr ElementType_t _getCGNSTypeFromElemType(Elem::ElemType et)
54 {
55 switch (et)
56 {
57 case Elem::Line2:
58 return BAR_2;
59 case Elem::Line3:
60 return BAR_3;
61 case Elem::Tri3:
62 return TRI_3;
63 case Elem::Tri6:
64 return TRI_6;
65 case Elem::Quad4:
66 return QUAD_4;
67 case Elem::Quad9:
68 return QUAD_9;
69 case Elem::Tet4:
70 return TETRA_4;
71 case Elem::Tet10:
72 return TETRA_10;
73 case Elem::Hex8:
74 return HEXA_8;
75 case Elem::Hex27:
76 return HEXA_27;
77 case Elem::Prism6:
78 return PENTA_6;
79 case Elem::Prism18:
80 return PENTA_18;
81 case Elem::Pyramid5:
82 return PYRA_5;
83 case Elem::Pyramid14:
84 return PYRA_14;
85 default:
86 return ElementTypeNull;
87 }
88 }
89
90}
constexpr Elem::ElemType _getElemTypeFromCGNSType(ElementType_t cgns_et)
Definition CGNS.hpp:16
constexpr ElementType_t _getCGNSTypeFromElemType(Elem::ElemType et)
Definition CGNS.hpp:53