PACMAN 0.1.0
Portable Algorithms for Coupling, Mapping, and Adaptive iNterpolation
Loading...
Searching...
No Matches
PACMAN::FiniteElements Namespace Reference

Classes

struct  ExtractIndex
 Generic callback extracting index from ArborX query values. More...
 
struct  LagrangeSpaceGeo
 Compile-time FE geometry interface for one cell type. More...
 
struct  LagrangeSpaceGeo< ExecSpace, CellType::VTK_EMPTY_CELL >
 
struct  LagrangeSpaceGeo< ExecSpace, CellType::VTK_HEXAHEDRON >
 
struct  LagrangeSpaceGeo< ExecSpace, CellType::VTK_LINE >
 
struct  LagrangeSpaceGeo< ExecSpace, CellType::VTK_PYRAMID >
 
struct  LagrangeSpaceGeo< ExecSpace, CellType::VTK_QUAD >
 
struct  LagrangeSpaceGeo< ExecSpace, CellType::VTK_QUADRATIC_EDGE >
 
struct  LagrangeSpaceGeo< ExecSpace, CellType::VTK_QUADRATIC_HEXAHEDRON >
 
struct  LagrangeSpaceGeo< ExecSpace, CellType::VTK_QUADRATIC_PYRAMID >
 
struct  LagrangeSpaceGeo< ExecSpace, CellType::VTK_QUADRATIC_QUAD >
 
struct  LagrangeSpaceGeo< ExecSpace, CellType::VTK_QUADRATIC_TETRA >
 
struct  LagrangeSpaceGeo< ExecSpace, CellType::VTK_QUADRATIC_TRIANGLE >
 
struct  LagrangeSpaceGeo< ExecSpace, CellType::VTK_QUADRATIC_WEDGE >
 
struct  LagrangeSpaceGeo< ExecSpace, CellType::VTK_TETRA >
 
struct  LagrangeSpaceGeo< ExecSpace, CellType::VTK_TRIANGLE >
 
struct  LagrangeSpaceGeo< ExecSpace, CellType::VTK_VERTEX >
 
struct  LagrangeSpaceGeo< ExecSpace, CellType::VTK_WEDGE >
 
struct  NearestExtractIndex
 Callback assigning source value at nearest-neighbor index. More...
 
struct  permute
 Small helper to canonicalize face-node ordering for row comparison. More...
 
struct  PointCloudNearest
 Predicate wrapper for nearest-neighbor queries over point clouds. More...
 
struct  PointFiniteElementInterpolation
 Point-finite element intersection and interplolation callback. More...
 
struct  PointIntersect
 Predicate wrapper for point/box intersection queries. More...
 
struct  PointNearest
 Wrapper for nearest-neighbor predicates built from 1D point views. More...
 
struct  PointTriangleProjection
 Project outside target points onto nearest 3D skin triangle. More...
 
struct  PointTriangleProjectionExtrapol
 ArborX callback variant for extrapolation mode. More...
 

Functions

template<typename ExecSpace , int_t Dim>
void FTInterClamp (Transfer< ExecSpace, Dim > &transfer)
 Interpolate target points from FE cells and clamp outside points by projection onto the source mesh skin.
 
template<typename ExecSpace , int_t Dim>
void FTInterExtrap (Transfer< ExecSpace, Dim > &transfer)
 Interpolate target points from FE cells and extrapolate outside points via projection onto the source mesh skin to retrieve FE cell for extrapolation.
 
template<typename ExecSpace , int_t Dim>
void FTInterpNearest (Transfer< ExecSpace, Dim > &transfer)
 Interpolate target points from FE cells and fallback to nearest source-node value outside the source mesh.
 
template<typename ExecSpace , int Dim>
void FTInterZero (Transfer< ExecSpace, Dim > &transfer)
 Interpolate target points from FE cells, zero-filling points outside the source mesh.
 
template<typename ExecSpace , int_t Dim>
void FTNearest (Transfer< ExecSpace, Dim > &transfer)
 Transfer source values to target points using nearest-neighbor search.
 
template<typename ExecSpace , int_t Dim>
void ComputeLinearSkin (Transfer< ExecSpace, Dim > &transfer)
 Build tetrahedralized boundary skin from source elements.
 
