OGS
PrismRule15.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
4#pragma once
5
6#include "EdgeReturn.h"
7#include "Element.h"
8#include "PrismRule.h"
9
10namespace MeshLib
11{
12
37class PrismRule15 : public PrismRule
38{
39public:
41 static const unsigned n_all_nodes = 15u;
42
45
47 constexpr static const unsigned face_nodes[5][8] = {
48 {0, 2, 1, 8, 7, 6, 99, 99}, // Face 0
49 {0, 1, 4, 3, 6, 13, 9, 12}, // Face 1
50 {1, 2, 5, 4, 7, 14, 10, 13}, // Face 2
51 {2, 0, 3, 5, 8, 12, 11, 14}, // Face 3
52 {3, 4, 5, 9, 10, 11, 99, 99} // Face 4
53 };
54
56 constexpr static const unsigned edge_nodes[9][3] = {
57 {0, 1, 6}, // Edge 0
58 {1, 2, 7}, // Edge 1
59 {0, 2, 8}, // Edge 2
60 {0, 3, 12}, // Edge 3
61 {1, 4, 13}, // Edge 4
62 {2, 5, 14}, // Edge 5
63 {3, 4, 9}, // Edge 6
64 {4, 5, 10}, // Edge 7
65 {3, 5, 11} // Edge 8
66 };
67
69 static const unsigned n_face_nodes[5];
70
73
75 static const Element* getFace(const Element* e, unsigned i);
76
78 static unsigned identifyFace(Node const* const* element_nodes,
79 Node const* nodes[3])
80 {
81 return CellRule::identifyFace<PrismRule15>(element_nodes, nodes);
82 }
83}; /* class */
84
85} // namespace MeshLib
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:32
static const unsigned n_all_nodes
Constant: The number of all nodes for this element.
Definition PrismRule15.h:41
static unsigned identifyFace(Node const *const *element_nodes, Node const *nodes[3])
Returns the ID of a face given an array of nodes.
Definition PrismRule15.h:78
static const CellType cell_type
Constant: The FEM type of the element.
Definition PrismRule15.h:44
static constexpr const unsigned face_nodes[5][8]
Constant: Local node index table for faces.
Definition PrismRule15.h:47
MeshLib::QuadraticEdgeReturn EdgeReturn
Returns the i-th edge of the element.
Definition PrismRule15.h:72
static constexpr const unsigned edge_nodes[9][3]
Constant: Local node index table for edge.
Definition PrismRule15.h:56
static const Element * getFace(const Element *e, unsigned i)
Returns the i-th face of the element.
static const unsigned n_face_nodes[5]
Constant: Table for the number of nodes for each face.
Definition PrismRule15.h:69
Returns quadratic order edge.
Definition EdgeReturn.h:32
CellType
Types of mesh elements supported by OpenGeoSys.
Definition MeshEnums.h:53