diff --git a/Material/Material3D/Concrete/CDPM2.cpp b/Material/Material3D/Concrete/CDPM2.cpp index d21959ffe..605452bca 100644 --- a/Material/Material3D/Concrete/CDPM2.cpp +++ b/Material/Material3D/Concrete/CDPM2.cpp @@ -395,16 +395,18 @@ int CDPM2::update_trial_status(const vec& t_strain) { gamma = 0.; approx_update(); - gamma = f / (pfps * double_shear * gs + pfpp * bulk * gp + pfpkp * gg / xh); + gamma = f / elastic_modulus; + auto low = 0.; while(true) { approx_update(); if(f < 0.) break; + low = gamma; gamma *= 2.; } - auto low = 0., high = gamma; + auto high = gamma; while(true) { - if(fabs(high - low) < std::numeric_limits::epsilon()) break; + if(fabs(high - low) < tolerance) break; gamma = .5 * (low + high); approx_update(); (f < 0. ? high : low) = gamma; diff --git a/Material/Material3D/Concrete/CDPM2.h b/Material/Material3D/Concrete/CDPM2.h index fd29d026e..b1da3f0a7 100644 --- a/Material/Material3D/Concrete/CDPM2.h +++ b/Material/Material3D/Concrete/CDPM2.h @@ -37,7 +37,7 @@ struct DataCDPM2 { const double elastic_modulus = 3E4; const double poissons_ratio = .3; const double ft = 3.; - const double fc = 10.; + const double fc = 30.; const double qh0 = .3; const double hp = .05; const double df = .85;