KOKKOS_INLINE_FUNCTION shortint_t getDimension (const CellType &type)
 Return topological dimension of a PACMAN cell type.
 
KOKKOS_INLINE_FUNCTION shortint_t getNbFaceDim1 (const CellType &type)
 Return the number of faces for 1D skin extraction tables.
 
KOKKOS_INLINE_FUNCTION shortint_t getNbFaceDim2 (const CellType &type)
 Return the number of faces for 2D skin extraction tables.
 
KOKKOS_INLINE_FUNCTION shortint_t getNbFaceDim3 (const CellType &type)
 Return the number of faces for 3D skin extraction tables.
 
template<int_t Dim>
KOKKOS_INLINE_FUNCTION shortint_t getNbFace (const CellType &type)
 Dimension-dispatched helper returning face count for one cell type.
 
std::vector< offset_tgetLinearFacesPaddedOffsets (const int_t dimension)
 Get padded linear-face offset table for a given dimension.
 
std::vector< shortint_tgetLinearFacesPaddedEntries (const int_t dimension)
 Get padded linear-face entry table for a given dimension.
 
std::vector< offset_tgetTriFacesOffsets (const int_t dimension)
 Get triangulated-face offset table for a given dimension.
 
std::vector< shortint_tgetTriFacesEntries (const int_t dimension)
 Get triangulated-face entry table for a given dimension.
 
std::vector< offset_tgetTriLocFacesOffsets (const int_t dimension)
 Get local triangulated-face offset table for a given dimension.
 
std::vector< shortint_tgetTriLocFacesEntries (const int_t dimension)
 Get local triangulated-face entry table for a given dimension.
 
template<GeoSupport T>
KOKKOS_INLINE_FUNCTION bool IsBaryCoordInsideGeo (const fp_t xi, const fp_t eta, const fp_t phi)
 Generic predicate to test if local coordinates lie inside a reference geometry.
 
template<>
KOKKOS_INLINE_FUNCTION bool IsBaryCoordInsideGeo< GeoSupport::POINT > (const fp_t xi, const fp_t eta, const fp_t phi)
 
template<>
KOKKOS_INLINE_FUNCTION bool IsBaryCoordInsideGeo< GeoSupport::LINE > (const fp_t xi, const fp_t eta, const fp_t phi)
 
template<>
KOKKOS_INLINE_FUNCTION bool IsBaryCoordInsideGeo< GeoSupport::TRIANGLE > (const fp_t xi, const fp_t eta, const fp_t phi)
 
template<>
KOKKOS_INLINE_FUNCTION bool IsBaryCoordInsideGeo< GeoSupport::QUAD > (const fp_t xi, const fp_t eta, const fp_t phi)
 
template<>
KOKKOS_INLINE_FUNCTION bool IsBaryCoordInsideGeo< GeoSupport::TETRA > (const fp_t xi, const fp_t eta, const fp_t phi)
 
template<>
KOKKOS_INLINE_FUNCTION bool IsBaryCoordInsideGeo< GeoSupport::HEXAHEDRON > (const fp_t xi, const fp_t eta, const fp_t phi)
 
template<>
KOKKOS_INLINE_FUNCTION bool IsBaryCoordInsideGeo< GeoSupport::WEDGE > (const fp_t xi, const fp_t eta, const fp_t phi)
 
template<>
KOKKOS_INLINE_FUNCTION bool IsBaryCoordInsideGeo< GeoSupport::PYRAMID > (const fp_t xi, const fp_t eta, const fp_t phi)
 
template<typename ExecSpace , int_t Dim>
void ComputeBoxTargetPointIntersection (Transfer< ExecSpace, Dim > &transfer)
 Intersect target points with source-element bounding boxes, then evaluate FE interpolation for intersecting candidates.
 
template<typename ExecSpace , typename FEspace , int_t Dim>
KOKKOS_FUNCTION bool ApplyNewton (const Kokkos::View< coordinates_t **, ExecSpace > Xcoor, const Kokkos::View< coordinates_t[Dim], ExecSpace > targetPoint, Kokkos::View< fp_t *, ExecSpace > weights, const bool forceEvaluation=false)
 Solve FE inverse mapping with Newton iterations and compute interpolation weights.
 
