DNDSR 0.1.0.dev1+gcd065ad
Distributed Numeric Data Structure for CFV
Loading...
Searching...
No Matches
DNDS::Geom::Elem::ElementTraits< Pyramid5 > Struct Reference

Element traits for 5-node linear pyramid (Pyramid5) More...

#include <Pyramid5.hpp>

Collaboration diagram for DNDS::Geom::Elem::ElementTraits< Pyramid5 >:
[legend]

Static Public Member Functions

static constexpr ElemType GetFaceType (t_index iFace)
 Get the element type of a face.
 

Static Public Attributes

static constexpr ElemType elemType = Pyramid5
 
static constexpr int dim = 3
 
static constexpr int order = 1
 
static constexpr int numVertices = 5
 
static constexpr int numNodes = 5
 
static constexpr int numFaces = 5
 
static constexpr ParamSpace paramSpace = PyramidSpace
 
static constexpr t_real paramSpaceVol = 4.0 / 3.0
 
static constexpr std::array< t_real, 3 *5 > standardCoords
 Standard coordinates of nodes in parametric space.
 
static constexpr std::array< std::array< t_index, 10 >, 5 > faceNodes
 Node indices for each face.
 
static constexpr ElemType elevatedType = Pyramid14
 Element type after order elevation (O1 -> O2) Pyramid5 elevates to Pyramid14 (14-node quadratic pyramid)
 
static constexpr int numElevNodes = 9
 Number of additional nodes created during elevation.
 
static constexpr std::array< tElevSpan, 9 > elevSpans
 Elevation spans define new node connections.
 
static constexpr std::array< ElemType, 9 > elevNodeSpanTypes
 Element type of each elevation span.
 
static constexpr int vtkCellType = 14
 VTK cell type identifier (14 = VTK_PYRAMID)
 
static constexpr std::array< int, 5 > vtkNodeOrder = {0, 1, 2, 3, 4}
 VTK node ordering map.
 

Detailed Description

Element traits for 5-node linear pyramid (Pyramid5)

Pyramid5 is a 3D pyramidal element with a quadrilateral base and triangular sides, commonly used for:

  • Transition between hexahedral and tetrahedral meshes
  • Octree-based mesh refinement
  • Adaptive meshing with hanging nodes

Geometry:

  • Reference pyramid: square base at z=0, apex at z=1
  • 5 nodes: 4 at base corners, 1 at apex
  • Parametric space volume = 4/3

Faces:

  • 1 quadrilateral base face
  • 4 triangular side faces

Definition at line 186 of file Pyramid5.hpp.

Member Function Documentation

◆ GetFaceType()

static constexpr ElemType DNDS::Geom::Elem::ElementTraits< Pyramid5 >::GetFaceType ( t_index  iFace)
inlinestaticconstexpr

Get the element type of a face.

Parameters
iFaceFace index (0 is base, 1-4 are sides)
Returns
Quad4 for base, Tri3 for sides

Definition at line 228 of file Pyramid5.hpp.

Member Data Documentation

◆ dim

constexpr int DNDS::Geom::Elem::ElementTraits< Pyramid5 >::dim = 3
staticconstexpr

Definition at line 193 of file Pyramid5.hpp.

◆ elemType

constexpr ElemType DNDS::Geom::Elem::ElementTraits< Pyramid5 >::elemType = Pyramid5
staticconstexpr

Definition at line 192 of file Pyramid5.hpp.

◆ elevatedType

constexpr ElemType DNDS::Geom::Elem::ElementTraits< Pyramid5 >::elevatedType = Pyramid14
staticconstexpr

Element type after order elevation (O1 -> O2) Pyramid5 elevates to Pyramid14 (14-node quadratic pyramid)

Definition at line 254 of file Pyramid5.hpp.

◆ elevNodeSpanTypes

constexpr std::array<ElemType, 9> DNDS::Geom::Elem::ElementTraits< Pyramid5 >::elevNodeSpanTypes
staticconstexpr
Initial value:

Element type of each elevation span.

Definition at line 273 of file Pyramid5.hpp.

