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

Element traits for 14-node quadratic pyramid (Pyramid14) More...

#include <Pyramid14.hpp>

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

Static Public Member Functions

static constexpr ElemType GetFaceType (t_index iFace)
 Get the element type of a face.
 
static constexpr ElemType GetBisectElemType (t_index i)
 Get the element type of a sub-element after bisection.
 

Static Public Attributes

static constexpr ElemType elemType = Pyramid14
 
static constexpr int dim = 3
 
static constexpr int order = 2
 
static constexpr int numVertices = 5
 
static constexpr int numNodes = 14
 
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 *14 > 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 = UnknownElem
 Element type after order elevation (O2 has no higher elevation defined)
 
static constexpr int numElevNodes = 0
 Number of additional nodes created during elevation (none for O2)
 
static constexpr int numBisect = 12
 Number of sub-elements created when bisecting (12 sub-elements)
 
static constexpr int numBisectVariants = 2
 Number of bisection variants (2 different diagonal choices)
 
static constexpr std::array< tBisectSub, 24 > bisectElements
 Node indices for each sub-element created by bisection.
 
static constexpr int vtkCellType = 27
 VTK cell type identifier (27 = VTK_TRIQUADRATIC_PYRAMID)
 
static constexpr std::array< int, 13 > vtkNodeOrder
 VTK node ordering map.
 

Detailed Description

Element traits for 14-node quadratic pyramid (Pyramid14)

Pyramid14 is a high-order 3D pyramidal element with:

  • 5 corner nodes (4 base + 1 apex)
  • 8 edge mid-nodes
  • 1 base face center node

Used for high-order finite element methods with pyramidal elements.

Definition at line 671 of file Pyramid14.hpp.

Member Function Documentation

◆ GetBisectElemType()

static constexpr ElemType DNDS::Geom::Elem::ElementTraits< Pyramid14 >::GetBisectElemType ( t_index  i)
inlinestaticconstexpr

Get the element type of a sub-element after bisection.

Parameters
iSub-element index (first 4 are Pyramid5, remaining 8 are Tet4)
Returns
Pyramid5 for corner elements, Tet4 for internal elements

Definition at line 765 of file Pyramid14.hpp.

◆ GetFaceType()

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

Get the element type of a face.

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

Definition at line 717 of file Pyramid14.hpp.

Member Data Documentation

◆ bisectElements

constexpr std::array<tBisectSub, 24> DNDS::Geom::Elem::ElementTraits< Pyramid14 >::bisectElements
staticconstexpr
Initial value:
= {{
{0, 5, 13, 8, 9},
{5, 1, 6, 13, 10},
{8, 13, 7, 3, 12},
{13, 6, 2, 7, 11},
{12, 9, 8, 13},
{9, 10, 5, 13},
{10, 11, 6, 13},
{11, 12, 7, 13},
{9, 11, 12, 4},
{9, 10, 11, 4},
{9, 11, 10, 13},
{9, 12, 11, 13},
{0, 5, 13, 8, 9},
{5, 1, 6, 13, 10},
{8, 13, 7, 3, 12},
{13, 6, 2, 7, 11},
{12, 9, 8, 13},
{9, 10, 5, 13},
{10, 11, 6, 13},
{11, 12, 7, 13},
{10, 12, 9, 4},
{10, 11, 12, 4},
{10, 12, 11, 13},
{10, 9, 12, 13}}}

Node indices for each sub-element created by bisection.

2 variants x 12 sub-elements = 24 entries total. Each variant produces 4 corner pyramids and 8 internal tetrahedra.

Definition at line 776 of file Pyramid14.hpp.

◆ dim

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

Definition at line 678 of file Pyramid14.hpp.

◆ elemType

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

Definition at line 677 of file Pyramid14.hpp.

◆ elevatedType

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

Element type after order elevation (O2 has no higher elevation defined)

Definition at line 740 of file Pyramid14.hpp.

◆ faceNodes

constexpr std::array<std::array<t_index, 10>, 5> DNDS::Geom::Elem::ElementTraits< Pyramid14 >::faceNodes
staticconstexpr
Initial value:
= {{
{0, 3, 2, 1, 8, 7, 6, 5, 13},
{0, 1, 4, 5, 10, 9},
{1, 2, 4, 6, 11, 10},
{2, 3, 4, 7, 12, 11},
{3, 0, 4, 8, 9, 12}}}

Node indices for each face.

Base face has 9 nodes (4 vertices + 4 edge mids + 1 center) Side faces have 6 nodes (3 vertices + 3 edge mids)

Definition at line 728 of file Pyramid14.hpp.

◆ numBisect

constexpr int DNDS::Geom::Elem::ElementTraits< Pyramid14 >::numBisect = 12
staticconstexpr

Number of sub-elements created when bisecting (12 sub-elements)

Definition at line 750 of file Pyramid14.hpp.

◆ numBisectVariants

constexpr int DNDS::Geom::Elem::ElementTraits< Pyramid14 >::numBisectVariants = 2
staticconstexpr

Number of bisection variants (2 different diagonal choices)

The base can be bisected using different internal diagonal patterns, resulting in different sub-element configurations.

Definition at line 758 of file Pyramid14.hpp.

◆ numElevNodes

constexpr int DNDS::Geom::Elem::ElementTraits< Pyramid14 >::numElevNodes = 0
staticconstexpr

Number of additional nodes created during elevation (none for O2)

Definition at line 743 of file Pyramid14.hpp.

◆ numFaces

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

Definition at line 682 of file Pyramid14.hpp.

◆ numNodes

constexpr int DNDS::Geom::Elem::ElementTraits< Pyramid14 >::numNodes = 14
staticconstexpr

Definition at line 681 of file Pyramid14.hpp.

◆ numVertices

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

Definition at line 680 of file Pyramid14.hpp.

◆ order

constexpr int DNDS::Geom::Elem::ElementTraits< Pyramid14 >::order = 2
staticconstexpr

Definition at line 679 of file Pyramid14.hpp.

◆ paramSpace

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

Definition at line 683 of file Pyramid14.hpp.

◆ paramSpaceVol

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

Definition at line 684 of file Pyramid14.hpp.

◆ standardCoords

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

Standard coordinates of nodes in parametric space.

Nodes 0-4: vertices (same as Pyramid5) Nodes 5-8: base edge midpoints Nodes 9-12: lateral edge midpoints Node 13: base face center

Definition at line 698 of file Pyramid14.hpp.

◆ vtkCellType

constexpr int DNDS::Geom::Elem::ElementTraits< Pyramid14 >::vtkCellType = 27
staticconstexpr

VTK cell type identifier (27 = VTK_TRIQUADRATIC_PYRAMID)

Definition at line 809 of file Pyramid14.hpp.

◆ vtkNodeOrder

constexpr std::array<int, 13> DNDS::Geom::Elem::ElementTraits< Pyramid14 >::vtkNodeOrder
staticconstexpr
Initial value:
= {
0, 1, 2, 3, 4,
5, 6, 7, 8,
9, 10, 11, 12}

VTK node ordering map.

VTK uses 13 nodes for quadratic pyramid: VTK nodes 0-4 = vertices 0-4 VTK nodes 5-8 = base edge mids 5-8 VTK nodes 9-12 = lateral edge mids 9-12 Note: Base face center node 13 is not included in VTK ordering

Definition at line 820 of file Pyramid14.hpp.


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