template<typename ExecSpace , int_t Dim>
KOKKOS_FUNCTION bool ApplyNewtonOnElement (const cell_t type, const Kokkos::View< coordinates_t **, ExecSpace > Xcoor, const Kokkos::View< coordinates_t[Dim], ExecSpace > targetPoint, Kokkos::View< fp_t *, ExecSpace > weights, const bool forceEvaluation=false)
 Dispatch Newton-based FE inversion to the correct element type.
 
KOKKOS_INLINE_FUNCTION ArborX::Point< 2, coordinates_tclosest_point_to_edge (const ArborX::Point< 2, coordinates_t > &p, const ArborX::Point< 2, coordinates_t > &a, const ArborX::Point< 2, coordinates_t > &b)
 Compute the closest point on a 2D edge segment.
 
template<typename ExecSpace >
void ComputeProjectionOn3DSkin (Transfer< ExecSpace, 3 > &transfer, bool extrapol=false)
 Project outside target points on a 3D skin and evaluate FE values.
 
template<typename ExecSpace >
void ComputeProjectionOn2DSkin (Transfer< ExecSpace, 2 > &transfer, bool extrapol=false)
 Project outside target points on a 2D skin and evaluate FE values.
 
template<typename ExecSpace >
void ComputeProjectionOn1DSkin (Transfer< ExecSpace, 1 > &transfer, bool extrapol=false)
 Project outside target points on a 1D skin and evaluate FE values.
 

Variables

static std::vector< offset_telemDim1LinearFacesPaddedOffsets
 
static std::vector< shortint_telemDim1LinearFacesPaddedEntries
 
static std::vector< offset_telemDim2LinearFacesPaddedOffsets
 
static std::vector< shortint_telemDim2LinearFacesPaddedEntries
 
static std::vector< offset_telemDim3LinearFacesPaddedOffsets
 
static std::vector< shortint_telemDim3LinearFacesPaddedEntries
 
static std::vector< offset_telemDim1TriFacesOffsets
 
static std::vector< shortint_telemDim1TriFacesEntries
 
static std::vector< offset_telemDim2TriFacesOffsets
 
static std::vector< shortint_telemDim2TriFacesEntries
 
static std::vector< offset_telemDim3TriFacesOffsets
 
static std::vector< shortint_telemDim3TriFacesEntries
 
static std::vector< offset_telemDim1TriLocFacesOffsets
 
static std::vector< shortint_telemDim1TriLocFacesEntries
 
static std::vector< offset_telemDim2TriLocFacesOffsets
 
static std::vector< shortint_telemDim2TriLocFacesEntries
 
static std::vector< offset_telemDim3TriLocFacesOffsets
 
static std::vector< shortint_telemDim3TriLocFacesEntries
 

Function Documentation

◆ ApplyNewton()

KOKKOS_FUNCTION bool PACMAN::FiniteElements::ApplyNewton ( const Kokkos::View< coordinates_t **, ExecSpace Xcoor,
const Kokkos::View< coordinates_t[Dim], ExecSpace targetPoint,
Kokkos::View< fp_t *, ExecSpace weights,
const bool  forceEvaluation = false 
)

Solve FE inverse mapping with Newton iterations and compute interpolation weights.

Template Parameters
ExecSpaceKokkos execution space used for local views/operations.
FEspaceFinite-element type providing shape functions and geometry predicates.
DimSpatial dimension of the embedding space.
Parameters
[in]XcoorCoordinates of the current element nodes.
[in]targetPointCoordinates of the query point in physical space.
[out]weightsShape-function values evaluated at the solved local coordinates.
[in]forceEvaluationIf true, always write weights and return true even when the point is outside the reference element.
Returns
true if Newton converges and the point is inside the element, or if forceEvaluation is enabled; otherwise false.

Definition at line 50 of file NewtonKokkos.hpp.

References D_XI_ETA_PHI_TOL_SQUARED, MAX_NEWTON_ITER, PACMAN::fp_consts::one(), and PACMAN::fp_consts::zero().

◆ ApplyNewtonOnElement()