◆ elevSpans

constexpr std::array<tElevSpan, 9> DNDS::Geom::Elem::ElementTraits< Pyramid5 >::elevSpans
staticconstexpr
Initial value:
= {{
{0, 1}, {1, 2}, {2, 3}, {3, 0},
{0, 4}, {1, 4}, {2, 4}, {3, 4},
{0, 3, 2, 1}}}

Elevation spans define new node connections.

Elevation creates 9 new nodes: Spans 0-3: base edge midpoints (4 edges) Spans 4-7: lateral edge midpoints (4 edges) Span 8: base face center

Definition at line 267 of file Pyramid5.hpp.

◆ faceNodes

constexpr std::array<std::array<t_index, 10>, 5> DNDS::Geom::Elem::ElementTraits< Pyramid5 >::faceNodes
staticconstexpr
Initial value:
= {{
{0, 3, 2, 1},
{0, 1, 4},
{1, 2, 4},
{2, 3, 4},
{3, 0, 4}}}

Node indices for each face.

Face 0: nodes 0-3-2-1 (base, quadrilateral) Faces 1-4: triangular side faces

Definition at line 239 of file Pyramid5.hpp.

◆ numElevNodes

constexpr int DNDS::Geom::Elem::ElementTraits< Pyramid5 >::numElevNodes = 9
staticconstexpr

Number of additional nodes created during elevation.

Definition at line 257 of file Pyramid5.hpp.

◆ numFaces

constexpr int DNDS::Geom::Elem::ElementTraits< Pyramid5 >::numFaces = 5
staticconstexpr

Definition at line 197 of file Pyramid5.hpp.

◆ numNodes

constexpr int DNDS::Geom::Elem::ElementTraits< Pyramid5 >::numNodes = 5
staticconstexpr

Definition at line 196 of file Pyramid5.hpp.

◆ numVertices

constexpr int DNDS::Geom::Elem::ElementTraits< Pyramid5 >::numVertices = 5
staticconstexpr

Definition at line 195 of file Pyramid5.hpp.

◆ order

constexpr int DNDS::Geom::Elem::ElementTraits< Pyramid5 >::order = 1
staticconstexpr

Definition at line 194 of file Pyramid5.hpp.

◆ paramSpace

constexpr ParamSpace DNDS::Geom::Elem::ElementTraits< Pyramid5 >::paramSpace = PyramidSpace
staticconstexpr

Definition at line 198 of file Pyramid5.hpp.

◆ paramSpaceVol

constexpr t_real DNDS::Geom::Elem::ElementTraits< Pyramid5 >::paramSpaceVol = 4.0 / 3.0
staticconstexpr

Definition at line 199 of file Pyramid5.hpp.

◆ standardCoords

constexpr std::array<t_real, 3 * 5> DNDS::Geom::Elem::ElementTraits< Pyramid5 >::standardCoords
staticconstexpr
Initial value:
= {
-1, -1, 0,
1, -1, 0,
1, 1, 0,
-1, 1, 0,
0, 0, 1}

Standard coordinates of nodes in parametric space.

Reference pyramid: square base [-1,1]x[-1,1] at z=0, apex at (0,0,1) Nodes 0-3: base corners (counter-clockwise) Node 4: apex

Definition at line 212 of file Pyramid5.hpp.

◆ vtkCellType

constexpr int DNDS::Geom::Elem::ElementTraits< Pyramid5 >::vtkCellType = 14
staticconstexpr

VTK cell type identifier (14 = VTK_PYRAMID)

Definition at line 283 of file Pyramid5.hpp.

◆ vtkNodeOrder

constexpr std::array<int, 5> DNDS::Geom::Elem::ElementTraits< Pyramid5 >::vtkNodeOrder = {0, 1, 2, 3, 4}
staticconstexpr

VTK node ordering map.

VTK uses the same ordering as DNDS for Pyramid5: VTK nodes 0-3 = base corners 0-3 VTK node 4 = apex

Definition at line 292 of file Pyramid5.hpp.


The documentation for this struct was generated from the following file: