v0.13.1
Public Types | Public Member Functions | Public Attributes | Private Member Functions | List of all members
MoFEM::DataOperator Struct Reference

base operator to do operations at Gauss Pt. level More...

#include <src/finite_elements/DataOperators.hpp>

Inheritance diagram for MoFEM::DataOperator:
[legend]
Collaboration diagram for MoFEM::DataOperator:
[legend]

Public Types

using DoWorkLhsHookFunType = boost::function< MoFEMErrorCode(DataOperator *op_ptr, int row_side, int col_side, EntityType row_type, EntityType col_type, EntitiesFieldData::EntData &row_data, EntitiesFieldData::EntData &col_data)>
 
using DoWorkRhsHookFunType = boost::function< MoFEMErrorCode(DataOperator *op_ptr, int side, EntityType type, EntitiesFieldData::EntData &data)>
 

Public Member Functions

 DataOperator (const bool symm=true)
 
virtual ~DataOperator ()=default
 
virtual MoFEMErrorCode doWork (int row_side, int col_side, EntityType row_type, EntityType col_type, EntitiesFieldData::EntData &row_data, EntitiesFieldData::EntData &col_data)
 Operator for bi-linear form, usually to calculate values on left hand side. More...
 
virtual MoFEMErrorCode opLhs (EntitiesFieldData &row_data, EntitiesFieldData &col_data)
 
virtual MoFEMErrorCode doWork (int side, EntityType type, EntitiesFieldData::EntData &data)
 Operator for linear form, usually to calculate values on right hand side. More...
 
virtual MoFEMErrorCode opRhs (EntitiesFieldData &data, const bool error_if_no_base=false)
 
bool getSymm () const
 Get if operator uses symmetry of DOFs or not. More...
 
void setSymm ()
 set if operator is executed taking in account symmetry More...
 
void unSetSymm ()
 unset if operator is executed for non symmetric problem More...
 

Public Attributes

DoWorkLhsHookFunType doWorkLhsHook
 
DoWorkRhsHookFunType doWorkRhsHook
 
bool sYmm
 If true assume that matrix is symmetric structure. More...
 
std::array< bool, MBMAXTYPE > doEntities
 If true operator is executed for entity. More...
 
booldoVertices
 \deprectaed If false skip vertices More...
 
booldoEdges
 \deprectaed If false skip edges More...
 
booldoQuads
 \deprectaed More...
 
booldoTris
 \deprectaed More...
 
booldoTets
 \deprectaed More...
 
booldoPrisms
 \deprectaed More...
 

Private Member Functions

template<bool Symm>
MoFEMErrorCode opLhs (EntitiesFieldData &row_data, EntitiesFieldData &col_data)
 
template<bool ErrorIfNoBase>
MoFEMErrorCode opRhs (EntitiesFieldData &data, const std::array< bool, MBMAXTYPE > &do_entities)
 

Detailed Description

base operator to do operations at Gauss Pt. level

Examples
child_and_parent.cpp, hanging_node_approx.cpp, poisson_2d_dis_galerkin.cpp, and simple_l2_only.cpp.

Definition at line 36 of file DataOperators.hpp.

Member Typedef Documentation

◆ DoWorkLhsHookFunType

using MoFEM::DataOperator::DoWorkLhsHookFunType = boost::function<MoFEMErrorCode( DataOperator *op_ptr, int row_side, int col_side, EntityType row_type, EntityType col_type, EntitiesFieldData::EntData &row_data, EntitiesFieldData::EntData &col_data)>

Definition at line 42 of file DataOperators.hpp.

◆ DoWorkRhsHookFunType

Definition at line 70 of file DataOperators.hpp.

Constructor & Destructor Documentation

◆ DataOperator()

MoFEM::DataOperator::DataOperator ( const bool  symm = true)

Definition at line 33 of file DataOperators.cpp.

