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

Element traits for 8-node trilinear hexahedron (Hex8) More...

#include <Hex8.hpp>

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

Static Public Member Functions

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

Static Public Attributes

static constexpr ElemType elemType = Hex8
 
static constexpr int dim = 3
 
static constexpr int order = 1
 
static constexpr int numVertices = 8
 
static constexpr int numNodes = 8
 
static constexpr int numFaces = 6
 
static constexpr ParamSpace paramSpace = HexSpace
 
static constexpr t_real paramSpaceVol = 8.0
 
static constexpr std::array< t_real, 3 *8 > standardCoords
 Standard coordinates of nodes in parametric space.
 
static constexpr std::array< std::array< t_index, 10 >, 6 > faceNodes
 Node indices for each face (bilinear quad)
 
static constexpr ElemType elevatedType = Hex27
 Element type after order elevation (O1 -> O2) Hex8 elevates to Hex27 (27-node triquadratic hex)
 
static constexpr int numElevNodes = 19
 Number of additional nodes created during elevation.
 
static constexpr std::array< tElevSpan, 19 > elevSpans
 Elevation spans define new node connections.
 
static constexpr std::array< ElemType, 19 > elevNodeSpanTypes
 Element type of each elevation span.
 
static constexpr int vtkCellType = 12
 VTK cell type identifier (12 = VTK_HEXAHEDRON)
 
static constexpr std::array< int, 8 > vtkNodeOrder = {0, 1, 2, 3, 4, 5, 6, 7}
 VTK node ordering map.
 

Detailed Description

Element traits for 8-node trilinear hexahedron (Hex8)

Hex8 is the simplest 3D hexahedral element, commonly used for:

  • Structured hexahedral meshes
  • Boundary-fitted grids
  • Isoparametric mapping of complex geometries

Geometry:

  • Reference hex: xi, eta, zeta in [-1, 1]
  • 8 nodes at the corners of the reference cube
  • Parametric space volume = 8.0

Faces:

  • 6 faces, each is a Quad4 element

Definition at line 182 of file Hex8.hpp.

Member Function Documentation

◆ GetFaceType()

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

Get the element type of a face.

Returns
Quad4 (all faces of hex are bilinear quads)

Definition at line 229 of file Hex8.hpp.

Member Data Documentation

◆ dim

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

Definition at line 189 of file Hex8.hpp.

◆ elemType

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

Definition at line 188 of file Hex8.hpp.

◆ elevatedType

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

Element type after order elevation (O1 -> O2) Hex8 elevates to Hex27 (27-node triquadratic hex)

Definition at line 257 of file Hex8.hpp.

◆ elevNodeSpanTypes

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

Element type of each elevation span.

Definition at line 285 of file Hex8.hpp.

◆ elevSpans

constexpr std::array<tElevSpan, 19> DNDS::Geom::Elem::ElementTraits< Hex8 >::elevSpans
staticconstexpr
Initial value:
= {{
{0, 1}, {1, 2}, {2, 3}, {3, 0},
{0, 4}, {1, 5}, {2, 6}, {3, 7},
{4, 5}, {5, 6}, {6, 7}, {7, 4},
{0, 3, 2, 1}, {0, 1, 5, 4},
{1, 2, 6, 5}, {2, 3, 7, 6},
{0, 4, 7, 3}, {4, 5, 6, 7},
{0, 1, 2, 3, 4, 5, 6, 7}}}

Elevation spans define new node connections.

Elevation creates 19 new nodes: Spans 0-11: edge midpoints (12 edges) Spans 12-17: face centers (6 faces) Span 18: body center (all 8 vertices)

Definition at line 270 of file Hex8.hpp.

◆ faceNodes

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

Node indices for each face (bilinear quad)

Face 0: bottom face (z=-1, nodes 0-3-2-1) - note reversed for outward normal Face 1: back face (y=-1, nodes 0-1-5-4) Face 2: right face (x=+1, nodes 1-2-6-5) Face 3: front face (y=+1, nodes 2-3-7-6) Face 4: left face (x=-1, nodes 3-0-4-7) Face 5: top face (z=+1, nodes 4-5-6-7)

Definition at line 241 of file Hex8.hpp.

◆ numElevNodes

constexpr int DNDS::Geom::Elem::ElementTraits< Hex8 >::numElevNodes = 19
staticconstexpr

Number of additional nodes created during elevation.

Definition at line 260 of file Hex8.hpp.

◆ numFaces

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

Definition at line 193 of file Hex8.hpp.

◆ numNodes

constexpr int DNDS::Geom::Elem::ElementTraits< Hex8 >::numNodes = 8
staticconstexpr

Definition at line 192 of file Hex8.hpp.

◆ numVertices

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

Definition at line 191 of file Hex8.hpp.

◆ order

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

Definition at line 190 of file Hex8.hpp.

◆ paramSpace

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

Definition at line 194 of file Hex8.hpp.

◆ paramSpaceVol

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

Definition at line 195 of file Hex8.hpp.

◆ standardCoords

constexpr std::array<t_real, 3 * 8> DNDS::Geom::Elem::ElementTraits< Hex8 >::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}

Standard coordinates of nodes in parametric space.

Reference cube [-1,1]^3 with nodes at corners. Standard ordering: bottom face (z=-1) counter-clockwise, then top face (z=+1) counter-clockwise.

Node 0-3: bottom face (z = -1) Node 4-7: top face (z = +1)

Definition at line 211 of file Hex8.hpp.

◆ vtkCellType

constexpr int DNDS::Geom::Elem::ElementTraits< Hex8 >::vtkCellType = 12
staticconstexpr

VTK cell type identifier (12 = VTK_HEXAHEDRON)

Definition at line 297 of file Hex8.hpp.

◆ vtkNodeOrder

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

VTK node ordering map.

VTK uses the same ordering as DNDS for Hex8: VTK nodes 0-7 = corner nodes 0-7

Definition at line 305 of file Hex8.hpp.


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