![]() |
v0.10.0 |
base operator to do operations at Gauss Pt. level More...
#include <src/finite_elements/DataOperators.hpp>
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, DataForcesAndSourcesCore::EntData &row_data, DataForcesAndSourcesCore::EntData &col_data) |
Operator for bi-linear form, usually to calculate values on left hand side. More... | |
virtual MoFEMErrorCode | opLhs (DataForcesAndSourcesCore &row_data, DataForcesAndSourcesCore &col_data) |
virtual MoFEMErrorCode | doWork (int side, EntityType type, DataForcesAndSourcesCore::EntData &data) |
Operator for linear form, usually to calculate values on right hand side. More... | |
virtual MoFEMErrorCode | opRhs (DataForcesAndSourcesCore &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 | |
bool | sYmm |
If true assume that matrix is symmetric structure. More... | |
std::array< bool, MBMAXTYPE > | doEntities |
If true operator is executed for entity. More... | |
bool & | doVertices |
\deprectaed If false skip vertices More... | |
bool & | doEdges |
\deprectaed If false skip edges More... | |
bool & | doQuads |
\deprectaed More... | |
bool & | doTris |
\deprectaed More... | |
bool & | doTets |
\deprectaed More... | |
bool & | doPrisms |
\deprectaed More... | |
Private Member Functions | |
template<bool Symm> | |
MoFEMErrorCode | opLhs (DataForcesAndSourcesCore &row_data, DataForcesAndSourcesCore &col_data) |
template<bool ErrorIfNoBase> | |
MoFEMErrorCode | opRhs (DataForcesAndSourcesCore &data, const std::array< bool, MBMAXTYPE > &do_entities) |
base operator to do operations at Gauss Pt. level
Definition at line 36 of file DataOperators.hpp.
Definition at line 33 of file DataOperators.cpp.
|
virtualdefault |
|
virtual |
Operator for bi-linear form, usually to calculate values on left hand side.
Reimplemented in WaveEquationOperators::OpTangentLhsVV, WaveEquationOperators::OpTangentLhsVU, WaveEquationOperators::OpTangentLhsUV, WaveEquationOperators::OpTangentLhsUU, HeatEquationOperators::OpStiffTangentLHS, MinimalSurfaceOperators::OpDomainTangentMatrix, NonlinearPoissonOps::OpDomainTangentMatrix, Poisson2DLagrangeMultiplierOperators::OpDomainLhsK, Poisson2DNonhomogeneousOperators::OpDomainLhs, Poisson3DHomogeneousOperators::OpDomainLhsMatrixK, Poisson2DHomogeneousOperators::OpDomainLhsMatrixK, ReactionDiffusionEquation::OpAssembleStiffLhs< DIM >, ReactionDiffusionEquation::OpAssembleMass, PlasticOps::OpCalculateContrainsLhs_dTAU, PlasticOps::OpCalculateContrainsLhs_dEP, PlasticOps::OpCalculateContrainsLhs_LogStrain_dU, PlasticOps::OpCalculateContrainsLhs_dU, PlasticOps::OpCalculatePlasticFlowLhs_dTAU, PlasticOps::OpCalculatePlasticFlowLhs_dEP, PlasticOps::OpCalculatePlasticFlowLhs_LogStrain_dU, PlasticOps::OpCalculatePlasticFlowLhs_dU, PlasticOps::OpCalculatePlasticInternalForceLhs_LogStrain_dEP, PlasticOps::OpCalculatePlasticInternalForceLhs_dEP, OpPlasticTools::OpCalculateContrainsLhs_dTAU, OpPlasticTools::OpCalculateContrainsLhs_dEP, OpPlasticTools::OpCalculateContrainsLhs_dU< LOGSTRAIN >, OpPlasticTools::OpCalculatePlasticFlowLhs_dTAU, OpPlasticTools::OpCalculatePlasticFlowLhs_dEP, OpPlasticTools::OpCalculatePlasticFlowLhs_dU< LOGSTRAIN >, OpPlasticTools::OpCalculatePlasticInternalForceLhs_dEP< LOGSTRAIN >, OpElasticTools::OpBoundaryMassMatrix_UU, OpElasticTools::OpRotatingFrameBoundaryLhs, OpElasticTools::OpRotatingFrameLhs, OpAssemble, OpAssembleMat, OpK, OpRowCol, OpSimpleRodK, OpCalculateMassMatrix, OpFace, OpVolume, QuadOpLhs, PrismOpLhs, OpAssembleMat, MyOp2, CallingOp, and MyOp.
Definition at line 45 of file DataOperators.hpp.
|
virtual |
Operator for linear form, usually to calculate values on right hand side.
Reimplemented in HenckyOps::OpHenckyTangent< DIM >, HenckyOps::OpCalculatePiolaStress< DIM >, HenckyOps::OpCalculateHenckyPlasticStress< DIM >, HenckyOps::OpCalculateHenckyStress< DIM >, HenckyOps::OpCalculateLogC_dC< DIM >, HenckyOps::OpCalculateLogC< DIM >, HenckyOps::OpCalculateEigenVals< DIM >, Tutorial::OpPostProcElastic< DIM >, WaveEquationOperators::OpResidualRhsV, WaveEquationOperators::OpResidualRhsU, HeatEquationOperators::OpStiffFunctionRhs, MinimalSurfaceOperators::OpDomainResidualVector, NonlinearPoissonOps::OpDomainResidualVector, Poisson2DLagrangeMultiplierOperators::OpDomainRhsF, Poisson2DNonhomogeneousOperators::OpDomainRhs, Poisson3DHomogeneousOperators::OpDomainRhsVectorF, Poisson2DHomogeneousOperators::OpDomainRhsVectorF, Example::OpError, ReactionDiffusionEquation::OpAssembleStiffRhs< DIM >, ReactionDiffusionEquation::OpAssembleSlowRhs, Example::OpSecond, Example::OpFirst, Example::OpZero, PlasticOps::OpPostProcPlastic, PlasticOps::OpCalculateContrainsRhs, PlasticOps::OpCalculatePlasticFlowRhs, PlasticOps::OpPlasticStress, PlasticOps::OpCalculatePlasticSurface, OpPlasticTools::OpGetGaussPtsPlasticState, OpPlasticTools::OpPostProcPlastic, OpPlasticTools::OpCalculateContrainsRhs, OpPlasticTools::OpCalculatePlasticFlowRhs, OpPlasticTools::OpPlasticStress, OpPlasticTools::OpCalculatePlasticSurface, OpElasticTools::OpSaveReactionForces, OpElasticTools::OpSetMaterialBlockBoundary, OpElasticTools::OpSetMaterialBlock, OpElasticTools::OpPostProcElastic< LOGSTRAIN >, OpElasticTools::OpCentrifugalForce, OpElasticTools::OpInternalForceRhs< LOGSTRAIN, REACTIONS >, OpElasticTools::OpRotatingFrameBoundaryRhs, OpElasticTools::OpRotatingFrameRhs, OpElasticTools::OpCalculateLogStressTangent< TANGENT >, OpElasticTools::OpStress, OpElasticTools::OpLogStrain, OpElasticTools::OpStrain, OpContactTools::OpPostProcContact, MoFEM::OpScaleMatrix, MoFEM::OpSymmetrizeTensor< DIM >, MoFEM::OpTensorTimesSymmetricTensor< DIM_01, DIM_23, S >, Example::OpRhs, OpVolumeSide, OpFace, OpVolume, OpRow, OpEdgeForceRhs, FractureMechanics::OpPrint, OpSimpleRodPreStress, OpCheck, MoFEM::OpSetInvJacH1ForFlatPrism, MoFEM::OpCalculateInvJacForFlatPrism, MoFEM::OpSetInvJacH1ForFatPrism, MoFEM::OpCalculateInvJacForFatPrism, MoFEM::OpMultiplyDeterminantOfJacobianAndWeightsForFatPrisms, MoFEM::OpSetContravariantPiolaTransformOnEdge, MoFEM::OpSetContravariantPiolaTransformFaceImpl< 3 >, MoFEM::OpSetContravariantPiolaTransformFaceImpl< 2 >, MoFEM::OpMakeHighOrderGeometryWeightsOnFace, MoFEM::OpMakeHdivFromHcurl, MoFEM::OpSetInvJacHcurlFaceImpl< 3 >, MoFEM::OpSetInvJacHcurlFaceImpl< 2 >, MoFEM::OpSetInvJacSpaceForFaceImpl< 3 >, MoFEM::OpSetInvJacSpaceForFaceImpl< 2 >, MoFEM::OpCalculateInvJacForFaceImpl< 3 >, MoFEM::OpCalculateInvJacForFaceImpl< 2 >, MoFEM::OpCalculateJacForFaceImpl< 3 >, MoFEM::OpCalculateJacForFaceImpl< 2 >, MoFEM::OpCalculateHVecTensorDivergence< Tensor_Dim0, Tensor_Dim1 >, MoFEM::OpCalculateHTensorTensorField< Tensor_Dim0, Tensor_Dim1 >, MoFEM::OpCalculateHVecTensorField< Tensor_Dim0, Tensor_Dim1 >, MoFEM::OpCalculateHcurlVectorCurl< Tensor_Dim >, MoFEM::OpCalculateHdivVectorDivergenceDot< Tensor_Dim1, Tensor_Dim2 >, MoFEM::OpCalculateHVecVectorGradient< BASE_DIM, SPACE_DIM >, MoFEM::OpCalculateHdivVectorDivergence< BASE_DIM, SPACE_DIM >, MoFEM::OpCalculateHdivVectorFieldDot< Tensor_Dim >, MoFEM::OpCalculateHdivVectorField_General< Tensor_Dim, double, ublas::row_major, DoubleAllocator >, MoFEM::OpCalculateHdivVectorField_General< Tensor_Dim0, T, L, A >, MoFEM::OpCalculateVectorFieldGradientDot< Tensor_Dim0, Tensor_Dim1 >, MoFEM::OpCalculateVectorFieldGradient_General< Tensor_Dim0, Tensor_Dim1, double, ublas::row_major, DoubleAllocator >, MoFEM::OpCalculateScalarFieldGradient_General< Tensor_Dim, double, ublas::row_major, DoubleAllocator >, MoFEM::OpCalculateTensor2SymmetricFieldValuesDot< Tensor_Dim >, MoFEM::OpCalculateTensor2SymmetricFieldValues< Tensor_Dim >, MoFEM::OpCalculateTensor2FieldValuesDot< Tensor_Dim0, Tensor_Dim1 >, MoFEM::OpCalculateTensor2FieldValues_General< Tensor_Dim0, Tensor_Dim1, double, ublas::row_major, DoubleAllocator >, MoFEM::OpCalculateTensor2FieldValues_General< Tensor_Dim0, Tensor_Dim1, T, L, A >, MoFEM::OpCalculateVectorFieldValuesFromPetscVecImpl< Tensor_Dim, CTX >, MoFEM::OpCalculateVectorFieldValues_General< Tensor_Dim, double, ublas::row_major, DoubleAllocator >, MoFEM::OpCalculateVectorFieldValues_General< Tensor_Dim, T, L, A >, MoFEM::OpCalculateScalarFieldValuesDot, MoFEM::OpCalculateScalarFieldValues, MoFEM::OpCalculateScalarFieldValues_General< T, A >, MoFEM::OpCalculateScalarFieldValues_General< double, DoubleAllocator >, MoFEM::OpUnSetBc, MoFEM::OpSetBc, MoFEM::OpSetCovariantPiolaTransformOnEdge, MoFEM::OpGetHoTangentOnEdge, MoFEM::OpSetCovariantPiolaTransformOnFace, MoFEM::OpSetContravariantPiolaTransformOnFace, MoFEM::OpGetCoordsAndNormalsOnPrism, MoFEM::OpGetCoordsAndNormalsOnFace, MoFEM::OpGetDataAndGradient< RANK, DIM >, MoFEM::OpGetDataAndGradient< 3, 3 >, MoFEM::OpSetCovariantPiolaTransform, MoFEM::OpSetHoCovariantPiolaTransform, MoFEM::OpSetHoContravariantPiolaTransform, MoFEM::OpSetContravariantPiolaTransform, MoFEM::OpSetHoInvJacHdivAndHcurl, MoFEM::OpSetHoInvJacH1, MoFEM::OpSetInvJacHdivAndHcurl, MoFEM::OpSetInvJacH1, OpVolumeAssemble, OpVolumeTest, OpVolumeSet, OpFace, OpVolume, OpCheckValsDiffVals, OpValsDiffVals, OpAssembleVec, QuadOpRhs, QuadOpCheck, PrismOpRhs, PrismOpCheck, PrismOp, OpTetDivergence, OpDivergence, OpDivergence, OpTetCurl, OpCheckValsDiffVals, OpValsDiffVals, OpAssembleVec, MyOp2, CallingOp, MyOp, SkeletonFE::OpFaceSide, SkeletonFE::OpFaceSide, SkeletonFE::OpFaceSide, OpFace, OpElasticTools::OpEssentialRHS_U, OpAleLhsPre_dX_dx< S >, OpAssemble, OpCalculateStiffnessScaledByDensityField, OpCalculateHomogeneousStiffness< S >, OpCalculateEshelbyStress, OpCalculateEnergy, OpCalculateStress< S >, OpCalculateStrainAle, and OpCalculateStrain< D >.
Definition at line 61 of file DataOperators.hpp.
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.
Definition at line 97 of file DataOperators.hpp.
|
virtual |
Definition at line 111 of file DataOperators.cpp.
|
private |
Definition at line 54 of file DataOperators.cpp.
|
virtual |
Definition at line 171 of file DataOperators.cpp.
|
private |
Definition at line 121 of file DataOperators.cpp.
void MoFEM::DataOperator::setSymm | ( | ) |
set if operator is executed taking in account symmetry
Definition at line 100 of file DataOperators.hpp.
void MoFEM::DataOperator::unSetSymm | ( | ) |
unset if operator is executed for non symmetric problem
Definition at line 103 of file DataOperators.hpp.
bool& MoFEM::DataOperator::doEdges |
\deprectaed If false skip edges
Definition at line 81 of file DataOperators.hpp.
std::array<bool, MBMAXTYPE> MoFEM::DataOperator::doEntities |
If true operator is executed for entity.
Definition at line 75 of file DataOperators.hpp.
bool& MoFEM::DataOperator::doPrisms |
\deprectaed
Definition at line 85 of file DataOperators.hpp.
bool& MoFEM::DataOperator::doQuads |
\deprectaed
Definition at line 82 of file DataOperators.hpp.
bool& MoFEM::DataOperator::doTets |
\deprectaed
Definition at line 84 of file DataOperators.hpp.
bool& MoFEM::DataOperator::doTris |
\deprectaed
Definition at line 83 of file DataOperators.hpp.
bool& MoFEM::DataOperator::doVertices |
\deprectaed If false skip vertices
Definition at line 80 of file DataOperators.hpp.
bool MoFEM::DataOperator::sYmm |
If true assume that matrix is symmetric structure.
Definition at line 72 of file DataOperators.hpp.