34 :
35
36 sYmm(symm),
37
38 doEntities{true, true, true, true, true, true,
39 true, true, true, true, true, true},
40
41 doVertices(doEntities[MBVERTEX]), doEdges(doEntities[MBEDGE]),
42 doQuads(doEntities[MBQUAD]), doTris(doEntities[MBTRI]),
43 doTets(doEntities[MBTET]), doPrisms(doEntities[MBPRISM]) {
44
45 /// This not yet implemented, switch off.
46 doEntities[MBPOLYGON] = false;
47 doEntities[MBPYRAMID] = false;
48 doEntities[MBKNIFE] = false;
49 doEntities[MBPOLYHEDRON] = false;
50}
std::array< bool, MBMAXTYPE > doEntities
If true operator is executed for entity.
bool & doTris
\deprectaed
bool & doPrisms
\deprectaed
bool sYmm
If true assume that matrix is symmetric structure.
bool & doVertices
\deprectaed If false skip vertices
bool & doTets
\deprectaed
bool & doEdges
\deprectaed If false skip edges
bool & doQuads
\deprectaed

◆ ~DataOperator()

virtual MoFEM::DataOperator::~DataOperator ( )
virtualdefault

Member Function Documentation

◆ doWork() [1/2]

virtual MoFEMErrorCode MoFEM::DataOperator::doWork ( int  row_side,
int  col_side,
EntityType  row_type,
EntityType  col_type,
EntitiesFieldData::EntData row_data,
EntitiesFieldData::EntData col_data 
)
virtual

Operator for bi-linear form, usually to calculate values on left hand side.

Reimplemented in OpAssemble, NavierStokesElement::OpAssembleLhs, MetaSpringBC::OpSpringKs, MetaSpringBC::OpSpringKs_dX, MetaSpringBC::SpringALEMaterialVolOnSideLhs, MetaSpringBC::OpSpringALEMaterialLhs, MetaSpringBC::OpSpringALEMaterialLhs_dX_dx, MetaSpringBC::OpSpringALEMaterialLhs_dX_dX, OpRotatingFrameTools::OpRotatingFrameBoundaryLhs, ReactionDiffusionEquation::OpAssembleMass, ReactionDiffusionEquation::OpAssembleStiffLhs< DIM >, Poisson2DHomogeneousOperators::OpDomainLhsMatrixK, Poisson3DHomogeneousOperators::OpDomainLhsMatrixK, Poisson2DNonhomogeneousOperators::OpDomainLhs, Poisson2DNonhomogeneousOperators::OpBoundaryLhs, Poisson2DLagrangeMultiplierOperators::OpDomainLhsK, Poisson2DLagrangeMultiplierOperators::OpBoundaryLhsC, NonlinearPoissonOps::OpDomainTangentMatrix, NonlinearPoissonOps::OpBoundaryTangentMatrix, MyOp< OP >, CallingOp, MyOp2, PrismOpLhs, QuadOpLhs, OpFace, AnalyticalDirichletBC::ApproxField::OpLhs, and OpSimpleRodK.

Examples
lorentz_force.cpp.

Definition at line 52 of file DataOperators.hpp.

55 {
57 if (doWorkLhsHook) {
58 CHKERR doWorkLhsHook(this, row_side, col_side, row_type, col_type,
59 row_data, col_data);
60 } else {
61 SETERRQ(PETSC_COMM_SELF, MOFEM_NOT_IMPLEMENTED,
62 "doWork function is not implemented for this operator");
63 }
65 }
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:460
@ MOFEM_NOT_IMPLEMENTED
Definition: definitions.h:45
#define CHKERR
Inline error check.
Definition: definitions.h:548
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:453
DoWorkLhsHookFunType doWorkLhsHook

◆ doWork() [2/2]

virtual MoFEMErrorCode MoFEM::DataOperator::doWork ( int  side,
EntityType  type,
EntitiesFieldData::EntData data 
)
virtual

Operator for linear form, usually to calculate values on right hand side.

