DNDSR 0.1.0.dev1+gcd065ad
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) {if (call) cg_error_exit();}
10
11 // todo: make these mappings easy to maintain (like, inverted with program)
12 inline constexpr Elem::ElemType __getElemTypeFromCGNSType(ElementType_t cgns_et)
13 {
14 switch (cgns_et)
15 {
16 case BAR_2:
17 return Elem::Line2;
18 case BAR_3:
19 return Elem::Line3;
20 case TRI_3:
21 return Elem::Tri3;
22 case TRI_6:
23 case QUAD_4:
24 return Elem::Quad4;
25 case QUAD_9:
26 return Elem::Quad9;
27 case TETRA_4:
28 return Elem::Tet4;
29 case TETRA_10:
30 return Elem::Tet10;
31 case HEXA_8:
32 return Elem::Hex8;
33 case HEXA_27:
34 return Elem::Hex27;
35 case PENTA_6:
36 return Elem::Prism6;
37 case PENTA_18:
38 return Elem::Prism18;
39 case PYRA_5:
40 return Elem::Pyramid5;
41 case PYRA_14:
42 return Elem::Pyramid14;
43 default:
44 return Elem::UnknownElem;
45 }
46 }
47
48 inline constexpr ElementType_t __getCGNSTypeFromElemType(Elem::ElemType et)
49 {
50 switch (et)
51 {
52 case Elem::Line2:
53 return BAR_2;
54 case Elem::Line3:
55 return BAR_3;
56 case Elem::Tri3:
57 return TRI_3;
58 case Elem::Tri6:
59 return TRI_6;
60 case Elem::Quad4:
61 return QUAD_4;
62 case Elem::Quad9:
63 return QUAD_9;
64 case Elem::Tet4:
65 return TETRA_4;
66 case Elem::Tet10:
67 return TETRA_10;
68 case Elem::Hex8:
69 return HEXA_8;
70 case Elem::Hex27:
71 return HEXA_27;
72 case Elem::Prism6:
73 return PENTA_6;
74 case Elem::Prism18:
75 return PENTA_18;
76 case Elem::Pyramid5:
77 return PYRA_5;
78 case Elem::Pyramid14:
79 return PYRA_14;
80 default:
81 return ElementTypeNull;
82 }
83 }
84
85}
constexpr Elem::ElemType __getElemTypeFromCGNSType(ElementType_t cgns_et)
Definition CGNS.hpp:12
constexpr ElementType_t __getCGNSTypeFromElemType(Elem::ElemType et)
Definition CGNS.hpp:48