diff --git a/MaterialLib/SolidModels/MFront/ModCamClay_semiExplParaInitNLnu_inc.mfront b/MaterialLib/SolidModels/MFront/ModCamClay_semiExplParaInitNLnu_inc.mfront index 806de41c4832091fa26b622715441f51de18a767..5a4dfd93a8729831b96fd95c4ceb376afd0d00d9 100644 --- a/MaterialLib/SolidModels/MFront/ModCamClay_semiExplParaInitNLnu_inc.mfront +++ b/MaterialLib/SolidModels/MFront/ModCamClay_semiExplParaInitNLnu_inc.mfront @@ -32,10 +32,6 @@ @ModellingHypotheses{".+"}; // supporting all stress and strain states @Algorithm NewtonRaphson; //_NumericalJacobian;_LevenbergMarquardt -@Parameter stress pcMin = 1e-3; //1e+3 Pa -@PhysicalBounds pcMin in [0:*[; -pcMin.setEntryName("MinimalPreConsolidationPressure"); - // material parameters @MaterialProperty real nu; @PhysicalBounds nu in [-1:0.5]; @@ -53,6 +49,10 @@ ka.setEntryName("SwellingLineSlope"); @PhysicalBounds la in [0:*[; la.setEntryName("VirginConsolidationLineSlope"); +@MaterialProperty stress pc_char; +pc_char.setEntryName("CharacteristicPreConsolidationPressure"); +@PhysicalBounds pc_char in [0:*[; + // initial values @MaterialProperty real phi0; @PhysicalBounds phi0 in [0:1]; @@ -92,7 +92,8 @@ v.setEntryName("VolumeRatio"); // Total volume per solid volume = 1 + pore numb @LocalVariable real M2; @LocalVariable real v0; @LocalVariable real young; -@LocalVariable real rpcMin; +@LocalVariable real pc_min; +@LocalVariable real rpc_min; @InitLocalVariables { @@ -119,7 +120,8 @@ v.setEntryName("VolumeRatio"); // Total volume per solid volume = 1 + pore numb young = E; rpc = pc / young; - rpcMin = pcMin / young; + pc_min = 0.5e-8 * pc_char; + rpc_min = pc_min / young; // stress derivative dsig_deel = De; @@ -179,13 +181,13 @@ v.setEntryName("VolumeRatio"); // Total volume per solid volume = 1 + pore numb // residual feel = deel + depl - deto; flp = f / fchar; - frpc = drpc + deplV * the * (rpcNew - rpcMin); + frpc = drpc + deplV * the * (rpcNew - rpc_min); // auxiliary derivatives const auto dnorm_dsig = (9 * s - 2 * M2 / 9 * df_dp * id2) / norm; const auto dn_ddeel = (3 * Pr4 + 2 * M2 / 9 * (id2 ^ id2) - (n ^ dnorm_dsig)) / norm * dsig_deel * theta; const auto dn_ddrpc = (id2 + df_dp * n / norm) * M2 / (3 * norm) * theta * young; - const auto dfrpc_ddeplV = the * (rpcNew - rpcMin); + const auto dfrpc_ddeplV = the * (rpcNew - rpc_min); // jacobian (all other parts are zero) dfeel_ddeel += dlp * dn_ddeel; diff --git a/Tests/Data/Mechanics/ModifiedCamClay/triaxtest_original.prj b/Tests/Data/Mechanics/ModifiedCamClay/triaxtest_original.prj index 6c5168823a984bbdbd0880f8114c82f0331472cb..e203f512f0757024cb62150511a704270327da1f 100644 --- a/Tests/Data/Mechanics/ModifiedCamClay/triaxtest_original.prj +++ b/Tests/Data/Mechanics/ModifiedCamClay/triaxtest_original.prj @@ -22,6 +22,7 @@ <material_property name="SwellingLineSlope" parameter="SwellingLineSlope"/> <material_property name="VirginConsolidationLineSlope" parameter="VirginConsolidationLineSlope"/> <material_property name="InitialPreConsolidationPressure" parameter="InitialPreConsolidationPressure"/> + <material_property name="CharacteristicPreConsolidationPressure" parameter="InitialPreConsolidationPressure"/> <material_property name="InitialPorosity" parameter="InitialPorosity"/> </material_properties> </constitutive_relation>