Reimplemented in OpElasticTools::OpSchurBegin, OpElasticTools::OpSchurBeginBoundary, OpCalculateStrain< D >, OpCalculateStrainAle, OpCalculateStress< S >, OpCalculateEnergy, OpCalculateEshelbyStress, OpCalculateHomogeneousStiffness< S >, OpCalculateStiffnessScaledByDensityField, OpAssemble, OpAleLhsPre_dX_dx< S >, NavierStokesElement::OpAssembleRhs, OpVolumeCalculation, AtomTest::OpError< 1 >, AtomTest::OpError< 1 >, AtomTest::OpErrorSkel< 1 >, AtomTest::OpError< FIELD_DIM >, MoFEM::OpTensorTimesSymmetricTensor< DIM_01, DIM_23, S >, MoFEM::OpSymmetrizeTensor< DIM >, MoFEM::OpScaleMatrix, NavierStokesElement::OpCalcDragForce, NavierStokesElement::OpCalcDragTraction, NavierStokesElement::OpPostProcDrag, NavierStokesElement::OpPostProcVorticity, NavierStokesElement::OpCalcVolumeFlux, MetaSpringBC::OpSpringFs, OpContactTools::OpPostProcVertex, OpContactTools::OpGetClosestRigidBodyData, OpContactTools::OpPostProcContact, OpContactTools::OpGetGaussPtsContactState, OpContactTools::OpGetContactArea, DualBaseOps::OpDualSwap, OpElasticTools::OpStrain, OpElasticTools::OpLogStrain, OpElasticTools::OpStress, OpElasticTools::OpCalculateLogStressTangent< TANGENT >, OpElasticTools::OpCalculateNeoHookeStressTangent, OpElasticTools::OpPostProcElastic< LOGSTRAIN >, OpElasticTools::OpSetMaterialBlock, OpElasticTools::OpSetMaterialBlockBoundary, OpElasticTools::OpSaveReactionForces, OpElasticTools::OpSchurEnd, OpElasticTools::OpSchurEndBoundary, OpPlasticTools::OpCalculatePlasticSurfaceAndFlow, OpPlasticTools::OpPlasticStress, OpPlasticTools::OpPostProcPlastic, OpPlasticTools::OpGetGaussPtsPlasticState, OpRotatingFrameTools::OpCalculatePlasticConvRotatingFrame, PlasticOps::OpCalculatePlasticSurface, PlasticOps::OpPlasticStress, PlasticOps::OpPostProcPlastic, ContactOps::OpPostProcVertex, ContactOps::OpPostProcContact< DIM >, PlasticThermalOps::OpPlasticStressThermal, ReactionDiffusionEquation::OpAssembleSlowRhs, ReactionDiffusionEquation::OpAssembleStiffRhs< DIM >, Example::OpZero, Example::OpFirst, Example::OpSecond, MixedPoisson::OpError, Example::BoundaryOp, Example::OpError< 1 >, Poisson2DHomogeneousOperators::OpDomainRhsVectorF, Poisson3DHomogeneousOperators::OpDomainRhsVectorF, Poisson2DiscontGalerkinOperators::OpL2BoundaryRhs, Poisson2DNonhomogeneousOperators::OpDomainRhs, Poisson2DNonhomogeneousOperators::OpBoundaryRhs, Poisson2DLagrangeMultiplierOperators::OpDomainRhsF, Poisson2DLagrangeMultiplierOperators::OpBoundaryRhsG, NonlinearPoissonOps::OpDomainResidualVector, NonlinearPoissonOps::OpBoundaryResidualVector, Tutorial::OpPostProcElastic< DIM >, HenckyOps::OpCalculateEigenVals< DIM >, HenckyOps::OpCalculateLogC< DIM >, HenckyOps::OpCalculateLogC_dC< DIM >, HenckyOps::OpCalculateHenckyStress< DIM >, HenckyOps::OpCalculateHenckyPlasticStress< DIM >, HenckyOps::OpCalculatePiolaStress< DIM >, HenckyOps::OpHenckyTangent< DIM >, HenckyOps::OpPostProcHencky< DIM >, OpError, MetaSpringBC::OpSpringFsMaterial, MetaSpringBC::OpGetTangentSpEle, MetaSpringBC::OpGetNormalSpEle, OpFace, SkeletonFE::OpFaceSide, SkeletonFE, SkeletonFE::OpFaceSide, SkeletonFE, SkeletonFE::OpFaceSide, SkeletonFE, MyOp< OP >, MyOp< OP >, CallingOp, MyOp2, OpCheckValsDiffVals, OpDivergence, OpFlux, OpDivergence, OpFlux, PrismOp, PrismOpCheck, PrismOpRhs, QuadOpCheck, QuadOpRhs, OpValsDiffVals, OpCheckValsDiffVals, OpFace, OpVolumeSet, OpVolumeTest, OpVolumeAssemble, MoFEM::OpBaseDerivativesMass< 1 >, MoFEM::OpBaseDerivativesSetHOInvJacobian< 2 >, MoFEM::OpBaseDerivativesNext< 1 >, MoFEM::OpBaseDerivativesNext< 3 >, MoFEM::OpSetInvJacH1, MoFEM::OpSetInvJacHdivAndHcurl, MoFEM::OpSetContravariantPiolaTransform, MoFEM::OpSetCovariantPiolaTransform, MoFEM::OpGetDataAndGradient< RANK, DIM >, MoFEM::OpGetCoordsAndNormalsOnPrism, MoFEM::OpSetContravariantPiolaTransformOnFace, MoFEM::OpSetCovariantPiolaTransformOnFace, MoFEM::OpGetHOTangentOnEdge, MoFEM::OpSetCovariantPiolaTransformOnEdge, MoFEM::OpSetBc, MoFEM::OpUnSetBc, MoFEM::OpCalculateHOJacForVolume, MoFEM::OpCalculateHOCoords, MoFEM::OpSetHOInvJacToScalarBasesImpl, MoFEM::OpSetHOInvJacVectorBase, MoFEM::OpSetHOWeightsOnFace, MoFEM::OpSetHOWeights, MoFEM::OpSetHOContravariantPiolaTransform, MoFEM::OpSetHOCovariantPiolaTransform, MoFEM::OpCalculateHOJacForFaceImpl< 2 >, MoFEM::OpCalculateHOJacForFaceImpl< 3 >, MoFEM::OpGetHONormalsOnFace, MoFEM::OpHOSetContravariantPiolaTransformOnFace3D, MoFEM::OpHOSetContravariantPiolaTransformOnEdge3D, MoFEM::OpHOSetCovariantPiolaTransformOnFace3D, MoFEM::OpGetHOTangentsOnEdge, MoFEM::OpRunParent, MoFEM::OpCalculateScalarFieldValues_General< T, A >, MoFEM::OpCalculateScalarFieldValues_General< double, DoubleAllocator >, MoFEM::OpCalculateScalarFieldValues, MoFEM::OpCalculateScalarFieldValuesFromPetscVecImpl< CTX >, MoFEM::OpCalculateVectorFieldValues_General< Tensor_Dim, T, L, A >, MoFEM::OpCalculateVectorFieldValues_General< Tensor_Dim, double, ublas::row_major, DoubleAllocator >, MoFEM::OpCalculateDivergenceVectorFieldValues< Tensor_Dim, COORDINATE_SYSTEM >, MoFEM::OpCalculateVectorFieldValuesFromPetscVecImpl< Tensor_Dim, CTX >, MoFEM::OpCalculateTensor2FieldValues_General< Tensor_Dim0, Tensor_Dim1, T, L, A >, MoFEM::OpCalculateTensor2FieldValues_General< Tensor_Dim0, Tensor_Dim1, double, ublas::row_major, DoubleAllocator >, MoFEM::OpCalculateTensor2FieldValuesDot< Tensor_Dim0, Tensor_Dim1 >, MoFEM::OpCalculateTensor2SymmetricFieldValues< Tensor_Dim >, MoFEM::OpCalculateTensor2SymmetricFieldValuesDot< Tensor_Dim >, MoFEM::OpCalculateScalarFieldGradient_General< Tensor_Dim, double, ublas::row_major, DoubleAllocator >, MoFEM::OpCalculateScalarFieldHessian< Tensor_Dim >, MoFEM::OpCalculateVectorFieldGradient_General< Tensor_Dim0, Tensor_Dim1, double, ublas::row_major, DoubleAllocator >, MoFEM::OpCalculateVectorFieldGradientDot< Tensor_Dim0, Tensor_Dim1 >, MoFEM::OpCalculateTensor2SymmetricFieldGradient_General< Tensor_Dim0, Tensor_Dim1, double, ublas::row_major, DoubleAllocator >, MoFEM::OpCalculateVectorFieldHessian< Tensor_Dim0, Tensor_Dim1 >, MoFEM::OpCalculateHVecVectorField_General< Tensor_Dim0, T, L, A >, MoFEM::OpCalculateHVecVectorField_General< Tensor_Dim, double, ublas::row_major, DoubleAllocator >, MoFEM::OpCalculateHVecVectorFieldDot< Tensor_Dim >, MoFEM::OpCalculateHdivVectorDivergence< BASE_DIM, SPACE_DIM >, MoFEM::OpCalculateHVecVectorGradient< BASE_DIM, SPACE_DIM >, MoFEM::OpCalculateHVecVectorHessian< BASE_DIM, SPACE_DIM >, MoFEM::OpCalculateHdivVectorDivergenceDot< Tensor_Dim1, Tensor_Dim2 >, MoFEM::OpCalculateHcurlVectorCurl< Tensor_Dim >, MoFEM::OpCalculateHVecTensorField< Tensor_Dim0, Tensor_Dim1 >, MoFEM::OpCalculateHTensorTensorField< Tensor_Dim0, Tensor_Dim1 >, MoFEM::OpCalculateHVecTensorDivergence< Tensor_Dim0, Tensor_Dim1 >, MoFEM::OpCalculateHVecTensorTrace< 3, FaceElementForcesAndSourcesCore::UserDataOperator >, MoFEM::OpSetInvJacSpaceForFaceImpl< 2, 1 >, MoFEM::OpSetInvJacSpaceForFaceImpl< 3, 1 >, MoFEM::OpSetInvJacSpaceForFaceImpl< 2, 2 >, MoFEM::OpSetInvJacHcurlFaceImpl< 2 >, MoFEM::OpSetInvJacHcurlFaceImpl< 3 >, MoFEM::OpMakeHdivFromHcurl, MoFEM::OpSetContravariantPiolaTransformOnFace2DImpl< 2 >, MoFEM::OpSetContravariantPiolaTransformOnFace2DImpl< 3 >, MoFEM::OpSetContravariantPiolaTransformOnEdge2D, MoFEM::OpMultiplyDeterminantOfJacobianAndWeightsForFatPrisms, MoFEM::OpCalculateInvJacForFatPrism, MoFEM::OpSetInvJacH1ForFatPrism, MoFEM::OpCalculateInvJacForFlatPrism, MoFEM::OpSetInvJacH1ForFlatPrism, MoFEM::OpInvertMatrix< DIM >, OpCheck, AnalyticalDirichletBC::ApproxField::OpRhs< FUNEVAL >, OpSimpleRodPreStress, OpPressure, OpFace, Example::OpCalcSurfaceAverageTemperature, Example::OpRhs, and OpH1LhsSkeleton.

