v0.14.0
Public Member Functions | Static Public Member Functions | List of all members
MoFEM::AddHOOps< 2, 2, 3 > Struct Reference

#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 > spaces, std::string geom_field_name="", boost::shared_ptr< MatrixDouble > jac=nullptr, boost::shared_ptr< VectorDouble > det=nullptr, boost::shared_ptr< MatrixDouble > inv_jac=nullptr)
 

Detailed Description

Definition at line 429 of file HODataOperators.hpp.

Constructor & Destructor Documentation

◆ AddHOOps()

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

Member Function Documentation

◆ add()

MoFEMErrorCode MoFEM::AddHOOps< 2, 2, 3 >::add ( boost::ptr_deque< ForcesAndSourcesCore::UserDataOperator > &  pipeline,
std::vector< FieldSpace spaces,
std::string  geom_field_name = "",
boost::shared_ptr< MatrixDouble jac = nullptr,
boost::shared_ptr< VectorDouble det = nullptr,
boost::shared_ptr< MatrixDouble inv_jac = nullptr 
)
static

Definition at line 829 of file HODataOperators.cpp.

834  {
836 
837  if (!jac_ptr)
838  jac_ptr = boost::make_shared<MatrixDouble>();
839  if (!det_ptr)
840  det_ptr = boost::make_shared<VectorDouble>();
841  if (!inv_jac_ptr)
842  inv_jac_ptr = boost::make_shared<MatrixDouble>();
843 
844  if (geom_field_name.empty()) {
845 
846  } else {
847 
848  pipeline.push_back(new OpCalculateHOCoords<3>(geom_field_name));
849  pipeline.push_back(new OpGetHONormalsOnFace<3>(geom_field_name));
850  }
851 
852  pipeline.push_back(new OpCalculateHOJacForFaceEmbeddedIn3DSpace(jac_ptr));
853  pipeline.push_back(new OpInvertMatrix<3>(jac_ptr, det_ptr, inv_jac_ptr));
854  pipeline.push_back(new OpSetHOWeightsOnFace());
855 
856  for (auto s : spaces) {
857  switch (s) {
858  case NOSPACE:
859  break;
860  case H1:
861  pipeline.push_back(
862  new OpSetInvJacH1ForFaceEmbeddedIn3DSpace(inv_jac_ptr));
863  break;
864  case HDIV:
865  pipeline.push_back(new OpMakeHdivFromHcurl());
866  pipeline.push_back(
868  jac_ptr));
869  pipeline.push_back(
870  new OpSetInvJacHcurlFaceEmbeddedIn3DSpace(inv_jac_ptr));
871  break;
872  case L2:
873  pipeline.push_back(
874  new OpSetInvJacL2ForFaceEmbeddedIn3DSpace(inv_jac_ptr));
875  break;
876  default:
877  SETERRQ1(PETSC_COMM_SELF, MOFEM_NOT_IMPLEMENTED,
878  "Space %s not yet implemented", FieldSpaceNames[s]);
879  }
880  }
881 
883 }

The documentation for this struct was generated from the following files:
NOSPACE
@ NOSPACE
Definition: definitions.h:83
H1
@ H1
continuous field
Definition: definitions.h:85
MoFEM::OpCalculateHOJacForFaceEmbeddedIn3DSpace
OpCalculateHOJacForFaceImpl< 3 > OpCalculateHOJacForFaceEmbeddedIn3DSpace
Definition: HODataOperators.hpp:265
L2
@ L2
field with C-1 continuity
Definition: definitions.h:88
MoFEM::OpSetContravariantPiolaTransformOnFace2DEmbeddedIn3DSpace
OpSetContravariantPiolaTransformOnFace2DImpl< 3 > OpSetContravariantPiolaTransformOnFace2DEmbeddedIn3DSpace
Definition: UserDataOperators.hpp:3513
FieldSpaceNames
const static char *const FieldSpaceNames[]
Definition: definitions.h:92
MoFEM::OpSetInvJacHcurlFaceEmbeddedIn3DSpace
OpSetInvJacHcurlFaceImpl< 3 > OpSetInvJacHcurlFaceEmbeddedIn3DSpace
Definition: UserDataOperators.hpp:3414
MoFEMFunctionReturn
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:429
HDIV
@ HDIV
field with continuous normal traction
Definition: definitions.h:87
MOFEM_NOT_IMPLEMENTED
@ MOFEM_NOT_IMPLEMENTED
Definition: definitions.h:32
MoFEMFunctionBegin
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:359