v0.8.4
Modules | Classes | Functions
Forces and sources

Manages complexities related to assembly of vector and matrices at single finite element level. More...

Collaboration diagram for Forces and sources:

Modules

 Edge Element
 Implementation of edge element.
 
 Face Element
 Implementation of face element.
 
 Prism Element
 
 User data operator
 Users data structures and operator.
 
 Vertex Element
 Finite element and operators for vertex entity.
 
 Volume Element
 Implementation of general volume element.
 

Classes

struct  MoFEM::DataOperator
 base operator to do operations at Gauss Pt. level More...
 
struct  MoFEM::OpSetInvJacH1
 Transform local reference derivatives of shape function to global derivatives. More...
 
struct  MoFEM::OpSetInvJacHdivAndHcurl
 brief Transform local reference derivatives of shape function to global derivatives More...
 
struct  MoFEM::OpSetHoInvJacH1
 transform local reference derivatives of shape function to global derivatives if higher order geometry is given More...
 
struct  MoFEM::OpSetHoInvJacHdivAndHcurl
 transform local reference derivatives of shape function to global derivatives if higher order geometry is given More...
 
struct  MoFEM::OpSetContravariantPiolaTransform
 apply contravariant (Piola) transfer to Hdiv space More...
 
struct  MoFEM::OpSetHoContravariantPiolaTransform
 Apply contravariant (Piola) transfer to Hdiv space for HO geometr. More...
 
struct  MoFEM::OpSetCovariantPiolaTransform
 apply covariant transfer to Hcurl space More...
 
struct  MoFEM::OpGetDataAndGradient< RANK, DIM >
 Get field values and gradients at Gauss points. More...
 
struct  MoFEM::OpGetCoordsAndNormalsOnPrism
 calculate normals at Gauss points of triangle element More...
 
struct  MoFEM::OpSetContravariantPiolaTransformOnTriangle
 transform Hdiv base fluxes from reference element to physical triangle More...
 
struct  MoFEM::OpSetCovariantPiolaTransformOnTriangle
 transform Hcurl base fluxes from reference element to physical triangle More...
 
struct  MoFEM::OpGetHoTangentOnEdge
 Calculate tangent vector on edge form HO geometry approximation. More...
 
struct  MoFEM::OpSetCovariantPiolaTransformOnEdge
 transform Hcurl base fluxes from reference element to physical edge More...
 
struct  MoFEM::ForcesAndSourcesCore::UserDataOperator
 Data operator to do calculations at integration points.Is inherited and implemented by user to do calculations. It can be used in many different ways but typically is used to integrate matrices (f.e. stiffness matrix) and the right hand vector (f.e. force vector). More...
 
struct  MoFEM::ForcesAndSourcesCore
 structure to get information form mofem into DataForcesAndSourcesCore More...
 
struct  AnalyticalDirihletBC
 Analytical Dirichlet boundary conditions. More...
 

Functions

template<int Tensor_Dim, class T , class L , class A >
MoFEMErrorCode MoFEM::invertTensor3by3 (ublas::matrix< T, L, A > &jac_data, ublas::vector< T, A > &det_data, ublas::matrix< T, L, A > &inv_jac_data)
 Calculate inverse of tensor rank 2 at integration points. More...
 
template<class T1 , class T2 >
MoFEMErrorCode MoFEM::determinantTensor3by3 (T1 &t, T2 &det)
 Calculate determinant. More...
 
template<class T1 , class T2 , class T3 >
MoFEMErrorCode MoFEM::invertTensor3by3 (T1 &t, T2 &det, T3 &inv_t)
 Calculate matrix inverse. More...
 

Detailed Description

Manages complexities related to assembly of vector and matrices at single finite element level.

Function Documentation

◆ determinantTensor3by3()

template<class T1 , class T2 >
MoFEMErrorCode MoFEM::determinantTensor3by3 ( T1 &  t,
T2 &  det 
)

Calculate determinant.

Examples:
Remodeling.hpp.

Definition at line 177 of file DataOperators.hpp.

179  {
181  det =
182  +t(0,0)*t(1,1)*t(2,2) + t(1,0)*t(2,1)*t(0,2)
183  +t(2,0)*t(0,1)*t(1,2) - t(0,0)*t(2,1)*t(1,2)
184  -t(2,0)*t(1,1)*t(0,2) - t(1,0)*t(0,1)*t(2,2);
186 }
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:522
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return() ...
Definition: definitions.h:528

◆ invertTensor3by3() [1/2]

template<int Tensor_Dim, class T , class L , class A >
MoFEMErrorCode MoFEM::invertTensor3by3 ( ublas::matrix< T, L, A > &  jac_data,
ublas::vector< T, A > &  det_data,
ublas::matrix< T, L, A > &  inv_jac_data 
)

Calculate inverse of tensor rank 2 at integration points.

Definition at line 150 of file DataOperators.hpp.

154  {
156  SETERRQ(
157  PETSC_COMM_SELF,
159  "Specialization for this template not yet implemented"
160  );
162 }
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:522
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return() ...
Definition: definitions.h:528

◆ invertTensor3by3() [2/2]

template<class T1 , class T2 , class T3 >
MoFEMErrorCode MoFEM::invertTensor3by3 ( T1 &  t,
T2 &  det,
T3 &  inv_t 
)

Calculate matrix inverse.

Definition at line 194 of file DataOperators.hpp.

196  {
198  inv_t(0,0) = (t(1,1)*t(2,2)-t(1,2)*t(2,1))/det;
199  inv_t(0,1) = (t(0,2)*t(2,1)-t(0,1)*t(2,2))/det;
200  inv_t(0,2) = (t(0,1)*t(1,2)-t(0,2)*t(1,1))/det;
201  inv_t(1,0) = (t(1,2)*t(2,0)-t(1,0)*t(2,2))/det;
202  inv_t(1,1) = (t(0,0)*t(2,2)-t(0,2)*t(2,0))/det;
203  inv_t(1,2) = (t(0,2)*t(1,0)-t(0,0)*t(1,2))/det;
204  inv_t(2,0) = (t(1,0)*t(2,1)-t(1,1)*t(2,0))/det;
205  inv_t(2,1) = (t(0,1)*t(2,0)-t(0,0)*t(2,1))/det;
206  inv_t(2,2) = (t(0,0)*t(1,1)-t(0,1)*t(1,0))/det;
208 }
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:522
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return() ...
Definition: definitions.h:528