Definition at line 79 of file DataOperators.hpp.

80 {
82 if (doWorkRhsHook) {
83 CHKERR doWorkRhsHook(this, side, type, data);
84 } else {
85 SETERRQ(PETSC_COMM_SELF, MOFEM_NOT_IMPLEMENTED,
86 "doWork function is not implemented for this operator");
87 }
89 }
DoWorkRhsHookFunType doWorkRhsHook

◆ getSymm()

bool MoFEM::DataOperator::getSymm ( ) const

Get if operator uses symmetry of DOFs or not.

If symmetry is used, only not repeating combinations of entities are looped. For an example pair of (Vertex, Edge_0) and (Edge_0, Vertex) will calculate the same matrices only transposed. Implementing that this can be exploited by integrating only one pair.

Returns
true if symmetry

Definition at line 119 of file DataOperators.hpp.

119{ return sYmm; }

◆ opLhs() [1/2]

MoFEMErrorCode MoFEM::DataOperator::opLhs ( EntitiesFieldData row_data,
EntitiesFieldData col_data 
)
virtual

Definition at line 102 of file DataOperators.cpp.

103 {
104 if (getSymm())
105 return opLhs<true>(row_data, col_data);
106 else
107 return opLhs<false>(row_data, col_data);
108}
bool getSymm() const
Get if operator uses symmetry of DOFs or not.

