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