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

Element traits for 9-node biquadratic quadrilateral (Quad9) More...

#include <Quad9.hpp>

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

Static Public Member Functions

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

Static Public Attributes

static constexpr ElemType elemType = Quad9
 
static constexpr int dim = 2
 
static constexpr int order = 2
 
static constexpr int numVertices = 4
 
static constexpr int numNodes = 9
 
static constexpr int numFaces = 4
 
static constexpr ParamSpace paramSpace = QuadSpace
 
static constexpr t_real paramSpaceVol = 4.0
 
static constexpr std::array< t_real, 3 *9 > standardCoords
 Standard coordinates of nodes in parametric space.
 
static constexpr std::array< std::array< t_index, 10 >, 4 > faceNodes
 Node indices for each face (edge)
 
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 = 4
 Number of sub-elements created when bisecting (4 Quad4 elements)
 
static constexpr int numBisectVariants = 1
 Number of bisection variants (only 1 way to uniformly bisect)
 
static constexpr std::array< tBisectSub, 4 > bisectElements
 Node indices for each sub-element created by bisection.
 
static constexpr int vtkCellType = 23
 VTK cell type identifier (23 = VTK_QUADRATIC_QUAD)
 
static constexpr std::array< int, 8 > vtkNodeOrder = {0, 1, 2, 3, 4, 5, 6, 7}
 VTK node ordering map.
 

Detailed Description

Element traits for 9-node biquadratic quadrilateral (Quad9)

Quad9 is a high-order 2D quadrilateral element with:

  • 4 corner nodes (vertices)
  • 4 edge mid-nodes
  • 1 interior node at the center

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

Definition at line 194 of file Quad9.hpp.

Member Function Documentation

◆ GetBisectElemType()

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

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

Returns
Quad4 (all sub-elements are bilinear quads)

Definition at line 281 of file Quad9.hpp.

◆ GetFaceType()

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

Get the element type of a face (edge)

Returns
Line3 (all edges are quadratic lines with 3 nodes)

Definition at line 240 of file Quad9.hpp.

Member Data Documentation

◆ bisectElements

constexpr std::array<tBisectSub, 4> DNDS::Geom::Elem::ElementTraits< Quad9 >::bisectElements
staticconstexpr
Initial value:
= {{
{0, 4, 8, 7},
{4, 1, 5, 8},
{7, 8, 6, 3},
{8, 5, 2, 6}}}

Node indices for each sub-element created by bisection.

Bisecting creates 4 sub-quads meeting at the center node 8: Sub-element 0: bottom-left quad Sub-element 1: bottom-right quad Sub-element 2: top-left quad Sub-element 3: top-right quad

Definition at line 292 of file Quad9.hpp.

◆ dim

constexpr int DNDS::Geom::Elem::ElementTraits< Quad9 >::dim = 2
staticconstexpr

Definition at line 201 of file Quad9.hpp.

◆ elemType

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

Definition at line 200 of file Quad9.hpp.

◆ elevatedType

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

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

Definition at line 262 of file Quad9.hpp.

◆ faceNodes

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

Node indices for each face (edge)

Each edge has 3 nodes: 2 vertices + 1 midpoint Edge 0: nodes 0-1-4 (bottom) Edge 1: nodes 1-2-5 (right) Edge 2: nodes 2-3-6 (top) Edge 3: nodes 3-0-7 (left)

Definition at line 251 of file Quad9.hpp.

◆ numBisect

constexpr int DNDS::Geom::Elem::ElementTraits< Quad9 >::numBisect = 4
staticconstexpr

Number of sub-elements created when bisecting (4 Quad4 elements)

Definition at line 272 of file Quad9.hpp.

◆ numBisectVariants

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

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

Definition at line 275 of file Quad9.hpp.

◆ numElevNodes

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

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

Definition at line 265 of file Quad9.hpp.

◆ numFaces

constexpr int DNDS::Geom::Elem::ElementTraits< Quad9 >::numFaces = 4
staticconstexpr

Definition at line 205 of file Quad9.hpp.

◆ numNodes

constexpr int DNDS::Geom::Elem::ElementTraits< Quad9 >::numNodes = 9
staticconstexpr

Definition at line 204 of file Quad9.hpp.

◆ numVertices

constexpr int DNDS::Geom::Elem::ElementTraits< Quad9 >::numVertices = 4
staticconstexpr

Definition at line 203 of file Quad9.hpp.

◆ order

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

Definition at line 202 of file Quad9.hpp.

◆ paramSpace

constexpr ParamSpace DNDS::Geom::Elem::ElementTraits< Quad9 >::paramSpace = QuadSpace
staticconstexpr

Definition at line 206 of file Quad9.hpp.

◆ paramSpaceVol

constexpr t_real DNDS::Geom::Elem::ElementTraits< Quad9 >::paramSpaceVol = 4.0
staticconstexpr

Definition at line 207 of file Quad9.hpp.

◆ standardCoords

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

Standard coordinates of nodes in parametric space.

Reference square [-1,1] x [-1,1] with nodes: Nodes 0-3: corners (same as Quad4) Nodes 4-7: edge midpoints Node 8: center (0, 0)

Definition at line 221 of file Quad9.hpp.

◆ vtkCellType

constexpr int DNDS::Geom::Elem::ElementTraits< Quad9 >::vtkCellType = 23
staticconstexpr

VTK cell type identifier (23 = VTK_QUADRATIC_QUAD)

Definition at line 303 of file Quad9.hpp.

◆ vtkNodeOrder

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

VTK node ordering map.

VTK uses 8 nodes for quadratic quad (excludes interior node 8): VTK nodes 0-3 = corner nodes 0-3 VTK nodes 4-7 = edge mid-nodes 4-7

Definition at line 312 of file Quad9.hpp.


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