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

Element traits for 27-node triquadratic hexahedron (Hex27) More...

#include <Hex27.hpp>

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

Static Public Member Functions

static constexpr ElemType GetFaceType (t_index)
 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 = Hex27
 
static constexpr int dim = 3
 
static constexpr int order = 2
 
static constexpr int numVertices = 8
 
static constexpr int numNodes = 27
 
static constexpr int numFaces = 6
 
static constexpr ParamSpace paramSpace = HexSpace
 
static constexpr t_real paramSpaceVol = 8.0
 
static constexpr std::array< t_real, 3 *27 > standardCoords
 Standard coordinates of nodes in parametric space.
 
static constexpr std::array< std::array< t_index, 10 >, 6 > faceNodes
 Node indices for each face (biquadratic quad)
 
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
 Number of sub-elements created when bisecting (8 Hex8 elements)
 
static constexpr int numBisectVariants = 1
 Number of bisection variants (only 1 way to uniformly bisect)
 
static constexpr std::array< tBisectSub, 8 > bisectElements
 Node indices for each sub-element created by bisection.
 
static constexpr int vtkCellType = 25
 VTK cell type identifier (25 = VTK_TRIQUADRATIC_HEXAHEDRON)
 
static constexpr std::array< int, 20 > vtkNodeOrder
 VTK node ordering map.
 

Detailed Description

Element traits for 27-node triquadratic hexahedron (Hex27)

Hex27 is a high-order 3D hexahedral element with:

  • 8 corner nodes (vertices)
  • 12 edge mid-nodes
  • 6 face center nodes
  • 1 body center node

Used for high-order finite element and spectral element methods.

Definition at line 920 of file Hex27.hpp.

Member Function Documentation

◆ GetBisectElemType()

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

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

Returns
Hex8 (all sub-elements are trilinear hexes)

Definition at line 1009 of file Hex27.hpp.

◆ GetFaceType()

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

Get the element type of a face.

Returns
Quad9 (all faces are 9-node biquadratic quads)

Definition at line 970 of file Hex27.hpp.

Member Data Documentation

◆ bisectElements

constexpr std::array<tBisectSub, 8> DNDS::Geom::Elem::ElementTraits< Hex27 >::bisectElements
staticconstexpr
Initial value:
= {{
{0, 8, 20, 11, 12, 21, 26, 24},
{8, 1, 9, 20, 21, 13, 22, 26},
{11, 20, 10, 3, 24, 26, 23, 15},
{20, 9, 2, 10, 26, 22, 14, 23},
{12, 21, 26, 24, 4, 16, 25, 19},
{21, 13, 22, 26, 16, 5, 17, 25},
{24, 26, 23, 15, 19, 25, 18, 7},
{26, 22, 14, 23, 25, 17, 6, 18}}}

Node indices for each sub-element created by bisection.

Bisecting creates 8 sub-hexes meeting at the body center node 26. Each sub-hex uses corners, edge mids, face centers, and body center.

Definition at line 1017 of file Hex27.hpp.

◆ dim

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

Definition at line 927 of file Hex27.hpp.

◆ elemType

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

Definition at line 926 of file Hex27.hpp.

◆ elevatedType

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

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

Definition at line 990 of file Hex27.hpp.

◆ faceNodes

constexpr std::array<std::array<t_index, 10>, 6> DNDS::Geom::Elem::ElementTraits< Hex27 >::faceNodes
staticconstexpr
Initial value:
= {{
{0, 3, 2, 1, 11, 10, 9, 8, 20},
{0, 1, 5, 4, 8, 13, 16, 12, 21},
{1, 2, 6, 5, 9, 14, 17, 13, 22},
{2, 3, 7, 6, 10, 15, 18, 14, 23},
{0, 4, 7, 3, 12, 19, 15, 11, 24},
{4, 5, 6, 7, 16, 17, 18, 19, 25}}}

Node indices for each face (biquadratic quad)

Each face has 9 nodes: 4 vertices + 4 edge mids + 1 face center

Definition at line 977 of file Hex27.hpp.

◆ numBisect

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

Number of sub-elements created when bisecting (8 Hex8 elements)

Definition at line 1000 of file Hex27.hpp.

◆ numBisectVariants

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

Number of bisection variants (only 1 way to uniformly bisect)

Definition at line 1003 of file Hex27.hpp.

◆ numElevNodes

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

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

Definition at line 993 of file Hex27.hpp.

◆ numFaces

constexpr int DNDS::Geom::Elem::ElementTraits< Hex27 >::numFaces = 6
staticconstexpr

Definition at line 931 of file Hex27.hpp.

◆ numNodes

constexpr int DNDS::Geom::Elem::ElementTraits< Hex27 >::numNodes = 27
staticconstexpr

Definition at line 930 of file Hex27.hpp.

◆ numVertices

constexpr int DNDS::Geom::Elem::ElementTraits< Hex27 >::numVertices = 8
staticconstexpr

Definition at line 929 of file Hex27.hpp.

◆ order

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

Definition at line 928 of file Hex27.hpp.

◆ paramSpace

constexpr ParamSpace DNDS::Geom::Elem::ElementTraits< Hex27 >::paramSpace = HexSpace
staticconstexpr

Definition at line 932 of file Hex27.hpp.

◆ paramSpaceVol

constexpr t_real DNDS::Geom::Elem::ElementTraits< Hex27 >::paramSpaceVol = 8.0
staticconstexpr

Definition at line 933 of file Hex27.hpp.

◆ standardCoords

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

Standard coordinates of nodes in parametric space.

Reference cube [-1,1]^3 with nodes: Nodes 0-7: corners (same as Hex8) Nodes 8-19: edge midpoints Nodes 20-25: face centers Node 26: body center

Definition at line 948 of file Hex27.hpp.

◆ vtkCellType

constexpr int DNDS::Geom::Elem::ElementTraits< Hex27 >::vtkCellType = 25
staticconstexpr

VTK cell type identifier (25 = VTK_TRIQUADRATIC_HEXAHEDRON)

Definition at line 1032 of file Hex27.hpp.

◆ vtkNodeOrder

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

VTK node ordering map.

VTK has non-trivial node reordering for Hex27: VTK nodes 0-7 = corner nodes 0-7 VTK nodes 8-11 = bottom face edge mids 8-11 VTK nodes 12-15 = top face edge mids 16-19 VTK nodes 16-19 = vertical edge mids 12-15 VTK nodes 20-25 = face centers 21-26 (reordered!) Note: Only 20 nodes used by VTK (excludes some face centers)

Definition at line 1045 of file Hex27.hpp.


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