template<typename ExecSpace , int_t Dim>
KOKKOS_FUNCTION bool PACMAN::FiniteElements::ApplyNewtonOnElement ( const cell_t  type,
const Kokkos::View< coordinates_t **, ExecSpace Xcoor,
const Kokkos::View< coordinates_t[Dim], ExecSpace targetPoint,
Kokkos::View< fp_t *, ExecSpace weights,
const bool  forceEvaluation = false 
)

Dispatch Newton-based FE inversion to the correct element type.

Template Parameters
ExecSpaceKokkos execution space used for local views/operations.
DimSpatial dimension of the interpolation problem.
Parameters
[in]typePACMAN cell type identifier of the current element.
[in]XcoorCoordinates of the current element nodes.
[in]targetPointQuery point coordinates.
[out]weightsInterpolation weights (shape-function values).
[in]forceEvaluationIf true, evaluate weights even for points outside the reference element.
Returns
true if the point is considered valid for interpolation for the selected element policy; otherwise false.

Definition at line 189 of file NewtonKokkos.hpp.

References CaseSwitch, PACMAN::VTK_HEXAHEDRON, PACMAN::VTK_LINE, PACMAN::VTK_PYRAMID, PACMAN::VTK_QUAD, PACMAN::VTK_QUADRATIC_EDGE, PACMAN::VTK_QUADRATIC_HEXAHEDRON, PACMAN::VTK_QUADRATIC_PYRAMID, PACMAN::VTK_QUADRATIC_QUAD, PACMAN::VTK_QUADRATIC_TETRA, PACMAN::VTK_QUADRATIC_TRIANGLE, PACMAN::VTK_QUADRATIC_WEDGE, PACMAN::VTK_TETRA, PACMAN::VTK_TRIANGLE, and PACMAN::VTK_WEDGE.

◆ closest_point_to_edge()

KOKKOS_INLINE_FUNCTION ArborX::Point< 2, coordinates_t > PACMAN::FiniteElements::closest_point_to_edge ( const ArborX::Point< 2, coordinates_t > &  p,
const ArborX::Point< 2, coordinates_t > &  a,
const ArborX::Point< 2, coordinates_t > &  b 
)

Compute the closest point on a 2D edge segment.

Parameters
[in]pQuery point.
[in]aFirst segment endpoint.
[in]bSecond segment endpoint.
Returns
Closest point to p on segment [a,b].

Definition at line 27 of file SkinProjection.hpp.

Referenced by ComputeProjectionOn2DSkin().

◆ ComputeBoxTargetPointIntersection()

template<typename ExecSpace , int_t Dim>
void PACMAN::FiniteElements::ComputeBoxTargetPointIntersection ( Transfer< ExecSpace, Dim > &  transfer)

Intersect target points with source-element bounding boxes, then evaluate FE interpolation for intersecting candidates.

Template Parameters
ExecSpaceKokkos execution space used for search/interpolation.
DimSpatial dimension of the interpolation problem.
Parameters
[in,out]transferTransfer descriptor containing source mesh, connectivity, source values, and target buffers.

Reads: sourcePoints, sourceValues, connValues, connOffsets, cellTypes. Writes: targetValues, targetStatus (for points successfully interpolated as TransferStatus::INTER).

Definition at line 33 of file FTUtils.hpp.

◆ ComputeLinearSkin()

template<typename ExecSpace , int_t Dim>
void PACMAN::FiniteElements::ComputeLinearSkin ( Transfer< ExecSpace, Dim > &  transfer)

Build tetrahedralized boundary skin from source elements.

The routine enumerates candidate element faces, removes interior duplicates, triangulates surviving boundary faces, then stores the resulting skin faces and parent element ids in the transfer object.

Template Parameters
ExecSpaceKokkos execution space used for scans, sorting, and compaction.
DimSpatial dimension of the problem (1, 2, or 3).
Parameters
[in,out]transferTransfer descriptor containing source connectivity and metadata. Reads: sourcePoints, connValues, connOffsets, cellTypes, nbLinearSkinFaces. Writes: skinFaces, skinParents.

Definition at line 68 of file ComputeLinearSkin.hpp.

References getLinearFacesPaddedEntries(), getLinearFacesPaddedOffsets(), getTriFacesEntries(), getTriFacesOffsets(), getTriLocFacesEntries(), getTriLocFacesOffsets(), and PACMAN::FiniteElements::permute< T, Dim >::permuteCol().