◆ opLhs() [2/2]

template<bool Symm>
MoFEMErrorCode MoFEM::DataOperator::opLhs ( EntitiesFieldData row_data,
EntitiesFieldData col_data 
)
private

Definition at line 53 of file DataOperators.cpp.

54 {
56
57 auto do_col_entity =
58 [&](boost::ptr_vector<EntitiesFieldData::EntData> &row_ent_data,
59 const int ss, const EntityType row_type, const EntityType low_type,
60 const EntityType hi_type) {
62 for (EntityType col_type = low_type; col_type != hi_type; ++col_type) {
63 auto &col_ent_data = col_data.dataOnEntities[col_type];
64 for (size_t SS = 0; SS != col_ent_data.size(); SS++) {
65 if (col_ent_data[SS].getFieldData().size())
66 CHKERR doWork(ss, SS, row_type, col_type, row_ent_data[ss],
67 col_ent_data[SS]);
68 }
69 }
71 };
72
73 auto do_row_entity = [&](const EntityType type) {
75 auto &row_ent_data = row_data.dataOnEntities[type];
76 for (size_t ss = 0; ss != row_ent_data.size(); ++ss) {
77 size_t SS = 0;
78 if (Symm)
79 SS = ss;
80 for (; SS < col_data.dataOnEntities[type].size(); ++SS) {
81 CHKERR doWork(ss, SS, type, type, row_ent_data[ss],
82 col_data.dataOnEntities[type][SS]);
83 }
84 if (!Symm)
85 CHKERR do_col_entity(row_ent_data, ss, type, MBVERTEX, type);
86 CHKERR do_col_entity(row_ent_data, ss, type,
87 static_cast<EntityType>(type + 1), MBMAXTYPE);
88 }
90 };
91
92 for (EntityType row_type = MBVERTEX; row_type != MBMAXTYPE; ++row_type) {
93 if (doEntities[row_type]) {
94 CHKERR do_row_entity(row_type);
95 }
96 }
97
98
100}
virtual MoFEMErrorCode doWork(int row_side, int col_side, EntityType row_type, EntityType col_type, EntitiesFieldData::EntData &row_data, EntitiesFieldData::EntData &col_data)
Operator for bi-linear form, usually to calculate values on left hand side.

