1123 :
1124 boost::shared_ptr<MatrixDouble>
mDPtr;
1126};
1127
1128template <int DIM, typename DomainEleOp>
1129OpPlasticStressImpl<DIM, GAUSS, DomainEleOp>::OpPlasticStressImpl(
1130 const std::string
field_name, boost::shared_ptr<CommonData> common_data_ptr,
1131 boost::shared_ptr<MatrixDouble> m_D_ptr)
1134
1135 std::fill(&DomainEleOp::doEntities[MBEDGE],
1136 &DomainEleOp::doEntities[MBMAXTYPE], false);
1137}
1138
1139template <int DIM, typename DomainEleOp>
1140OpPlasticStressImpl<DIM, GAUSS, DomainEleOp>::OpPlasticStressImpl(
1141 boost::shared_ptr<CommonData> common_data_ptr,
1142 boost::shared_ptr<MatrixDouble> m_D_ptr)
1144 commonDataPtr(common_data_ptr), mDPtr(m_D_ptr) {}
1145
1146
1147template <int DIM, typename DomainEleOp>
1149OpPlasticStressImpl<DIM, GAUSS, DomainEleOp>::doWork(int side, EntityType type,
1152
1157
1158 const size_t nb_gauss_pts = commonDataPtr->mStrainPtr->size2();
1159 commonDataPtr->mStressPtr->resize((DIM * (DIM + 1)) / 2, nb_gauss_pts);
1160 auto t_D = getFTensor4DdgFromMat<DIM, DIM, 0>(*mDPtr);
1161 auto t_strain =
1162 getFTensor2SymmetricFromMat<DIM>(*(commonDataPtr->mStrainPtr));
1163 auto t_plastic_strain =
1164 getFTensor2SymmetricFromMat<DIM>(commonDataPtr->plasticStrain);
1165 auto t_stress =
1166 getFTensor2SymmetricFromMat<DIM>(*(commonDataPtr->mStressPtr));
1167
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
FTensor::Index< 'i', SPACE_DIM > i
FTensor::Index< 'l', 3 > l
FTensor::Index< 'j', 3 > j
FTensor::Index< 'k', 3 > k
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
constexpr auto field_name
Data on single entity (This is passed as argument to DataOperator::doWork)
boost::shared_ptr< MatrixDouble > mDPtr
boost::shared_ptr< CommonData > commonDataPtr