From cb0f0542d205391fa58dc2eef6573584b94f2b8c Mon Sep 17 00:00:00 2001
From: Dmitri Naumov <github@naumov.de>
Date: Sat, 6 Jul 2019 12:28:00 +0200
Subject: [PATCH] [T] MC; Fix yield function value checks.

In the plastified cases it must be 0, in the elastic
case less than 0.
---
 Tests/MaterialLib/TestFractureModels.cpp | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/Tests/MaterialLib/TestFractureModels.cpp b/Tests/MaterialLib/TestFractureModels.cpp
index d58ebf1d670..9f5766d17b9 100644
--- a/Tests/MaterialLib/TestFractureModels.cpp
+++ b/Tests/MaterialLib/TestFractureModels.cpp
@@ -124,6 +124,7 @@ TEST(MaterialLib_Fracture, MohrCoulomb2D_elastic)
     EXPECT_NEAR(0, C(0, 1), eps_C);
     EXPECT_NEAR(0, C(1, 0), eps_C);
     EXPECT_NEAR(0, C(1, 1), eps_C);
+    EXPECT_LE(state->getShearYieldFunctionValue(), 0);
 }
 
 TEST(MaterialLib_Fracture, MohrCoulomb2D_negative_t)
@@ -165,6 +166,7 @@ TEST(MaterialLib_Fracture, MohrCoulomb2D_negative_t)
     EXPECT_NEAR(1.26558e+10, C(0,1), eps_C);
     EXPECT_NEAR(4.13226e+09, C(1,0), eps_C);
     EXPECT_NEAR(4.72319e+10, C(1,1), eps_C);
+    EXPECT_NEAR(0, state->getShearYieldFunctionValue(), eps_sigma);
 }
 
 
@@ -201,13 +203,13 @@ TEST(MaterialLib_Fracture, MohrCoulomb2D_positive_t)
     fractureModel.computeConstitutiveRelation(0, x, aperture0, sigma0, w_prev,
                                               w, sigma_prev, sigma, C, *state);
 
-    ASSERT_NEAR(446608.0, state->getShearYieldFunctionValue(), eps_sigma);
     EXPECT_NEAR(253972.0, sigma[0], eps_sigma);
     EXPECT_NEAR(-2.94784e+06, sigma[1], eps_sigma);
     EXPECT_NEAR(1.10723e+09, C(0, 0), eps_C);
     EXPECT_NEAR(-1.26558e+10, C(0, 1), eps_C);
     EXPECT_NEAR(-4.13226e+09, C(1, 0), eps_C);
     EXPECT_NEAR(4.72319e+10, C(1, 1), eps_C);
+    EXPECT_NEAR(0, state->getShearYieldFunctionValue(), eps_sigma);
 }
 
 TEST(MaterialLib_Fracture, MohrCoulomb3D_negative_t1)
@@ -243,7 +245,6 @@ TEST(MaterialLib_Fracture, MohrCoulomb3D_negative_t1)
     fractureModel.computeConstitutiveRelation(0, x, aperture0, sigma0, w_prev,
                                               w, sigma_prev, sigma, C, *state);
 
-    ASSERT_NEAR(1.06608E+5, state->getShearYieldFunctionValue(), eps_sigma);
     EXPECT_NEAR(-3.50360e6, sigma[0], eps_sigma);
     EXPECT_NEAR(0.0, sigma[1], eps_sigma);
     EXPECT_NEAR(-2.16271e6, sigma[2], eps_sigma);
@@ -256,6 +257,7 @@ TEST(MaterialLib_Fracture, MohrCoulomb3D_negative_t1)
     EXPECT_NEAR(4.13226e+09, C(2, 0), eps_C);
     EXPECT_NEAR(0.0, C(2, 1), eps_C);
     EXPECT_NEAR(4.72319e+10, C(2, 2), eps_C);
+    EXPECT_NEAR(0, state->getShearYieldFunctionValue(), eps_sigma);
 }
 
 TEST(MaterialLib_Fracture, MohrCoulomb3D_positive_t1)
@@ -291,7 +293,6 @@ TEST(MaterialLib_Fracture, MohrCoulomb3D_positive_t1)
     fractureModel.computeConstitutiveRelation(0, x, aperture0, sigma0, w_prev,
                                               w, sigma_prev, sigma, C, *state);
 
