Skip to content
Snippets Groups Projects
Commit d6c79077 authored by Klaus Böhnlein's avatar Klaus Böhnlein
Browse files

Correct Wrong prestrain Formulas

parent 18e38476
No related branches found
No related tags found
No related merge requests found
...@@ -32,7 +32,7 @@ def determinant(q1,q2,q3,q12): # TODO General:M ...@@ -32,7 +32,7 @@ def determinant(q1,q2,q3,q12): # TODO General:M
def harmonicMean(mu_1, beta, theta): 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): def arithmeticMean(mu_1, beta, theta):
...@@ -40,11 +40,13 @@ def arithmeticMean(mu_1, beta, theta): ...@@ -40,11 +40,13 @@ def arithmeticMean(mu_1, beta, theta):
def prestrain_b1(rho_1, beta, alpha, 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): 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 # 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 ...@@ -72,6 +74,11 @@ def classifyMin_ana(alpha,beta,theta,q3,mu_1,rho_1,print_Cases=False, print_Outp
# print('q2: ', q2) # print('q2: ', q2)
b1 = prestrain_b1(rho_1, beta, alpha,theta) b1 = prestrain_b1(rho_1, beta, alpha,theta)
b2 = prestrain_b2(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) 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) ...@@ -147,6 +154,7 @@ def classifyMin(q1, q2, q3, q12, b1, b2, print_Cases=False, print_Output=False)
# ------------------------------------ Parabolic Case ----------------------------------- # ------------------------------------ Parabolic Case -----------------------------------
if abs(determinant) < epsilon: if abs(determinant) < epsilon:
if print_Cases: print('P : parabolic case (determinant equal zero)') 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)') # if print_Cases: print('P : parabolic case (determinant equal zero)')
# check if B is in range of A # 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) ...@@ -283,6 +291,9 @@ def classifyMin(q1, q2, q3, q12, b1, b2, print_Cases=False, print_Output=False)
# compute a3 # compute a3
# a3 = math.sqrt(2.0*a1*a2) # never needed? # 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) # compute the angle <(e,e_1) where Minimizer = kappa* (e (x) e)
e = [math.sqrt((a1/(a1+a2))), math.sqrt((a2/(a1+a2)))] e = [math.sqrt((a1/(a1+a2))), math.sqrt((a2/(a1+a2)))]
angle = math.atan2(e[1], e[0]) 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) ...@@ -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]],dtype=object)
# Minimizer = np.array([[a1, math.sqrt(a1*a2)], [math.sqrt(a1*a2), a2]]) # 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: if print_Output:
print('--- Output ClassifyMin ---') print('--- Output ClassifyMin ---')
print("Minimizing Matrix G:") print("Minimizing Matrix G:")
...@@ -303,6 +317,7 @@ def classifyMin(q1, q2, q3, q12, b1, b2, print_Cases=False, print_Output=False) ...@@ -303,6 +317,7 @@ def classifyMin(q1, q2, q3, q12, b1, b2, print_Cases=False, print_Output=False)
print("kappa = ", kappa) print("kappa = ", kappa)
return Minimizer, angle, type, kappa return Minimizer, angle, type, kappa
# return MinimizerVec, angle, type, kappa #return Minimizer Vector instead
# ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ # ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
......
...@@ -40,11 +40,13 @@ def arithmeticMean(mu_1, beta, theta): ...@@ -40,11 +40,13 @@ def arithmeticMean(mu_1, beta, theta):
def prestrain_b1(rho_1, beta, alpha, 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): 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 # Define function to be minimized
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment