v0.15.0
Loading...
Searching...
No Matches
Classes | Namespaces | Typedefs | Functions
HODataOperators.hpp File Reference

High-order geometry operators for finite element computations. More...

Go to the source code of this file.

Classes

struct  MoFEM::OpCalculateHOJacForVolume
 Calculate Jacobian on Hex or other volume elements which are not simplex. More...
 
struct  MoFEM::OpCalculateHOCoords< FIELD_DIM >
 Calculate high-order coordinates at Gauss points. More...
 
struct  MoFEM::OpSetHOInvJacToScalarBasesImpl
 
struct  MoFEM::OpSetHOInvJacToScalarBases< DIM >
 Set inverse jacobian to base functions. More...
 
struct  MoFEM::OpSetHOInvJacToScalarBases< 2 >
 
struct  MoFEM::OpSetHOInvJacVectorBase
 Transform local reference derivatives of shape functions to global derivatives. More...
 
struct  MoFEM::OpSetHOWeightsOnFace
 Modify integration weights on face to take into account higher-order geometry. More...
 
struct  MoFEM::OpSetHOWeightsOnEdge
 Modify integration weights on edge to take into account higher-order geometry. More...
 
struct  MoFEM::OpSetHOWeightsOnSubDim< 2 >
 
struct  MoFEM::OpSetHOWeightsOnSubDim< 3 >
 
struct  MoFEM::OpSetHOWeights
 Set integration weights for higher-order elements. More...
 
struct  MoFEM::OpSetHOContravariantPiolaTransform
 Apply contravariant (Piola) transformation to Hdiv space for HO geometry. More...
 
struct  MoFEM::OpSetHOCovariantPiolaTransform
 Apply covariant (Piola) transformation to Hcurl space for HO geometry. More...
 
struct  MoFEM::OpCalculateHOJacForFaceImpl< 2 >
 
struct  MoFEM::OpCalculateHOJacForFaceImpl< 3 >
 
struct  MoFEM::OpCalculateHOJac< 3 >
 
struct  MoFEM::OpCalculateHOJac< 2 >
 
struct  MoFEM::OpGetHONormalsOnFace< FIELD_DIM >
 Calculate normal vectors at Gauss points of face elements. More...
 
struct  MoFEM::OpHOSetContravariantPiolaTransformOnFace3D
 Transform Hdiv base fluxes from reference element to physical face in 3D. More...
 
struct  MoFEM::OpHOSetContravariantPiolaTransformOnEdge3D
 Transform Hcurl base functions from reference element to physical edge in 3D. More...
 
struct  MoFEM::OpHOSetCovariantPiolaTransformOnFace3D
 Transform Hcurl base functions from reference element to physical face in 3D. More...
 
struct  MoFEM::OpGetHOTangentsOnEdge< FIELD_DIM >
 Calculate tangent vector on edge from HO geometry approximation. More...
 
struct  MoFEM::OpScaleBaseBySpaceInverseOfMeasure
 Scale base functions by inverses of measure of element. More...
 
struct  MoFEM::AddHOOps< 2, 2, 2 >
 Specialization for 2D face elements in 2D problems with 2D space. More...
 
struct  MoFEM::AddHOOps< 2, 2, 3 >
 Specialization for 2D face elements in 2D problems embedded in 3D space. More...
 
struct  MoFEM::AddHOOps< 1, 2, 2 >
 Specialization for 1D edge elements in 2D problems with 2D space. More...
 
struct  MoFEM::AddHOOps< 1, 3, 3 >
 Specialization for 1D edge elements in 3D problems with 3D space. More...
 
struct  MoFEM::AddHOOps< 2, 3, 3 >
 Specialization for 2D face elements in 3D problems with 3D space. More...
 
struct  MoFEM::AddHOOps< 3, 3, 3 >
 Specialization for 3D volume elements in 3D problems with 3D space. More...
 

Namespaces

namespace  MoFEM
 implementation of Data Operators for Forces and Sources
 

Typedefs

using MoFEM::OpCalculateHOJacVolume = OpCalculateHOJacForVolume
 
using MoFEM::OpCalculateHOJacForFace = OpCalculateHOJacForFaceImpl< 2 >
 
using MoFEM::OpCalculateHOJacForFaceEmbeddedIn3DSpace = OpCalculateHOJacForFaceImpl< 3 >
 

Functions

template<typename E >
MoFEMErrorCode MoFEM::addHOOpsVol (const std::string field, E &e, bool h1, bool hcurl, bool hdiv, bool l2)
 
template<typename E >
MoFEMErrorCode MoFEM::addHOOpsFace3D (const std::string field, E &e, bool hcurl, bool hdiv)
 

Detailed Description

High-order geometry operators for finite element computations.

This file provides operators for managing high-order (curved) geometry in finite element analysis. These operators handle geometric transformations, coordinate mappings, and basis function modifications required when elements have curved boundaries or use high-order shape functions.

Main Functionality:

Jacobian Calculations: Compute transformation matrices between reference and physical coordinates for curved elements (OpCalculateHOJacForVolume, OpCalculateHOJacForFace, OpGetHOTangentsOnEdge, OpGetHONormalsOnFace)

Coordinate Transformations: Calculate physical coordinates at integration points using high-order approximations (OpCalculateHOCoords)

Basis Function Transformations: Apply Piola transforms and inverse Jacobian operations to basis functions for H1, Hdiv, and Hcurl spaces (OpSetHOContravariantPiolaTransform, OpSetHOCovariantPiolaTransform)

Integration Weight Corrections: Adjust integration weights to account for geometric distortions in curved elements (OpSetHOWeights, OpSetHOWeightsOnFace)

Pipeline Management: AddHOOps template specializations automatically add appropriate HO operators to finite element pipelines based on element dimension and problem type

Usage Pattern:

  1. Use AddHOOps<FE_DIM, PROBLEM_DIM, SPACE_DIM>::add() to automatically add required HO operators to your finite element pipeline
  2. Individual operators can be used directly for specialized applications
  3. Operators handle both internal computations and external data access via shared pointers to Jacobian matrices and determinants

Key Benefits:

Note
Essential for problems involving curved boundaries, contact mechanics, fluid-structure interaction, and any application requiring geometric accuracy beyond linear approximation.

Definition in file HODataOperators.hpp.