void MisesMatNl :: giveRealStressVector(FloatArray &answer, GaussPoint *gp, const FloatArray &totalStrain, TimeStep *tStep) { MisesMatNlStatus *nlStatus = static_cast< MisesMatNlStatus * >( this->giveStatus(gp) ); this->initGpForNewStep(gp); double tempDam; performPlasticityReturn(gp, totalStrain); tempDam = this->computeDamage(gp, tStep); answer.beScaled(1.0 - tempDam, nlStatus->giveTempEffectiveStress()); nlStatus->setTempDamage(tempDam); nlStatus->letTempStrainVectorBe(totalStrain); nlStatus->letTempStressVectorBe(answer); }
void MisesMatNl :: giveRealStressVector(FloatArray &answer, MatResponseForm form, GaussPoint *gp, const FloatArray &totalStrain, TimeStep *atTime) { MisesMatNlStatus *nlStatus = ( MisesMatNlStatus * ) this->giveStatus(gp); this->initGpForNewStep(gp); double tempDam; FloatArray tempEffStress, totalStress; MaterialMode mode = gp->giveMaterialMode(); performPlasticityReturn(gp, totalStrain, mode); tempDam = this->computeDamage(gp, atTime); nlStatus->giveTempEffectiveStress(tempEffStress); answer.beScaled( 1.0 - tempDam, tempEffStress); nlStatus->setTempDamage(tempDam); nlStatus->letTempStrainVectorBe(totalStrain); nlStatus->letTempStressVectorBe(answer); }