From ae7e2595628853a1a64d2d188b8aa66a118d487b Mon Sep 17 00:00:00 2001
From: Klaus <klaus.boehnlein@tu-dresden.de>
Date: Sat, 11 Dec 2021 19:07:08 +0100
Subject: [PATCH] Correct Wrong prestrain Formulas

---
 src/ClassifyMin.py    | 21 ++++++++++++++++++---
 src/ClassifyMinVec.py |  6 ++++--
 2 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/src/ClassifyMin.py b/src/ClassifyMin.py
index b4e83546..459566d4 100644
--- a/src/ClassifyMin.py
+++ b/src/ClassifyMin.py
@@ -32,7 +32,7 @@ def determinant(q1,q2,q3,q12):                                  # TODO General:M
 
 
 def harmonicMean(mu_1, beta, theta):
-    return mu_1*(beta/(theta+(1-theta)*beta))
+    return mu_1*(beta/(theta+((1-theta)*beta)))
 
 
 def arithmeticMean(mu_1, beta, theta):
@@ -40,11 +40,13 @@ def arithmeticMean(mu_1, beta, theta):
 
 
 def prestrain_b1(rho_1, beta, alpha, theta):
-    return (3.0*rho_1/2.0)*beta*(1-(theta*(1+alpha)))
+    return (3.0*rho_1/2.0)*(1-(theta*(1+alpha)))
+    # return (3.0*rho_1/2.0)*beta*(1-(theta*(1+alpha)))
 
 
 def prestrain_b2(rho_1, beta, alpha, theta):
-    return (3.0*rho_1/(4.0*((1.0-theta) + theta*beta)))*(1-theta*(1+beta*alpha))
+    return (3.0*rho_1/(2.0*((1.0-theta) + theta*beta)))*(1-theta*(1+beta*alpha))
+    # return (3.0*rho_1/(4.0*((1.0-theta) + theta*beta)))*(1-theta*(1+beta*alpha))
 
 
 # Define function to be minimized
@@ -72,6 +74,11 @@ def classifyMin_ana(alpha,beta,theta,q3,mu_1,rho_1,print_Cases=False, print_Outp
     # print('q2: ', q2)
     b1 = prestrain_b1(rho_1, beta, alpha,theta)
     b2 = prestrain_b2(rho_1, beta, alpha,theta)
+
+    # print('alpha:',alpha)
+    # print('beta:',beta)
+    # print('theta:',theta)
+
     return classifyMin(q1, q2, q3, q12,  b1, b2,  print_Cases, print_Output)
 
 
@@ -147,6 +154,7 @@ def classifyMin(q1, q2, q3, q12, b1, b2,  print_Cases=False, print_Output=False)
     # ------------------------------------ Parabolic Case -----------------------------------
     if abs(determinant) < epsilon:
         if print_Cases: print('P : parabolic case (determinant equal zero)')
+        print('P : parabolic case (determinant equal zero)')
         # if print_Cases: print('P : parabolic case (determinant equal zero)')
 
         # check if B is in range of A
@@ -283,6 +291,9 @@ def classifyMin(q1, q2, q3, q12, b1, b2,  print_Cases=False, print_Output=False)
     # compute a3
     # a3 = math.sqrt(2.0*a1*a2)   # never needed?
 
+    # print('a1:', a1)
+    # print('a2:', a2)
+
     # compute the angle <(e,e_1) where Minimizer = kappa* (e (x) e)
     e = [math.sqrt((a1/(a1+a2))), math.sqrt((a2/(a1+a2)))]
     angle = math.atan2(e[1], e[0])
@@ -294,6 +305,9 @@ def classifyMin(q1, q2, q3, q12, b1, b2,  print_Cases=False, print_Output=False)
     Minimizer = np.array([[a1, math.sqrt(a1*a2)], [math.sqrt(a1*a2), a2]],dtype=object)
     # Minimizer = np.array([[a1, math.sqrt(a1*a2)], [math.sqrt(a1*a2), a2]])
 
+    # MinimizerVec = np.array([a1, a2],dtype=object)
+    MinimizerVec = np.array([a1, a2])
+
     if print_Output:
         print('--- Output ClassifyMin ---')
         print("Minimizing Matrix G:")
@@ -303,6 +317,7 @@ def classifyMin(q1, q2, q3, q12, b1, b2,  print_Cases=False, print_Output=False)
         print("kappa = ", kappa)
 
     return Minimizer, angle, type, kappa
+    # return MinimizerVec, angle, type, kappa    #return Minimizer Vector instead
 # ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
 
diff --git a/src/ClassifyMinVec.py b/src/ClassifyMinVec.py
index c66307b4..e8230bef 100644
--- a/src/ClassifyMinVec.py
+++ b/src/ClassifyMinVec.py
@@ -40,11 +40,13 @@ def arithmeticMean(mu_1, beta, theta):
 
 
 def prestrain_b1(rho_1, beta, alpha, theta):
-    return (3.0*rho_1/2.0)*beta*(1-(theta*(1+alpha)))
+    return (3.0*rho_1/2.0)*(1-(theta*(1+alpha)))
+    # return (3.0*rho_1/2.0)*beta*(1-(theta*(1+alpha)))
 
 
 def prestrain_b2(rho_1, beta, alpha, theta):
-    return (3.0*rho_1/(4.0*((1.0-theta) + theta*beta)))*(1-theta*(1+beta*alpha))
+    return (3.0*rho_1/(2.0*((1.0-theta) + theta*beta)))*(1-theta*(1+beta*alpha))
+    # return (3.0*rho_1/(4.0*((1.0-theta) + theta*beta)))*(1-theta*(1+beta*alpha))
 
 
 # Define function to be minimized
-- 
GitLab