430 commonDataPtr(common_data_ptr), commonTPDataPtr(tp_common_data_ptr) {
431
432 std::fill(&DomainEleOp::doEntities[MBEDGE],
433 &DomainEleOp::doEntities[MBMAXTYPE], false);
434}
435
436template <int DIM, typename DomainEleOp>
437MoFEMErrorCode OpCalculatePlasticHardeningImpl<DIM, GAUSS, DomainEleOp>::doWork(
438 int side, EntityType type,
EntData &data) {
440
443
444 const size_t nb_gauss_pts =
commonDataPtr->mStressPtr->size2();
445
447 auto t_plastic_strain =
448 getFTensor2SymmetricFromMat<DIM>(
commonDataPtr->plasticStrain);
449 auto t_temp = getFTensor0FromVec(commonTPDataPtr->temperature);
450
451 commonDataPtr->plasticIsoHardening.resize(nb_gauss_pts,
false);
452
453
454
455
456 auto t_iso_hardening = getFTensor0FromVec(
commonDataPtr->plasticIsoHardening);
457
458
459
461
462 for (
int i = 0;
i != nb_gauss_pts; ++
i) {
463 t_iso_hardening =
#define FTENSOR_INDEX(DIM, I)
DomainEle::UserDataOperator DomainEleOp
Finire element operator type.
#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< 'j', 3 > j
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
constexpr auto field_name
Data on single entity (This is passed as argument to DataOperator::doWork)
double iso_hardening(double tau, double H, double Qinf, double b_iso, double sigmaY)