◆ opRhs() [1/2]

MoFEMErrorCode MoFEM::DataOperator::opRhs ( EntitiesFieldData data,
const bool  error_if_no_base = false 
)
virtual

Reimplemented in MoFEM::OpAddParentEntData.

Definition at line 152 of file DataOperators.cpp.

153 {
154 if (error_if_no_base)
155 return opRhs<true>(data, doEntities);
156 else
157 return opRhs<false>(data, doEntities);
158}

◆ opRhs() [2/2]

template<bool ErrorIfNoBase>
MoFEMErrorCode MoFEM::DataOperator::opRhs ( EntitiesFieldData data,
const std::array< bool, MBMAXTYPE > &  do_entities 
)
private

Definition at line 112 of file DataOperators.cpp.

113 {
115
116 auto do_entity = [&](auto type) {
118
119 auto &ent_data = data.dataOnEntities[type];
120 const size_t size = ent_data.size();
121 for (size_t ss = 0; ss != size; ++ss) {
122
123 auto &side_data = ent_data[ss];
124
125 if (ErrorIfNoBase) {
126 if (side_data.getFieldData().size() &&
127 (side_data.getBase() == NOBASE ||
128 side_data.getBase() == LASTBASE)) {
129 for (VectorDofs::iterator it = side_data.getFieldDofs().begin();
130 it != side_data.getFieldDofs().end(); it++)
131 if ((*it) && (*it)->getActive())
132 SETERRQ(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY, "No base on");
133 }
134 }
135
136 CHKERR doWork(ss, type, side_data);
137 }
138
140 };
141
142 for (EntityType row_type = MBVERTEX; row_type != MBMAXTYPE; ++row_type) {
143 if (do_entities[row_type]) {
144 CHKERR do_entity(row_type);
145 }
146 }
147
148
150}
@ LASTBASE
Definition: definitions.h:82
@ NOBASE
Definition: definitions.h:72
@ MOFEM_DATA_INCONSISTENCY
Definition: definitions.h:44