◆ ComputeProjectionOn1DSkin()

template<typename ExecSpace >
void PACMAN::FiniteElements::ComputeProjectionOn1DSkin ( Transfer< ExecSpace, 1 > &  transfer,
bool  extrapol = false 
)

Project outside target points on a 1D skin and evaluate FE values.

Template Parameters
ExecSpaceKokkos execution space used for kernels.
Parameters
[in,out]transferTransfer descriptor containing mesh/field data. Reads: source mesh/values, connectivity, skin entities, target points/status. Writes: targetValues, targetStatus, and optionally projected targetPoints when extrapol == false.
[in]extrapolIf true, keep target coordinates and mark outside points as TransferStatus::EXTRAP; otherwise clamp projected coordinates and mark as TransferStatus::CLAMP.

Definition at line 287 of file SkinProjection.hpp.

References PACMAN::CLAMP, PACMAN::EXTRAP, PACMAN::fp_consts::max(), and PACMAN::OUTSIDE.

◆ ComputeProjectionOn2DSkin()

template<typename ExecSpace >
void PACMAN::FiniteElements::ComputeProjectionOn2DSkin ( Transfer< ExecSpace, 2 > &  transfer,
bool  extrapol = false 
)

Project outside target points on a 2D skin and evaluate FE values.

Template Parameters
ExecSpaceKokkos execution space used for kernels.
Parameters
[in,out]transferTransfer descriptor containing mesh/field data. Reads: source mesh/values, connectivity, skin entities, target points/status. Writes: targetValues, targetStatus, and optionally projected targetPoints when extrapol == false.
[in]extrapolIf true, keep target coordinates and mark outside points as TransferStatus::EXTRAP; otherwise clamp projected coordinates and mark as TransferStatus::CLAMP.

Definition at line 179 of file SkinProjection.hpp.

References PACMAN::CLAMP, closest_point_to_edge(), PACMAN::EXTRAP, PACMAN::fp_consts::max(), and PACMAN::OUTSIDE.

◆ ComputeProjectionOn3DSkin()

template<typename ExecSpace >
void PACMAN::FiniteElements::ComputeProjectionOn3DSkin ( Transfer< ExecSpace, 3 > &  transfer,
bool  extrapol = false 
)

Project outside target points on a 3D skin and evaluate FE values.

Template Parameters
ExecSpaceKokkos execution space used for queries and kernels.
Parameters
[in,out]transferTransfer descriptor containing mesh/field data. Reads: source mesh/values, connectivity, skin entities, target points/status. Writes: targetValues, targetStatus, and optionally projected targetPoints when extrapol == false.
[in]extrapolIf true, keep target coordinates and mark outside points as TransferStatus::EXTRAP; otherwise clamp projected coordinates and mark as TransferStatus::CLAMP.

Definition at line 52 of file SkinProjection.hpp.

References PACMAN::CLAMP, and PACMAN::EXTRAP.

◆ FTInterClamp()

template<typename ExecSpace , int_t Dim>
void PACMAN::FiniteElements::FTInterClamp ( Transfer< ExecSpace, Dim > &  transfer)

Interpolate target points from FE cells and clamp outside points by projection onto the source mesh skin.

Template Parameters
ExecSpaceKokkos execution space used for search/projection kernels.
DimSpatial dimension of the interpolation problem.
Parameters
[in,out]transferTransfer descriptor holding interpolation data. Reads: source mesh/field data and target points. Writes: targetValues and targetStatus.
Note
Outside points are projected onto the linearized boundary skin and clamped to boundary-consistent interpolated values.

Definition at line 29 of file FTInterpClamp.hpp.

Referenced by PACMAN::Interpolate().

◆ FTInterExtrap()

template<typename ExecSpace , int_t Dim>
void PACMAN::FiniteElements::FTInterExtrap ( Transfer< ExecSpace, Dim > &  transfer)

Interpolate target points from FE cells and extrapolate outside points via projection onto the source mesh skin to retrieve FE cell for extrapolation.

Template Parameters
ExecSpaceKokkos execution space used for search/projection kernels.
DimSpatial dimension of the interpolation problem.
Parameters
[in,out]transferTransfer descriptor holding interpolation data. Reads: source mesh/field data and target points. Writes: targetValues and targetStatus.
Note
Outside points are projected on the linearized boundary skin before interpolation/extrapolation.

