MeshFields
GPU accelerated mesh-based fields
Public Member Functions | Static Public Attributes | List of all members
MeshField::LinearTriangleShape Struct Reference

Linear (P1) shape functions for 2D triangular elements. More...

#include <MeshField_Shape.hpp>

Public Member Functions

KOKKOS_INLINE_FUNCTION Kokkos::Array< Real, numNodes *meshEntDimgetNodeParametricCoords () const
 Get parametric coordinates of element nodes. More...
 
KOKKOS_INLINE_FUNCTION Kokkos::Array< Real, numNodesgetValues (Vector2 const &xi) const
 Evaluate shape functions at parametric coordinate. More...
 
KOKKOS_INLINE_FUNCTION Kokkos::Array< Real, meshEntDim *numNodesgetLocalGradients (Vector2 const &) const
 Get gradients of shape functions @detail gradients are constant - ignoring parametric coord input. More...
 

Static Public Attributes

static const size_t numNodes = 3
 Number of nodes (3 for linear triangle)
 
static const size_t numComponentsPerDof = 1
 Components per DOF (scalar field)
 
static const size_t meshEntDim = 2
 Mesh entity dimension (2D)
 
constexpr static Mesh_Topology DofHolders [1] = {Vertex}
 DOFs located at vertices.
 
constexpr static size_t Order = 1
 Polynomial order (linear)
 

Detailed Description

Linear (P1) shape functions for 2D triangular elements.

Defines linear basis functions for a triangular element with 3 nodes. Parametric coordinate range: xi0, xi1 $\in$ [0, 1]

Node ordering:

Shape functions use barycentric coordinates where L0 = 1-xi0-xi1, L1 = xi0, L2 = xi1

Shape functions and ordering from: Zienkiewicz, Taylor, and Zhu 'The Finite Element Method: Its Basis and Fundamentals', 2013

Definition at line 163 of file MeshField_Shape.hpp.

Member Function Documentation

◆ getLocalGradients()

KOKKOS_INLINE_FUNCTION Kokkos::Array<Real, meshEntDim * numNodes> MeshField::LinearTriangleShape::getLocalGradients ( Vector2 const &  ) const
inline

Get gradients of shape functions @detail gradients are constant - ignoring parametric coord input.

Returns
Array of gradients [dN0/dxi0, dN0/dxi1, dN1/dxi0, dN1/dxi1, dN2/dxi0, dN2/dxi1] Constant gradients: [[-1,-1], [1,0], [0,1]]

Definition at line 210 of file MeshField_Shape.hpp.

◆ getNodeParametricCoords()

KOKKOS_INLINE_FUNCTION Kokkos::Array<Real, numNodes * meshEntDim> MeshField::LinearTriangleShape::getNodeParametricCoords ( ) const
inline

Get parametric coordinates of element nodes.

Returns
Array of node coordinates: [node0_xi0, node0_xi1, node1_xi0, node1_xi1, ...]

Definition at line 175 of file MeshField_Shape.hpp.

◆ getValues()

KOKKOS_INLINE_FUNCTION Kokkos::Array<Real, numNodes> MeshField::LinearTriangleShape::getValues ( Vector2 const &  xi) const
inline

Evaluate shape functions at parametric coordinate.

Parameters
xiParametric coordinates (xi0, xi1) where xi0, xi1 $\in$ [0,1]
Returns
Array of shape function values [N0, N1, N2] = [L0, L1, L2] where L0 = 1-xi0-xi1, L1 = xi0, L2 = xi1

Definition at line 190 of file MeshField_Shape.hpp.


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