-    ASSERT_NEAR(446608.0, state->getShearYieldFunctionValue(), eps_sigma);
     EXPECT_NEAR(253972.0, sigma[0], eps_sigma);
     EXPECT_NEAR(0.0, sigma[1], eps_sigma);
     EXPECT_NEAR(-2.94784e+06, sigma[2], eps_sigma);
@@ -304,6 +305,7 @@ TEST(MaterialLib_Fracture, MohrCoulomb3D_positive_t1)
     EXPECT_NEAR(-4.13226e+09, C(2, 0), eps_C);
     EXPECT_NEAR(0.0, C(2, 1), eps_C);
     EXPECT_NEAR(4.72319e+10, C(2, 2), eps_C);
+    EXPECT_NEAR(0, state->getShearYieldFunctionValue(), eps_sigma);
 }
 
 
@@ -340,7 +342,6 @@ TEST(MaterialLib_Fracture, MohrCoulomb3D_positive_t2)
     fractureModel.computeConstitutiveRelation(0, x, aperture0, sigma0, w_prev,
                                               w, sigma_prev, sigma, C, *state);
 
-    ASSERT_NEAR(446608.0, state->getShearYieldFunctionValue(), eps_sigma);
     EXPECT_NEAR(0.0, sigma[0], eps_sigma);
     EXPECT_NEAR(253972.0, sigma[1], eps_sigma);
     EXPECT_NEAR(-2.94784e+06, sigma[2], eps_sigma);
@@ -353,6 +354,7 @@ TEST(MaterialLib_Fracture, MohrCoulomb3D_positive_t2)
     EXPECT_NEAR(0.0, C(2, 0), eps_C);
     EXPECT_NEAR(-4.13226e+09, C(2, 1), eps_C);
     EXPECT_NEAR(4.72319e+10, C(2, 2), eps_C);
+    EXPECT_NEAR(0, state->getShearYieldFunctionValue(), eps_sigma);
 }
 
 
@@ -389,7 +391,6 @@ TEST(MaterialLib_Fracture, MohrCoulomb3D_negative_t1t2)
     fractureModel.computeConstitutiveRelation(0, x, aperture0, sigma0, w_prev,
                                               w, sigma_prev, sigma, C, *state);
 
-    ASSERT_NEAR(1.06608E+5, state->getShearYieldFunctionValue(), eps_sigma);
     EXPECT_NEAR(-3.50360e6 / std::sqrt(2), sigma[0], eps_sigma);
     EXPECT_NEAR(-3.50360e6 / std::sqrt(2), sigma[1], eps_sigma);
     EXPECT_NEAR(-2.16271e6, sigma[2], eps_sigma);
@@ -402,6 +403,7 @@ TEST(MaterialLib_Fracture, MohrCoulomb3D_negative_t1t2)
     EXPECT_NEAR(2.92195e+09, C(2, 0), eps_C);
     EXPECT_NEAR(2.92195e+09, C(2, 1), eps_C);
     EXPECT_NEAR(4.72319e+10, C(2, 2), eps_C);
+    EXPECT_NEAR(0, state->getShearYieldFunctionValue(), eps_sigma);
 }
 
 
@@ -439,7 +441,6 @@ TEST(MaterialLib_Fracture, MohrCoulomb3D_negative_t1_positive_t2)
     fractureModel.computeConstitutiveRelation(0, x, aperture0, sigma0, w_prev,
                                               w, sigma_prev, sigma, C, *state);
 
-    ASSERT_NEAR(1.06608E+5, state->getShearYieldFunctionValue(), eps_sigma);
     EXPECT_NEAR(-3.50360e6 / std::sqrt(2), sigma[0], eps_sigma);
     EXPECT_NEAR(3.50360e6 / std::sqrt(2), sigma[1], eps_sigma);
     EXPECT_NEAR(-2.16271e6, sigma[2], eps_sigma);
@@ -452,5 +453,6 @@ TEST(MaterialLib_Fracture, MohrCoulomb3D_negative_t1_positive_t2)
     EXPECT_NEAR(2.92195e+09, C(2, 0), eps_C);
     EXPECT_NEAR(-2.92195e+09, C(2, 1), eps_C);
     EXPECT_NEAR(4.72319e+10, C(2, 2), eps_C);
+    EXPECT_NEAR(0, state->getShearYieldFunctionValue(), eps_sigma);
 }
 
-- 
GitLab