Definition at line 30 of file FTInterpExtrap.hpp.

Referenced by PACMAN::Interpolate().

◆ FTInterpNearest()

template<typename ExecSpace , int_t Dim>
void PACMAN::FiniteElements::FTInterpNearest ( Transfer< ExecSpace, Dim > &  transfer)

Interpolate target points from FE cells and fallback to nearest source-node value outside the source mesh.

Template Parameters
ExecSpaceKokkos execution space used for search and interpolation.
DimSpatial dimension of the interpolation problem.
Parameters
[in,out]transferTransfer descriptor holding interpolation data. Reads: source mesh/field data and target points. Writes: targetValues and targetStatus.
Note
Target points not intersecting any source element are assigned the value of their nearest source point and marked with TransferStatus::NEAREST.

Definition at line 28 of file FTInterpNearest.hpp.

References PACMAN::INTER, and PACMAN::NEAREST.

Referenced by PACMAN::Interpolate().

◆ FTInterZero()

template<typename ExecSpace , int Dim>
void PACMAN::FiniteElements::FTInterZero ( Transfer< ExecSpace, Dim > &  transfer)

Interpolate target points from FE cells, zero-filling points outside the source mesh.

Template Parameters
ExecSpaceKokkos execution space used for the intersection/query kernels.
DimSpatial dimension of the interpolation problem.
Parameters
[in,out]transferTransfer descriptor holding interpolation data. Reads: source mesh/field data and target points. Writes: targetValues and targetStatus.
Note
Points that do not intersect any source element are assigned a zero value.

Definition at line 29 of file FTInterpZero.hpp.

Referenced by PACMAN::Interpolate().

◆ FTNearest()

template<typename ExecSpace , int_t Dim>
void PACMAN::FiniteElements::FTNearest ( Transfer< ExecSpace, Dim > &  transfer)

Transfer source values to target points using nearest-neighbor search.

Template Parameters
ExecSpaceKokkos execution space used for BVH build and query.
DimSpatial dimension of the point clouds (1, 2, or 3).
Parameters
[in,out]transferTransfer descriptor holding interpolation data. Reads: sourcePoints, sourceValues, targetPoints. Writes: targetValues.
Note
This method is point-based and does not use connectivity or cell types.

Definition at line 28 of file FTNearest.hpp.

Referenced by PACMAN::Interpolate().

◆ getDimension()

◆ getLinearFacesPaddedEntries()

std::vector< shortint_t > PACMAN::FiniteElements::getLinearFacesPaddedEntries ( const int_t  dimension)
inline

Get padded linear-face entry table for a given dimension.

Parameters
[in]dimensionRequested dimension (1, 2, or 3).
Returns
Flattened face-node entries indexed through the corresponding offset table.

Definition at line 495 of file FESkinTools.hpp.

References elemDim1LinearFacesPaddedEntries, elemDim2LinearFacesPaddedEntries, and elemDim3LinearFacesPaddedEntries.

Referenced by ComputeLinearSkin().

◆ getLinearFacesPaddedOffsets()

std::vector< offset_t > PACMAN::FiniteElements::getLinearFacesPaddedOffsets ( const int_t  dimension)
inline

Get padded linear-face offset table for a given dimension.

Parameters
[in]dimensionRequested dimension (1, 2, or 3).
Returns
Offset table indexed by PACMAN cell type.

Definition at line 475 of file FESkinTools.hpp.

References elemDim1LinearFacesPaddedOffsets, elemDim2LinearFacesPaddedOffsets, and elemDim3LinearFacesPaddedOffsets.

Referenced by ComputeLinearSkin().

◆ getNbFace()

template<int_t Dim>
KOKKOS_INLINE_FUNCTION shortint_t PACMAN::FiniteElements::getNbFace ( const CellType type)

Dimension-dispatched helper returning face count for one cell type.

Template Parameters
DimRequested table dimension (1, 2, or 3).
Parameters
[in]typePACMAN cell type.
Returns
Number of faces for the selected dimension, or -1 for invalid cases.

Definition at line 204 of file FESkinTools.hpp.

References getNbFaceDim1(), getNbFaceDim2(), and getNbFaceDim3().

