OGS
PyramidRule13.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 "
PyramidRule.h
"
9
10
namespace
MeshLib
11
{
12
36
class
PyramidRule13
:
public
PyramidRule
37
{
38
public
:
40
static
const
unsigned
n_all_nodes
= 13u;
41
43
static
const
CellType
cell_type
=
CellType::PYRAMID13
;
44
46
constexpr
static
const
unsigned
face_nodes
[5][8] = {
47
{0, 1, 4, 5, 10, 9, 99, 99},
// Face 0
48
{1, 2, 4, 6, 11, 10, 99, 99},
// Face 1
49
{2, 3, 4, 7, 12, 11, 99, 99},
// Face 2
50
{3, 0, 4, 8, 9, 12, 99, 99},
// Face 3
51
{0, 3, 2, 1, 8, 7, 6, 5}
// Face 4
52
};
53
55
constexpr
static
const
unsigned
edge_nodes
[8][3] = {
56
{0, 1, 5},
// Edge 0
57
{1, 2, 6},
// Edge 1
58
{2, 3, 7},
// Edge 2
59
{3, 0, 8},
// Edge 3
60
{0, 4, 9},
// Edge 4
61
{1, 4, 10},
// Edge 5
62
{2, 4, 11},
// Edge 6
63
{3, 4, 12}
// Edge 7
64
};
65
67
static
const
unsigned
n_face_nodes
[5];
68
70
using
EdgeReturn
=
MeshLib::QuadraticEdgeReturn
;
71
73
static
const
Element
*
getFace
(
const
Element
* e,
unsigned
i);
74
76
static
unsigned
identifyFace
(
Node
const
*
const
* element_nodes,
77
Node
const
* nodes[3])
78
{
79
return
CellRule::identifyFace<PyramidRule13>
(element_nodes, nodes);
80
}
81
};
/* class */
82
83
}
// namespace MeshLib
EdgeReturn.h
Element.h
PyramidRule.h
MeshLib::CellRule::identifyFace
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
MeshLib::Element
Definition
Element.h:25
MeshLib::Node
Definition
Node.h:21
MeshLib::PyramidRule13
Definition
PyramidRule13.h:37
MeshLib::PyramidRule13::face_nodes
static constexpr const unsigned face_nodes[5][8]
Constant: Local node index table for faces.
Definition
PyramidRule13.h:46
MeshLib::PyramidRule13::identifyFace
static unsigned identifyFace(Node const *const *element_nodes, Node const *nodes[3])
Returns the ID of a face given an array of nodes.
Definition
PyramidRule13.h:76
MeshLib::PyramidRule13::edge_nodes
static constexpr const unsigned edge_nodes[8][3]
Constant: Local node index table for edge.
Definition
PyramidRule13.h:55
MeshLib::PyramidRule13::n_face_nodes
static const unsigned n_face_nodes[5]
Constant: Table for the number of nodes for each face.
Definition
PyramidRule13.h:67
MeshLib::PyramidRule13::getFace
static const Element * getFace(const Element *e, unsigned i)
Returns the i-th face of the element.
Definition
PyramidRule13.cpp:15
MeshLib::PyramidRule13::EdgeReturn
MeshLib::QuadraticEdgeReturn EdgeReturn
Returns the i-th edge of the element.
Definition
PyramidRule13.h:70
MeshLib::PyramidRule13::n_all_nodes
static const unsigned n_all_nodes
Constant: The number of all nodes for this element.
Definition
PyramidRule13.h:40
MeshLib::PyramidRule13::cell_type
static const CellType cell_type
Constant: The FEM type of the element.
Definition
PyramidRule13.h:43
MeshLib::PyramidRule
Definition
PyramidRule.h:14
MeshLib::QuadraticEdgeReturn
Returns quadratic order edge.
Definition
EdgeReturn.h:32
MeshLib
Definition
ProjectData.h:30
MeshLib::CellType
CellType
Types of mesh elements supported by OpenGeoSys.
Definition
MeshEnums.h:53
MeshLib::CellType::PYRAMID13
@ PYRAMID13
Definition
MeshEnums.h:72
MeshLib
Elements
PyramidRule13.h
Generated by
1.14.0