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

Element traits for 3-node quadratic line element (Line3) More...

#include <Line3.hpp>

Collaboration diagram for DNDS::Geom::Elem::ElementTraits< Line3 >:
[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 = Line3
 Element type enum value for static dispatch.
 
static constexpr int dim = 1
 Spatial dimension (1 = line element)
 
static constexpr int order = 2
 Polynomial order of shape functions (2 = quadratic)
 
static constexpr int numVertices = 2
 Number of vertices (2 endpoints, same as linear)
 
static constexpr int numNodes = 3
 Total number of nodes (3 nodes: 2 vertices + 1 midpoint)
 
static constexpr int numFaces = 0
 Number of faces (0 for 1D element)
 
static constexpr ParamSpace paramSpace = LineSpace
 Parametric space type (line space: xi in [-1, 1])
 
static constexpr t_real paramSpaceVol = 2.0
 Volume of parametric space (length = 2.0)
 
static constexpr std::array< t_real, 3 *3 > standardCoords
 Standard coordinates of nodes in parametric space.
 
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 = 2
 Number of sub-elements created when bisecting (2 Line2 elements)
 
static constexpr int numBisectVariants = 1
 Number of bisection variants (only 1 way to bisect a line)
 
static constexpr std::array< tBisectSub, 2 > bisectElements
 Node indices for each sub-element created by bisection.
 
static constexpr int vtkCellType = 4
 VTK cell type identifier (4 = VTK_QUADRATIC_EDGE)
 
static constexpr std::array< int, 3 > vtkNodeOrder = {0, 2, 1}
 VTK node ordering map.
 

Detailed Description

Element traits for 3-node quadratic line element (Line3)

Line3 is a 1D quadratic element with nodes at the endpoints and midpoint. Used as edge/face elements for 2D/3D high-order meshes.

Geometry:

  • Reference line: xi in [-1, 1]
  • Node 0 at xi = -1, Node 1 at xi = +1, Node 2 at xi = 0

Definition at line 70 of file Line3.hpp.

Member Function Documentation

◆ GetBisectElemType()

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

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

Parameters
iSub-element index (0 or 1)
Returns
Line2 (both sub-elements are linear lines)

Definition at line 153 of file Line3.hpp.

◆ GetFaceType()

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

Get the element type of a face.

Parameters
iFaceFace index (unused for Line3 as it has no faces)
Returns
UnknownElem (1D elements don't have faces)

Definition at line 126 of file Line3.hpp.

Member Data Documentation

◆ bisectElements

constexpr std::array<tBisectSub, 2> DNDS::Geom::Elem::ElementTraits< Line3 >::bisectElements
staticconstexpr
Initial value:
= {{
{0, 2},
{2, 1}}}

Node indices for each sub-element created by bisection.

Bisecting a quadratic line at the midpoint creates 2 linear lines: Sub-element 0: nodes {0, 2} - left half Sub-element 1: nodes {2, 1} - right half

Definition at line 162 of file Line3.hpp.

◆ dim

constexpr int DNDS::Geom::Elem::ElementTraits< Line3 >::dim = 1
staticconstexpr

Spatial dimension (1 = line element)

Definition at line 80 of file Line3.hpp.

◆ elemType

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

Element type enum value for static dispatch.

Definition at line 77 of file Line3.hpp.

◆ elevatedType

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

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

Definition at line 133 of file Line3.hpp.

◆ numBisect

constexpr int DNDS::Geom::Elem::ElementTraits< Line3 >::numBisect = 2
staticconstexpr

Number of sub-elements created when bisecting (2 Line2 elements)

Definition at line 143 of file Line3.hpp.

◆ numBisectVariants

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

Number of bisection variants (only 1 way to bisect a line)

Definition at line 146 of file Line3.hpp.

◆ numElevNodes

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

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

Definition at line 136 of file Line3.hpp.

◆ numFaces

constexpr int DNDS::Geom::Elem::ElementTraits< Line3 >::numFaces = 0
staticconstexpr

Number of faces (0 for 1D element)

Definition at line 92 of file Line3.hpp.

◆ numNodes

constexpr int DNDS::Geom::Elem::ElementTraits< Line3 >::numNodes = 3
staticconstexpr

Total number of nodes (3 nodes: 2 vertices + 1 midpoint)

Definition at line 89 of file Line3.hpp.

◆ numVertices

constexpr int DNDS::Geom::Elem::ElementTraits< Line3 >::numVertices = 2
staticconstexpr

Number of vertices (2 endpoints, same as linear)

Definition at line 86 of file Line3.hpp.

◆ order

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

Polynomial order of shape functions (2 = quadratic)

Definition at line 83 of file Line3.hpp.

◆ paramSpace

constexpr ParamSpace DNDS::Geom::Elem::ElementTraits< Line3 >::paramSpace = LineSpace
staticconstexpr

Parametric space type (line space: xi in [-1, 1])

Definition at line 95 of file Line3.hpp.

◆ paramSpaceVol

constexpr t_real DNDS::Geom::Elem::ElementTraits< Line3 >::paramSpaceVol = 2.0
staticconstexpr

Volume of parametric space (length = 2.0)

Definition at line 98 of file Line3.hpp.

◆ standardCoords

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

Standard coordinates of nodes in parametric space.

Format: {x, y, z} for each node. 3D coordinates for consistency. Node 0: xi = -1 -> (-1, 0, 0) - left endpoint Node 1: xi = +1 -> ( 1, 0, 0) - right endpoint Node 2: xi = 0 -> ( 0, 0, 0) - midpoint

Definition at line 112 of file Line3.hpp.

◆ vtkCellType

constexpr int DNDS::Geom::Elem::ElementTraits< Line3 >::vtkCellType = 4
staticconstexpr

VTK cell type identifier (4 = VTK_QUADRATIC_EDGE)

Definition at line 171 of file Line3.hpp.

◆ vtkNodeOrder

constexpr std::array<int, 3> DNDS::Geom::Elem::ElementTraits< Line3 >::vtkNodeOrder = {0, 2, 1}
staticconstexpr

VTK node ordering map.

VTK uses different ordering for quadratic edge: VTK node 0 = DNDS node 0 (endpoint) VTK node 1 = DNDS node 2 (midpoint) - note the swap! VTK node 2 = DNDS node 1 (endpoint)

Definition at line 181 of file Line3.hpp.


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