v0.15.0
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
MoFEM::AddHOOps< 2, 3, 3 > Struct Reference

Specialization for 2D face elements in 3D problems with 3D space. More...

#include "src/finite_elements/HODataOperators.hpp"

Public Member Functions

 AddHOOps ()=delete
 

Static Public Member Functions

static MoFEMErrorCode add (boost::ptr_deque< ForcesAndSourcesCore::UserDataOperator > &pipeline, std::vector< FieldSpace > space, std::string geom_field_name="")
 Add high-order operators to the pipeline for 2D face elements in 3D.
 

Detailed Description

Specialization for 2D face elements in 3D problems with 3D space.

This specialization adds high-order operators for 2D face elements operating in 3D problems within 3D coordinate space. Commonly used for surface elements, boundary conditions, membranes, or shell structures in 3D finite element analysis.

Definition at line 724 of file HODataOperators.hpp.

Constructor & Destructor Documentation

◆ AddHOOps()

MoFEM::AddHOOps< 2, 3, 3 >::AddHOOps ( )
delete

Member Function Documentation

◆ add()

MoFEMErrorCode AddHOOps< 2, 3, 3 >::add ( boost::ptr_deque< ForcesAndSourcesCore::UserDataOperator > &  pipeline,
std::vector< FieldSpace space,
std::string  geom_field_name = "" 
)
static

Add high-order operators to the pipeline for 2D face elements in 3D.

Parameters
pipelinePipeline to add operators to
spaceVector of field spaces to be handled
geom_field_nameName of the geometry field (default: empty string)
Returns
MoFEMErrorCode Error code indicating success or failure
Note
This specialization handles Jacobian, determinant, and inverse Jacobian internally.

Definition at line 946 of file HODataOperators.cpp.

948 {
950
951 if (geom_field_name.empty()) {
952 } else {
953
954 pipeline.push_back(new OpCalculateHOCoords<3>(geom_field_name));
955 pipeline.push_back(new OpGetHONormalsOnFace<3>(geom_field_name));
956 }
957
958 for (auto s : spaces) {
959 switch (s) {
960 case NOSPACE:
961 break;
962 case HCURL:
963 pipeline.push_back(new OpHOSetCovariantPiolaTransformOnFace3D(HCURL));
964 break;
965 case HDIV:
966 pipeline.push_back(new OpHOSetContravariantPiolaTransformOnFace3D(HDIV));
967 break;
968 case L2:
969 break;
970 default:
971 SETERRQ(PETSC_COMM_SELF, MOFEM_NOT_IMPLEMENTED,
972 "Space %s not yet implemented", FieldSpaceNames[s]);
973 break;
974 }
975 }
976
978}
@ L2
field with C-1 continuity
Definition definitions.h:88
@ NOSPACE
Definition definitions.h:83
@ HCURL
field with continuous tangents
Definition definitions.h:86
@ HDIV
field with continuous normal traction
Definition definitions.h:87
static const char *const FieldSpaceNames[]
Definition definitions.h:92
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
@ MOFEM_NOT_IMPLEMENTED
Definition definitions.h:32
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()

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