From 06582d1aa8d320c2a98e80e1ba79fbe47d23bd3a Mon Sep 17 00:00:00 2001
From: cbsilver <christian.silbermann@ifgt.tu-freiberg.de>
Date: Fri, 16 Jun 2023 16:11:51 +0200
Subject: [PATCH] Parameter pcMin eliminated, now derived from pc_char

---
 .../ModCamClay_semiExplParaInitNLnu_inc.mfront | 18 ++++++++++--------
 .../ModifiedCamClay/triaxtest_original.prj     |  1 +
 2 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/MaterialLib/SolidModels/MFront/ModCamClay_semiExplParaInitNLnu_inc.mfront b/MaterialLib/SolidModels/MFront/ModCamClay_semiExplParaInitNLnu_inc.mfront
index 806de41c483..5a4dfd93a87 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 6c5168823a9..e203f512f07 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>
-- 
GitLab