diff --git a/Material/Material3D/Concrete/CDPM2.cpp b/Material/Material3D/Concrete/CDPM2.cpp index fa14623c7..89c5e2774 100644 --- a/Material/Material3D/Concrete/CDPM2.cpp +++ b/Material/Material3D/Concrete/CDPM2.cpp @@ -71,16 +71,16 @@ void CDPM2::compute_plasticity(const double lode, const double s, const double p const auto g3 = (s / sqrt_six + p) / fc; const auto g1 = (1. - qh1) * g3 * g3 + sqrt_three_two * s / fc; - const auto square_lode = ra * lode * lode; - const auto sqrt_term = sqrt(rb * square_lode + rc); - const auto numerator = square_lode + rb; + const auto square_term = ra * lode * lode; + const auto sqrt_term = sqrt(rb * square_term + rc); + const auto numerator = square_term + rb; const auto denominator = ra * lode + sqrt_term; const auto r = numerator / denominator; const auto drdl = ra * (2. * lode - r - r * rb * lode / sqrt_term) / denominator; const auto g4 = (r * s / sqrt_six + p) / fc; const auto pg4pp = 1. / fc; - const auto pg4ps = r * pg4pp / sqrt_six; + const auto pg4ps = r / sqrt_six / fc; const auto pg4pl = s / sqrt_six / fc * drdl; const auto pg3pp = 1. / fc; @@ -369,7 +369,7 @@ int CDPM2::update_trial_status(const vec& t_strain) { double lode, square_lode; rowvec dlode; - if(const auto lode_a = tensor::stress::lode(dev_stress); suanpan::approx_equal(lode_a, -1., 4)) { + if(const auto lode_a = tensor::stress::lode(dev_stress); suanpan::approx_equal(lode_a, -1., 1000)) { lode = square_lode = 1.; dlode.zeros(6); }