◆ getNbFaceDim1()

◆ getNbFaceDim2()

◆ getNbFaceDim3()

◆ getTriFacesEntries()

std::vector< shortint_t > PACMAN::FiniteElements::getTriFacesEntries ( const int_t  dimension)
inline

Get triangulated-face entry table for a given dimension.

Parameters
[in]dimensionRequested dimension (1, 2, or 3).
Returns
Flattened triangulated face entries.

Definition at line 801 of file FESkinTools.hpp.

References elemDim1TriFacesEntries, elemDim2TriFacesEntries, and elemDim3TriFacesEntries.

Referenced by ComputeLinearSkin().

◆ getTriFacesOffsets()

std::vector< offset_t > PACMAN::FiniteElements::getTriFacesOffsets ( const int_t  dimension)
inline

Get triangulated-face offset table for a given dimension.

Parameters
[in]dimensionRequested dimension (1, 2, or 3).
Returns
Offset table for triangulated face entries.

Definition at line 783 of file FESkinTools.hpp.

References elemDim1TriFacesOffsets, elemDim2TriFacesOffsets, and elemDim3TriFacesOffsets.

Referenced by ComputeLinearSkin().

◆ getTriLocFacesEntries()

std::vector< shortint_t > PACMAN::FiniteElements::getTriLocFacesEntries ( const int_t  dimension)
inline

Get local triangulated-face entry table for a given dimension.

Parameters
[in]dimensionRequested dimension (1, 2, or 3).
Returns
Flattened local triangulated face entries.

Definition at line 1051 of file FESkinTools.hpp.

References elemDim1TriLocFacesEntries, elemDim2TriLocFacesEntries, and elemDim3TriLocFacesEntries.

Referenced by ComputeLinearSkin().

◆ getTriLocFacesOffsets()

std::vector< offset_t > PACMAN::FiniteElements::getTriLocFacesOffsets ( const int_t  dimension)
inline

Get local triangulated-face offset table for a given dimension.

Parameters
[in]dimensionRequested dimension (1, 2, or 3).
Returns
Offset table for local triangulated face entries.

Definition at line 1033 of file FESkinTools.hpp.

References elemDim1TriLocFacesOffsets, elemDim2TriLocFacesOffsets, and elemDim3TriLocFacesOffsets.

Referenced by ComputeLinearSkin().

◆ IsBaryCoordInsideGeo()

template<GeoSupport T>
KOKKOS_INLINE_FUNCTION bool PACMAN::FiniteElements::IsBaryCoordInsideGeo ( const fp_t  xi,
const fp_t  eta,
const fp_t  phi 
)

Generic predicate to test if local coordinates lie inside a reference geometry.

Template Parameters
TGeometric support kind (POINT, LINE, TRIANGLE, ...).
Parameters
[in]xiFirst local coordinate.
[in]etaSecond local coordinate.
[in]phiThird local coordinate.
Returns
true when (xi, eta, phi) is inside the reference support.
Note
The primary template is intentionally not implemented and aborts at runtime. Supported behavior is provided through explicit specializations.

Definition at line 43 of file FETools.hpp.

◆ IsBaryCoordInsideGeo< GeoSupport::HEXAHEDRON >()

◆ IsBaryCoordInsideGeo< GeoSupport::LINE >()

◆ IsBaryCoordInsideGeo< GeoSupport::POINT >()

◆ IsBaryCoordInsideGeo< GeoSupport::PYRAMID >()

◆ IsBaryCoordInsideGeo< GeoSupport::QUAD >()

◆ IsBaryCoordInsideGeo< GeoSupport::TETRA >()

◆ IsBaryCoordInsideGeo< GeoSupport::TRIANGLE >()

◆ IsBaryCoordInsideGeo< GeoSupport::WEDGE >()

Variable Documentation

◆ elemDim1LinearFacesPaddedEntries

std::vector<shortint_t> PACMAN::FiniteElements::elemDim1LinearFacesPaddedEntries
static

Definition at line 254 of file FESkinTools.hpp.

Referenced by getLinearFacesPaddedEntries().

◆ elemDim1LinearFacesPaddedOffsets

std::vector<offset_t> PACMAN::FiniteElements::elemDim1LinearFacesPaddedOffsets
static

