void IsotropicPlasticity::iterationFinalize(unsigned qp, Real scalar) { if (_yield_condition > 0) _hardening_variable[qp] = computeHardeningValue(qp, scalar); if (_scalar_plastic_strain) (*_scalar_plastic_strain)[qp] = (*_scalar_plastic_strain_old)[qp] + scalar; }
Real IsotropicPlasticity::computeResidual(unsigned qp, Real effectiveTrialStress, Real scalar) { Real residual(0); _hardening_slope = 0; if (_yield_condition > 0) { _hardening_slope = computeHardeningDerivative(qp, scalar); _hardening_variable[qp] = computeHardeningValue(qp, scalar); // The order here is important. The final term can be small, and we don't want it lost to roundoff. residual = (effectiveTrialStress - _hardening_variable[qp] - _yield_stress) - (3 * _shear_modulus * scalar); } return residual; }
Real IsotropicPlasticity::computeResidual(const Real effectiveTrialStress, const Real scalar) { Real residual = 0.0; _hardening_slope = 0.0; if (_yield_condition > 0.0) { _hardening_slope = computeHardeningDerivative(scalar); _hardening_variable[_qp] = computeHardeningValue(scalar); // The order here is important. The final term can be small, and we don't want it lost to // roundoff. residual = (effectiveTrialStress - _hardening_variable[_qp] - _yield_stress) / (3.0 * _shear_modulus) - scalar; } return residual; }
Real IsotropicPlasticityStressUpdate::computeResidual(const Real effective_trial_stress, const Real scalar) { Real residual = 0.0; mooseAssert(_yield_condition != -1.0, "the yield stress was not updated by computeStressInitialize"); if (_yield_condition > 0.0) { _hardening_slope = computeHardeningDerivative(scalar); _hardening_variable[_qp] = computeHardeningValue(scalar); residual = (effective_trial_stress - _hardening_variable[_qp] - _yield_stress) / _three_shear_modulus - scalar; } return residual; }
void IsotropicPlasticity::iterationFinalize(Real scalar) { if (_yield_condition > 0) _hardening_variable[_qp] = computeHardeningValue(scalar); }