v0.15.0
Loading...
Searching...
No Matches
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 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 831 of file HODataOperators.cpp.

836 {
838
839 if (!jac_ptr)
840 jac_ptr = boost::make_shared<MatrixDouble>();
841 if (!det_ptr)
842 det_ptr = boost::make_shared<VectorDouble>();
843 if (!inv_jac_ptr)
844 inv_jac_ptr = boost::make_shared<MatrixDouble>();
845
846 if (geom_field_name.empty()) {
847
848 } else {
849
850 pipeline.push_back(new OpCalculateHOCoords<3>(geom_field_name));
851 pipeline.push_back(new OpGetHONormalsOnFace<3>(geom_field_name));
852 }
853
854 pipeline.push_back(new OpCalculateHOJacForFaceEmbeddedIn3DSpace(jac_ptr));
855 pipeline.push_back(new OpInvertMatrix<3>(jac_ptr, det_ptr, inv_jac_ptr));
856 pipeline.push_back(new OpSetHOWeightsOnFace());
857
858 for (auto s : spaces) {
859 switch (s) {
860 case NOSPACE:
861 break;
862 case H1:
863 pipeline.push_back(
864 new OpSetInvJacH1ForFaceEmbeddedIn3DSpace(inv_jac_ptr));
865 break;
866 case HDIV:
867 pipeline.push_back(new OpMakeHdivFromHcurl());
868 pipeline.push_back(
870 jac_ptr));
871 pipeline.push_back(
873 break;
874 case L2:
875 pipeline.push_back(
876 new OpSetInvJacL2ForFaceEmbeddedIn3DSpace(inv_jac_ptr));
877 break;
878 default:
879 SETERRQ(PETSC_COMM_SELF, MOFEM_NOT_IMPLEMENTED,
880 "Space %s not yet implemented", FieldSpaceNames[s]);
881 }
882 }
883
885}
@ L2
field with C-1 continuity
Definition definitions.h:88
@ H1
continuous field
Definition definitions.h:85
@ NOSPACE
Definition definitions.h:83
@ 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()
OpSetInvJacHcurlFaceImpl< 3 > OpSetInvJacHcurlFaceEmbeddedIn3DSpace
OpSetContravariantPiolaTransformOnFace2DImpl< 3 > OpSetContravariantPiolaTransformOnFace2DEmbeddedIn3DSpace
OpCalculateHOJacForFaceImpl< 3 > OpCalculateHOJacForFaceEmbeddedIn3DSpace

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