◆ setSymm()

void MoFEM::DataOperator::setSymm ( )

set if operator is executed taking in account symmetry

Definition at line 122 of file DataOperators.hpp.

122{ sYmm = true; }

◆ unSetSymm()

void MoFEM::DataOperator::unSetSymm ( )

unset if operator is executed for non symmetric problem

Examples
forces_and_sources_testing_flat_prism_element.cpp.

Definition at line 125 of file DataOperators.hpp.

125{ sYmm = false; }

Member Data Documentation

◆ doEdges

bool& MoFEM::DataOperator::doEdges

\deprectaed If false skip edges

Examples
ElasticityMixedFormulation.hpp, and NavierStokesElement.hpp.

Definition at line 103 of file DataOperators.hpp.

◆ doEntities

std::array<bool, MBMAXTYPE> MoFEM::DataOperator::doEntities

If true operator is executed for entity.

Examples
approx_sphere.cpp, higher_derivatives.cpp, mixed_poisson.cpp, and scalar_check_approximation.cpp.

Definition at line 97 of file DataOperators.hpp.

◆ doPrisms

bool& MoFEM::DataOperator::doPrisms

\deprectaed

Examples
ElasticityMixedFormulation.hpp, and NavierStokesElement.hpp.

Definition at line 107 of file DataOperators.hpp.

◆ doQuads

bool& MoFEM::DataOperator::doQuads

\deprectaed

Examples
ElasticityMixedFormulation.hpp, and NavierStokesElement.hpp.

Definition at line 104 of file DataOperators.hpp.

◆ doTets

bool& MoFEM::DataOperator::doTets

\deprectaed

Examples
ElasticityMixedFormulation.hpp, and NavierStokesElement.hpp.

Definition at line 106 of file DataOperators.hpp.

◆ doTris

bool& MoFEM::DataOperator::doTris

\deprectaed

Examples
ElasticityMixedFormulation.hpp, and NavierStokesElement.hpp.

Definition at line 105 of file DataOperators.hpp.

◆ doVertices

bool& MoFEM::DataOperator::doVertices

\deprectaed If false skip vertices

Examples
ElasticityMixedFormulation.hpp, and NavierStokesElement.hpp.

Definition at line 102 of file DataOperators.hpp.

◆ doWorkLhsHook

DoWorkLhsHookFunType MoFEM::DataOperator::doWorkLhsHook

Definition at line 47 of file DataOperators.hpp.

◆ doWorkRhsHook

DoWorkRhsHookFunType MoFEM::DataOperator::doWorkRhsHook

Definition at line 74 of file DataOperators.hpp.

◆ sYmm

bool MoFEM::DataOperator::sYmm

If true assume that matrix is symmetric structure.

Examples
MagneticElement.hpp, NavierStokesElement.hpp, UnsaturatedFlow.hpp, poisson_2d_homogeneous.hpp, and reaction_diffusion.cpp.

Definition at line 94 of file DataOperators.hpp.


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