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

Element traits for 18-node quadratic prism (Prism18) More...

#include <Prism18.hpp>

Collaboration diagram for DNDS::Geom::Elem::ElementTraits< Prism18 >:
[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)
 Get the element type of a sub-element after bisection.
 

Static Public Attributes

static constexpr ElemType elemType = Prism18
 
static constexpr int dim = 3
 
static constexpr int order = 2
 
static constexpr int numVertices = 6
 
static constexpr int numNodes = 18
 
static constexpr int numFaces = 5
 
static constexpr ParamSpace paramSpace = PrismSpace
 
static constexpr t_real paramSpaceVol = 1.0
 
static constexpr std::array< t_real, 3 *18 > 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 = 8
 O2 bisection: 8 sub-prisms created from one Prism18.
 
static constexpr int numBisectVariants = 1
 Number of bisection variants (1 standard bisection pattern)
 
static constexpr std::array< tBisectSub, 8 > bisectElements
 Sub-element connectivity after bisection.
 
static constexpr int vtkCellType = 26
 VTK cell type identifier (26 = VTK_BIQUADRATIC_QUADRATIC_WEDGE)
 
static constexpr std::array< int, 15 > vtkNodeOrder
 VTK node ordering map.
 

Detailed Description

Element traits for 18-node quadratic prism (Prism18)

Prism18 is a high-order 3D prismatic element with:

  • 6 corner nodes (vertices)
  • 9 edge mid-nodes
  • 3 face center nodes (on quadrilateral faces)

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

Definition at line 412 of file Prism18.hpp.

Member Function Documentation

◆ GetBisectElemType()

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

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

Returns
Prism6 (all sub-elements are linear prisms)

Definition at line 509 of file Prism18.hpp.

◆ GetFaceType()

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

Get the element type of a face.

Parameters
iFaceFace index (0-2 are quads, 3-4 are triangles)
Returns
Quad9 for side faces, Tri6 for cap faces

Definition at line 462 of file Prism18.hpp.

Member Data Documentation

◆ bisectElements

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

Sub-element connectivity after bisection.

Each row defines one sub-prism using parent node indices. The 8 sub-prisms fill the volume of the original element.

Definition at line 517 of file Prism18.hpp.

◆ dim

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

Definition at line 419 of file Prism18.hpp.

◆ elemType

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

Definition at line 418 of file Prism18.hpp.

◆ elevatedType

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

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

Definition at line 485 of file Prism18.hpp.

◆ faceNodes

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

Node indices for each face.

Quadrilateral faces have 9 nodes (4 vertices + 4 edge mids + 1 center) Triangular faces have 6 nodes (3 vertices + 3 edge mids)

Definition at line 473 of file Prism18.hpp.

◆ numBisect

constexpr int DNDS::Geom::Elem::ElementTraits< Prism18 >::numBisect = 8
staticconstexpr

O2 bisection: 8 sub-prisms created from one Prism18.

Bisection splits the prism by connecting mid-edge nodes, creating 8 smaller linear prisms (Prism6 elements).

Definition at line 500 of file Prism18.hpp.

◆ numBisectVariants

constexpr int DNDS::Geom::Elem::ElementTraits< Prism18 >::numBisectVariants = 1
staticconstexpr

Number of bisection variants (1 standard bisection pattern)

Definition at line 503 of file Prism18.hpp.

◆ numElevNodes

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

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

Definition at line 488 of file Prism18.hpp.

◆ numFaces

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

Definition at line 423 of file Prism18.hpp.

◆ numNodes

constexpr int DNDS::Geom::Elem::ElementTraits< Prism18 >::numNodes = 18
staticconstexpr

Definition at line 422 of file Prism18.hpp.

◆ numVertices

constexpr int DNDS::Geom::Elem::ElementTraits< Prism18 >::numVertices = 6
staticconstexpr

Definition at line 421 of file Prism18.hpp.

◆ order

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

Definition at line 420 of file Prism18.hpp.

◆ paramSpace

constexpr ParamSpace DNDS::Geom::Elem::ElementTraits< Prism18 >::paramSpace = PrismSpace
staticconstexpr

Definition at line 424 of file Prism18.hpp.

◆ paramSpaceVol

constexpr t_real DNDS::Geom::Elem::ElementTraits< Prism18 >::paramSpaceVol = 1.0
staticconstexpr

Definition at line 425 of file Prism18.hpp.

◆ standardCoords

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

Standard coordinates of nodes in parametric space.

Nodes 0-5: vertices (same as Prism6) Nodes 6-8: bottom triangle edge midpoints Nodes 9-11: vertical edge midpoints Nodes 12-14: top triangle edge midpoints Nodes 15-17: side quadrilateral face centers

Definition at line 440 of file Prism18.hpp.

◆ vtkCellType

constexpr int DNDS::Geom::Elem::ElementTraits< Prism18 >::vtkCellType = 26
staticconstexpr

VTK cell type identifier (26 = VTK_BIQUADRATIC_QUADRATIC_WEDGE)

Definition at line 532 of file Prism18.hpp.

◆ vtkNodeOrder

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

VTK node ordering map.

VTK has non-trivial node reordering for Prism18: VTK nodes 0-5 = vertices 0-5 VTK nodes 6-8 = bottom triangle edge mids 6-8 VTK nodes 9-11 = top triangle edge mids 12-14 (note: reordered!) VTK nodes 12-14 = vertical edge mids 9-11 (note: reordered!) Note: Face center nodes 15-17 are not included in VTK ordering

Definition at line 544 of file Prism18.hpp.


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