Definition at line 219 of file FESkinTools.hpp.

Referenced by getLinearFacesPaddedOffsets().

◆ elemDim1TriFacesEntries

std::vector<shortint_t> PACMAN::FiniteElements::elemDim1TriFacesEntries
static

Definition at line 548 of file FESkinTools.hpp.

Referenced by getTriFacesEntries().

◆ elemDim1TriFacesOffsets

std::vector<offset_t> PACMAN::FiniteElements::elemDim1TriFacesOffsets
static

Definition at line 511 of file FESkinTools.hpp.

Referenced by getTriFacesOffsets().

◆ elemDim1TriLocFacesEntries

std::vector<shortint_t> PACMAN::FiniteElements::elemDim1TriLocFacesEntries
static

Definition at line 853 of file FESkinTools.hpp.

Referenced by getTriLocFacesEntries().

◆ elemDim1TriLocFacesOffsets

std::vector<offset_t> PACMAN::FiniteElements::elemDim1TriLocFacesOffsets
static

Definition at line 816 of file FESkinTools.hpp.

Referenced by getTriLocFacesOffsets().

◆ elemDim2LinearFacesPaddedEntries

std::vector<shortint_t> PACMAN::FiniteElements::elemDim2LinearFacesPaddedEntries
static

Definition at line 325 of file FESkinTools.hpp.

Referenced by getLinearFacesPaddedEntries().

◆ elemDim2LinearFacesPaddedOffsets

std::vector<offset_t> PACMAN::FiniteElements::elemDim2LinearFacesPaddedOffsets
static

Definition at line 288 of file FESkinTools.hpp.

Referenced by getLinearFacesPaddedOffsets().

◆ elemDim2TriFacesEntries

std::vector<shortint_t> PACMAN::FiniteElements::elemDim2TriFacesEntries
static

Definition at line 622 of file FESkinTools.hpp.

Referenced by getTriFacesEntries().

◆ elemDim2TriFacesOffsets

std::vector<offset_t> PACMAN::FiniteElements::elemDim2TriFacesOffsets
static

Definition at line 586 of file FESkinTools.hpp.

Referenced by getTriFacesOffsets().

◆ elemDim2TriLocFacesEntries

std::vector<shortint_t> PACMAN::FiniteElements::elemDim2TriLocFacesEntries
static

Definition at line 924 of file FESkinTools.hpp.

Referenced by getTriLocFacesEntries().

◆ elemDim2TriLocFacesOffsets

std::vector<offset_t> PACMAN::FiniteElements::elemDim2TriLocFacesOffsets
static

Definition at line 888 of file FESkinTools.hpp.

Referenced by getTriLocFacesOffsets().

◆ elemDim3LinearFacesPaddedEntries

std::vector<shortint_t> PACMAN::FiniteElements::elemDim3LinearFacesPaddedEntries
static

Definition at line 405 of file FESkinTools.hpp.

Referenced by getLinearFacesPaddedEntries().

◆ elemDim3LinearFacesPaddedOffsets

std::vector<offset_t> PACMAN::FiniteElements::elemDim3LinearFacesPaddedOffsets
static

Definition at line 369 of file FESkinTools.hpp.

Referenced by getLinearFacesPaddedOffsets().

◆ elemDim3TriFacesEntries

std::vector<shortint_t> PACMAN::FiniteElements::elemDim3TriFacesEntries
static

Definition at line 711 of file FESkinTools.hpp.

Referenced by getTriFacesEntries().

◆ elemDim3TriFacesOffsets

std::vector<offset_t> PACMAN::FiniteElements::elemDim3TriFacesOffsets
static

Definition at line 675 of file FESkinTools.hpp.

Referenced by getTriFacesOffsets().

◆ elemDim3TriLocFacesEntries

std::vector<shortint_t> PACMAN::FiniteElements::elemDim3TriLocFacesEntries
static

Definition at line 996 of file FESkinTools.hpp.

Referenced by getTriLocFacesEntries().

◆ elemDim3TriLocFacesOffsets

std::vector<offset_t> PACMAN::FiniteElements::elemDim3TriLocFacesOffsets
static

Definition at line 959 of file FESkinTools.hpp.

Referenced by getTriLocFacesOffsets().