OGS
TetRule4.h
Go to the documentation of this file.
1
11#pragma once
12
13#include "EdgeReturn.h"
14#include "Element.h"
15#include "TetRule.h"
16
17namespace MeshLib
18{
19
41class TetRule4 : public TetRule
42{
43public:
45 static const unsigned n_all_nodes = 4u;
46
49
51 constexpr static const unsigned face_nodes[4][3] = {
52 {0, 2, 1}, // Face 0
53 {0, 1, 3}, // Face 1
54 {1, 2, 3}, // Face 2
55 {2, 0, 3} // Face 3
56 };
57
59 constexpr static const unsigned edge_nodes[6][2] = {
60 {0, 1}, // Edge 0
61 {1, 2}, // Edge 1
62 {0, 2}, // Edge 2
63 {0, 3}, // Edge 3
64 {1, 3}, // Edge 4
65 {2, 3} // Edge 5
66 };
67
70
72 static const Element* getFace(const Element* e, unsigned i);
73
75 static unsigned identifyFace(Node const* const* element_nodes,
76 Node const* nodes[3])
77 {
78 return CellRule::identifyFace<TetRule4>(element_nodes, nodes);
79 }
80}; /* class */
81
82} // namespace MeshLib
Definition of the Element class.
static unsigned identifyFace(Node const *const *element_nodes, Node const *nodes[ElementRule::dimension])
Returns the ID of a face given an array of nodes.
Definition CellRule.h:39
Returns linear order edge.
Definition EdgeReturn.h:31
static constexpr const unsigned face_nodes[4][3]
Constant: Local node index table for faces.
Definition TetRule4.h:51
static const CellType cell_type
Constant: The FEM type of the element.
Definition TetRule4.h:48
static unsigned identifyFace(Node const *const *element_nodes, Node const *nodes[3])
Returns the ID of a face given an array of nodes.
Definition TetRule4.h:75
static const Element * getFace(const Element *e, unsigned i)
Returns the i-th face of the element.
Definition TetRule4.cpp:21
static constexpr const unsigned edge_nodes[6][2]
Constant: Local node index table for edge.
Definition TetRule4.h:59
static const unsigned n_all_nodes
Constant: The number of all nodes for this element.
Definition TetRule4.h:45
CellType
Types of mesh elements supported by OpenGeoSys.
Definition MeshEnums.h:64