|
| struct | MoFEM::OpCalculateScalarFieldValues_General< T, A > |
| | Scalar field values at integration points. More...
|
| |
| struct | MoFEM::OpCalculateScalarFieldValues |
| | Specialization for double precision scalar field values calculation. More...
|
| |
| struct | MoFEM::OpCalculateScalarFieldValuesFromPetscVecImpl< CTX > |
| | Calculate scalar field values from PETSc vector at integration points. More...
|
| |
| struct | MoFEM::OpCalculateVectorFieldValues_General< Tensor_Dim, T, L, A > |
| | Calculate field values for tensor field rank 1, i.e. vector field. More...
|
| |
| struct | MoFEM::OpCalculateVectorFieldValues_General< Tensor_Dim, double, ublas::row_major, DoubleAllocator > |
| | Calculate field values (template specialization) for tensor field rank 1, i.e. vector field. More...
|
| |
| struct | MoFEM::OpCalculateVectorFieldValues< Tensor_Dim > |
| | Specialization for double precision vector field values calculation. More...
|
| |
| struct | MoFEM::OpCalculateDivergenceVectorFieldValues< Tensor_Dim, COORDINATE_SYSTEM > |
| | Calculate divergence of vector field at integration points. More...
|
| |
| struct | MoFEM::OpCalculateVectorFieldValuesFromPetscVecImpl< Tensor_Dim, CTX > |
| | Approximate field values for given petsc vector. More...
|
| |
| struct | MoFEM::OpCalculateTensor2FieldValues_General< Tensor_Dim0, Tensor_Dim1, T, L, A > |
| | Calculate field values for tenor field rank 2. More...
|
| |
| struct | MoFEM::OpCalculateTensor2FieldValues_General< Tensor_Dim0, Tensor_Dim1, double, ublas::row_major, DoubleAllocator > |
| |
| struct | MoFEM::OpCalculateTensor2FieldValues< Tensor_Dim0, Tensor_Dim1 > |
| | Get values at integration pts for tensor field rank 2, i.e. matrix field. More...
|
| |
| struct | MoFEM::OpCalculateTensor2FieldValuesDot< Tensor_Dim0, Tensor_Dim1 > |
| | Get time direvarive values at integration pts for tensor field rank 2, i.e. matrix field. More...
|
| |
| struct | MoFEM::OpCalculateTensor2SymmetricFieldValues< Tensor_Dim > |
| | Calculate symmetric tensor field values at integration pts. More...
|
| |
| struct | MoFEM::OpCalculateTensor2SymmetricFieldValuesDot< Tensor_Dim > |
| | Calculate symmetric tensor field rates ant integratio pts. More...
|
| |
| struct | MoFEM::OpCalculateScalarFieldGradient_General< Tensor_Dim, T, L, A > |
| | Evaluate field gradient values for scalar field, i.e. gradient is tensor rank 1 (vector) More...
|
| |
| struct | MoFEM::OpCalculateScalarFieldGradient_General< Tensor_Dim, double, ublas::row_major, DoubleAllocator > |
| | Evaluate field gradient values for scalar field, i.e. gradient is tensor rank 1 (vector), specialization. More...
|
| |
| struct | MoFEM::OpCalculateScalarFieldGradient< Tensor_Dim > |
| | Get field gradients at integration pts for scalar field rank 0, i.e. vector field. More...
|
| |
| struct | MoFEM::OpCalculateScalarFieldHessian< Tensor_Dim > |
| | Evaluate field gradient values for scalar field, i.e. gradient is tensor rank 1 (vector), specialization. More...
|
| |
| struct | MoFEM::OpCalculateVectorFieldGradient_General< Tensor_Dim0, Tensor_Dim1, S, T, L, A > |
| | Evaluate field gradient values for vector field, i.e. gradient is tensor rank 2. More...
|
| |
| struct | MoFEM::OpCalculateVectorFieldGradient_General< Tensor_Dim0, Tensor_Dim1, S, double, ublas::row_major, DoubleAllocator > |
| |
| struct | MoFEM::OpCalculateVectorFieldGradient< Tensor_Dim0, Tensor_Dim1, S > |
| | Get field gradients at integration pts for scalar field rank 0, i.e. vector field. More...
|
| |
| struct | MoFEM::OpCalculateVectorFieldGradientDot< Tensor_Dim0, Tensor_Dim1 > |
| | Get field gradients time derivative at integration pts for scalar field rank 0, i.e. vector field. More...
|
| |
| struct | MoFEM::OpCalculateTensor2SymmetricFieldGradient_General< Tensor_Dim0, Tensor_Dim1, T, L, A > |
| | Evaluate field gradient values for symmetric 2nd order tensor field, i.e. gradient is tensor rank 3. More...
|
| |
| struct | MoFEM::OpCalculateTensor2SymmetricFieldGradient_General< Tensor_Dim0, Tensor_Dim1, double, ublas::row_major, DoubleAllocator > |
| |
| struct | MoFEM::OpCalculateTensor2SymmetricFieldGradient< Tensor_Dim0, Tensor_Dim1 > |
| | Get field gradients at integration pts for symmetric tensorial field rank 2. More...
|
| |
| struct | MoFEM::OpCalculateVectorFieldHessian< Tensor_Dim0, Tensor_Dim1 > |
| |
| struct | MoFEM::OpTensorTimesSymmetricTensor< DIM_01, DIM_23, S > |
| | Calculate \( \pmb\sigma_{ij} = \mathbf{D}_{ijkl} \pmb\varepsilon_{kl}
\). More...
|
| |
| struct | MoFEM::OpSymmetrizeTensor< DIM > |
| | Operator for symmetrizing tensor fields. More...
|
| |
| struct | MoFEM::OpScaleMatrix |
| | Operator for scaling matrix values by a scalar factor. More...
|
| |
| struct | MoFEM::OpCalculateHVecVectorField_General< 3, Field_Dim, double, ublas::row_major, DoubleAllocator > |
| | Get vector field for H-div approximation. More...
|
| |
| struct | MoFEM::OpCalculateHVecVectorField< Base_Dim, Field_Dim > |
| | Get vector field for H-div approximation. More...
|
| |
| struct | MoFEM::OpCalculateHVecVectorFieldDot< 3, Field_Dim > |
| |
| struct | MoFEM::OpCalculateHdivVectorDivergence< BASE_DIM, SPACE_DIM > |
| | Calculate divergence of vector field. More...
|
| |
| struct | MoFEM::OpCalculateHVecVectorGradient< BASE_DIM, SPACE_DIM > |
| | Calculate gradient of vector field. More...
|
| |
| struct | MoFEM::OpCalculateHVecTensorGradient< 3, 9, 3 > |
| | Specialisation for 3D tensor field gradient calculation. More...
|
| |
| struct | MoFEM::OpCalculateHVecTensorGradient< 9, 9, 3 > |
| |
| struct | MoFEM::OpCalculateHVecVectorHessian< BASE_DIM, SPACE_DIM > |
| | Calculate gradient of vector field. More...
|
| |
| struct | MoFEM::OpCalculateHdivVectorDivergenceDot< Tensor_Dim1, Tensor_Dim2 > |
| | Calculate divergence of vector field dot. More...
|
| |
| struct | MoFEM::OpCalculateHcurlVectorCurl< 3, 3 > |
| | Calculate curl of vector field. More...
|
| |
| struct | MoFEM::OpCalculateHcurlVectorCurl< 1, 2 > |
| | Calculate curl of vector field. More...
|
| |
| struct | MoFEM::OpCalculateHcurlVectorCurl< 1, 3 > |
| | Calculate curl of vector field. More...
|
| |
| struct | MoFEM::OpCalculateHVecTensorField< Tensor_Dim0, Tensor_Dim1 > |
| | Calculate tenor field using vectorial base, i.e. Hdiv/Hcurl. More...
|
| |
| struct | MoFEM::OpCalculateBrokenHVecTensorField< Tensor_Dim0, Tensor_Dim1 > |
| | Get tensor field for H-div approximation. More...
|
| |
| struct | MoFEM::OpCalculateHTensorTensorField< Tensor_Dim0, Tensor_Dim1 > |
| | Calculate tenor field using tensor base, i.e. Hdiv/Hcurl. More...
|
| |
| struct | MoFEM::OpCalculateHVecTensorDivergence< Tensor_Dim0, Tensor_Dim1, CoordSys > |
| | Calculate divergence of tonsorial field using vectorial base. More...
|
| |
| struct | MoFEM::OpCalculateBrokenHVecTensorDivergence< Tensor_Dim0, Tensor_Dim1, CoordSys > |
| | Calculate divergence of tonsorial field using vectorial base. More...
|
| |
| struct | MoFEM::OpCalculateHVecTensorTrace< Tensor_Dim, OpBase > |
| | Calculate trace of vector (Hdiv/Hcurl) space. More...
|
| |
| struct | MoFEM::OpSetInvJacToScalarBasesBasic |
| |
| struct | MoFEM::OpSetInvJacSpaceForFaceImpl< 2, 1 > |
| |
| struct | MoFEM::OpSetInvJacSpaceForFaceImpl< 3, 1 > |
| |
| struct | MoFEM::OpSetInvJacSpaceForFaceImpl< 2, 2 > |
| |
| struct | MoFEM::OpSetInvJacH1ForFace< DERIVARIVE > |
| |
| struct | MoFEM::OpSetInvJacL2ForFace< DERIVARIVE > |
| |
| struct | MoFEM::OpSetInvJacH1ForFaceEmbeddedIn3DSpace< DERIVARIVE > |
| |
| struct | MoFEM::OpSetInvJacL2ForFaceEmbeddedIn3DSpace< DERIVARIVE > |
| |
| struct | MoFEM::OpSetInvJacHcurlFaceImpl< 2 > |
| |
| struct | MoFEM::OpSetInvJacHcurlFaceImpl< 3 > |
| |
| struct | MoFEM::OpMakeHdivFromHcurl |
| | Make Hdiv space from Hcurl space in 2d. More...
|
| |
| struct | MoFEM::OpSetCovariantPiolaTransformOnFace2DImpl< 2 > |
| | Apply contravariant (Piola) transfer to Hdiv space on face. More...
|
| |
| struct | MoFEM::OpSetContravariantPiolaTransformOnFace2DImpl< 2 > |
| |
| struct | MoFEM::OpSetContravariantPiolaTransformOnFace2DImpl< 3 > |
| |
| struct | MoFEM::OpSetContravariantPiolaTransformOnEdge2D |
| |
| struct | MoFEM::OpMultiplyDeterminantOfJacobianAndWeightsForFatPrisms |
| | Operator for fat prism element updating integration weights in the volume. More...
|
| |
| struct | MoFEM::OpCalculateInvJacForFatPrism |
| | Calculate inverse of jacobian for face element. More...
|
| |
| struct | MoFEM::OpSetInvJacH1ForFatPrism |
| | Transform local reference derivatives of shape functions to global derivatives. More...
|
| |
| struct | MoFEM::OpCalculateInvJacForFlatPrism |
| | Calculate inverse of jacobian for face element. More...
|
| |
| struct | MoFEM::OpSetInvJacH1ForFlatPrism |
| | Transform local reference derivatives of shape functions to global derivatives. More...
|
| |
| struct | MoFEM::OpInvertMatrix< DIM > |
| | Operator for inverting matrices at integration points. More...
|
| |
| struct | MoFEM::OpCalculateTraceFromMat< DIM > |
| | Operator for calculating the trace of matrices at integration points. More...
|
| |
| struct | MoFEM::OpCalculateTraceFromSymmMat< DIM > |
| | Calculates the trace of an input matrix. More...
|
| |
User data operators for finite element computations.
This file contains a comprehensive collection of user data operators used in MoFEM finite element computations. These operators provide functionality for calculating, transforming, and manipulating field values at integration points.
Main Categories of Operators:
Field Value Calculation Operators
- Scalar Field Operators: Calculate scalar field values at integration points
- OpCalculateScalarFieldValues: General scalar field value calculation
- OpCalculateScalarFieldValuesFromPetscVecImpl: PETSc vector-based scalar values
- Vector Field Operators: Calculate vector field values at integration points
- OpCalculateVectorFieldValues: General vector field value calculation
- OpCalculateDivergenceVectorFieldValues: Divergence calculation for vector fields
- Tensor Field Operators: Calculate tensor field values at integration points
- OpCalculateTensor2FieldValues: Second-rank tensor field calculations
- OpCalculateTensor2SymmetricFieldValues: Symmetric tensor field calculations
Field Gradient Calculation Operators
- Scalar Gradient Operators:
- OpCalculateScalarFieldGradient: Gradient of scalar fields
- OpCalculateScalarFieldHessian: Hessian (second derivatives) of scalar fields
- Vector Gradient Operators:
- OpCalculateVectorFieldGradient: Gradient of vector fields
Matrix and Tensor Operations
- Matrix Manipulation:
- OpInvertMatrix: Matrix inversion at integration points
- OpScaleMatrix: Element-wise matrix scaling operations
- OpCalculateTraceFromMat: Trace calculation for matrices
- Tensor Operations:
- OpSymmetrizeTensor: Tensor symmetrization operations
- OpTensorTimesSymmetricTensor: Tensor multiplication operations
Coordinate and Geometry Operations
- Transformation Operators: Handle coordinate transformations and geometric operations
- Integration Point Operations: Manage data at Gauss integration points
Key Features:
Template-Based Design
Most operators are implemented as template structures allowing:
- Flexible data types (double, float, etc.)
- Various tensor dimensions and field dimensions
- Different storage layouts and allocators
- Compile-time optimization for specific use cases
PETSc Integration
Many operators provide seamless integration with PETSc:
- Direct access to PETSc vectors and matrices
- Efficient data exchange between MoFEM and PETSc
- Support for distributed computing environments
Field Space Support
Operators support various finite element field spaces:
- H1 (continuous) spaces for scalar and vector fields
- Hdiv spaces for flux-like vector fields
- Hcurl spaces for curl-conforming vector fields
- L2 spaces for discontinuous fields
Memory Management
Robust memory management through:
- Smart pointer usage (boost::shared_ptr)
- RAII principles for resource management
- Exception safety and error handling
Usage Patterns:
- Field Evaluation: Calculate field values at integration points for post-processing, visualization, or coupling with other physics
- Gradient Calculations: Compute spatial derivatives for stress analysis, heat conduction, fluid dynamics, and other gradient-dependent phenomena
- Matrix Operations: Perform linear algebra operations needed in constitutive relations, coordinate transformations, and iterative solvers
- Data Extraction: Extract computed results from finite element solutions for analysis, visualization, or coupling with external codes
Thread Safety and Performance:
- Operators are designed to be thread-safe when used properly
- Optimized for performance in parallel finite element computations
- Minimal memory allocations during computation loops
- Note
- These operators are typically used within the MoFEM pipeline system and are automatically integrated into finite element assembly processes.
- See also
- ForcesAndSourcesCore::UserDataOperator for base class documentation
-
EntitiesFieldData for field data management
-
PipelineManager for operator pipeline management
Definition in file UserDataOperators.hpp.