getfem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Getfem-commits] (no subject)


From: Konstantinos Poulios
Subject: [Getfem-commits] (no subject)
Date: Mon, 21 May 2018 08:01:22 -0400 (EDT)

branch: devel-logari81-plasticity
commit e930335dae6cbcea1ab4c219f53a9f50ea5d70e8
Author: Konstantinos Poulios <address@hidden>
Date:   Mon May 21 14:01:05 2018 +0200

    Fix kinematic hardening coefficient error in small strain plasticity
---
 src/getfem_plasticity.cc | 70 +++++++++++++++++++++++-------------------------
 1 file changed, 34 insertions(+), 36 deletions(-)

diff --git a/src/getfem_plasticity.cc b/src/getfem_plasticity.cc
index 8519549..7dd35b3 100644
--- a/src/getfem_plasticity.cc
+++ b/src/getfem_plasticity.cc
@@ -895,22 +895,21 @@ namespace getfem {
     dict["En"] = ga_substitute("Sym(Grad_Previous_u)", dict);
     dict["zetan"] = ga_substitute
       ("((Epn)+(1-(theta))*((dt)*(Previous_xi))*((2*(mu))*Deviator(En)"
-       "-(2*(mu)+(Hk))*(Epn)))", dict);
+       "-(2*(mu)+2/3*(Hk))*(Epn)))", dict);
     dict["etan"] = ga_substitute
       ("((alphan)+sqrt(2/3)*(1-(theta))*((dt)*(Previous_xi))*"
-       "Norm((2*(mu))*Deviator(En)-(2*(mu)+(Hk))*(Epn)))", dict);
-    dict["B"] = 
ga_substitute("((2*(mu))*Deviator(Enp1)-(2*(mu)+(Hk))*(zetan))",
-                              dict);
-    dict["beta"] =
-      ga_substitute("((theta)*(dt)*(xi)/(1+(2*(mu)+(Hk))*(theta)*(dt)*(xi)))",
-                    dict);
+       "Norm((2*(mu))*Deviator(En)-(2*(mu)+2/3*(Hk))*(Epn)))", dict);
+    dict["B"] = ga_substitute
+      ("((2*(mu))*Deviator(Enp1)-(2*(mu)+2/3*(Hk))*(zetan))", dict);
+    dict["beta"] = ga_substitute
+      ("((theta)*(dt)*(xi)/(1+(2*(mu)+2/3*(Hk))*(theta)*(dt)*(xi)))", dict);
     dict["Epnp1"] = Epnp1 = ga_substitute("((zetan)+(beta)*(B))", dict);
     alphanp1 = ga_substitute("((etan)+sqrt(2/3)*(beta)*Norm(B))", dict);
     dict["alphanp1"] = alphanp1;
     sigma_np1 = ga_substitute
       ("((lambda)*Trace(Enp1)*Id(meshdim)+2*(mu)*((Enp1)-(Epnp1)))", dict);
     dict["fbound"] = ga_substitute
-      ("(Norm((2*(mu))*Deviator(Enp1)-(2*(mu)+(Hk))*(Epnp1))"
+      ("(Norm((2*(mu))*Deviator(Enp1)-(2*(mu)+2/3*(Hk))*(Epnp1))"
        "-sqrt(2/3)*(sigma_y+(Hi)*(alphanp1)))",  dict);
     dict["sigma_after"] = sigma_after = ga_substitute
       ("((lambda)*Trace(Enp1)*Id(meshdim)+2*(mu)*((Enp1)-(Epn)))", dict);
@@ -971,15 +970,15 @@ namespace getfem {
     dict["En"] = ga_substitute("Sym(Grad_Previous_u)", dict);
     dict["zetan"] = ga_substitute
       ("((Epn)+(1-(theta))*((dt)*(Previous_xi))*((2*(mu))*Deviator(En)"
-       "-(2*(mu)+(Hk))*(Epn)))", dict);
+       "-(2*(mu)+2/3*(Hk))*(Epn)))", dict);
     dict["etan"] = ga_substitute
       ("((alphan)+sqrt(2/3)*(1-(theta))*((dt)*(Previous_xi))*"
-       "Norm((2*(mu))*Deviator(En)-(2*(mu)+(Hk))*(Epn)))", dict);
+       "Norm((2*(mu))*Deviator(En)-(2*(mu)+2/3*(Hk))*(Epn)))", dict);
 
-    dict["B"] = 
ga_substitute("((2*(mu))*Deviator(Enp1)-(2*(mu)+(Hk))*(zetan))",
-                                  dict);
+    dict["B"] = ga_substitute
+      ("((2*(mu))*Deviator(Enp1)-(2*(mu)+2/3*(Hk))*(zetan))", dict);
     dict["beta"] =
-      ga_substitute("(1/((Norm(B)+1e-40)*(2*(mu)+(Hk)+(2/3)*(Hi))))"
+      ga_substitute("(1/((Norm(B)+1e-40)*(2*(mu)+2/3*(Hk)+(2/3)*(Hi))))"
       "*pos_part(Norm(B)-sqrt(2/3)*((sigma_y)+(Hi)*(etan)))", dict);
     dict["Epnp1"] = Epnp1 = ga_substitute("((zetan)+(beta)*(B))", dict);
     alphanp1 = ga_substitute("((etan)+sqrt(2/3)*(beta)*Norm(B))", dict);
@@ -990,7 +989,7 @@ namespace getfem {
     dict["sigma_after"] = sigma_after = ga_substitute
       ("(lambda)*Trace(Enp1)*Id(meshdim)+2*(mu)*((Enp1)-(Epn))", dict);
     xi_np1 = ga_substitute
-      ("(((beta)/(1-(2*(mu)+(Hk))*(beta)))/((theta)*(dt)))", dict);
+      ("(((beta)/(1-(2*(mu)+2/3*(Hk))*(beta)))/((theta)*(dt)))", dict);
     von_mises = ga_substitute
       ("sqrt(3/2)*Norm(Deviator(sigma_after))", dict);
   }
@@ -1048,35 +1047,34 @@ namespace getfem {
     dict["Dev_Enp1"]= ga_substitute("(Enp1-(Trace(Enp1)/3)*Id(meshdim))", 
dict);
     dict["zetan"] = ga_substitute
       ("((Epn)+(1-(theta))*((dt)*(Previous_xi))*((2*(mu))*(Dev_En)"
-       "-(2*(mu)+(Hk))*(Epn)))", dict);
+       "-(2*(mu)+2/3*(Hk))*(Epn)))", dict);
     dict["etan"] = ga_substitute
       ("((alphan)+sqrt(2/3)*(1-(theta))*((dt)*(Previous_xi))*"
-       "sqrt(Norm_sqr((2*(mu))*(Dev_En)-(2*(mu)+(Hk))*(Epn))"
-       "+sqr(2*(mu)*Trace(En)/3-(2*(mu)+(Hk))*Trace(Epn))))", dict);
-    dict["B"] = ga_substitute("((2*(mu))*(Dev_Enp1)-(2*(mu)+(Hk))*(zetan))",
+       "sqrt(Norm_sqr((2*(mu))*(Dev_En)-(2*(mu)+2/3*(Hk))*(Epn))"
+       "+sqr(2*(mu)*Trace(En)/3-(2*(mu)+2/3*(Hk))*Trace(Epn))))", dict);
+    dict["B"] = 
ga_substitute("((2*(mu))*(Dev_Enp1)-(2*(mu)+2/3*(Hk))*(zetan))",
                               dict);
     dict["Norm_B"] = ga_substitute("sqrt(Norm_sqr(B)+sqr(2*(mu)*Trace(Enp1)/3"
-                                   "-(2*(mu)+(Hk))*Trace(zetan)))", dict);
+                                   "-(2*(mu)+2/3*(Hk))*Trace(zetan)))", dict);
 
-    dict["beta"] =
-      ga_substitute("((theta)*(dt)*(xi)/(1+(2*(mu)+(Hk))*(theta)*(dt)*(xi)))",
-                    dict);
+    dict["beta"] = ga_substitute
+      ("((theta)*(dt)*(xi)/(1+(2*(mu)+2/3*(Hk))*(theta)*(dt)*(xi)))", dict);
     dict["Epnp1"] = Epnp1 = ga_substitute("((zetan)+(beta)*(B))", dict);
     alphanp1 = ga_substitute("((etan)+sqrt(2/3)*(beta)*(Norm_B))", dict);
     dict["alphanp1"] = alphanp1;
     sigma_np1 = ga_substitute
       ("((lambda)*Trace(Enp1)*Id(meshdim)+2*(mu)*((Enp1)-(Epnp1)))", dict);
     dict["fbound"] = ga_substitute
-      ("(sqrt(Norm_sqr((2*(mu))*(Dev_Enp1)-(2*(mu)+(Hk))*(Epnp1))"
-       "+sqr(2*(mu)*Trace(Enp1)/3-(2*(mu)+(Hk))*Trace(Epnp1)))"
+      ("(sqrt(Norm_sqr((2*(mu))*(Dev_Enp1)-(2*(mu)+2/3*(Hk))*(Epnp1))"
+       "+sqr(2*(mu)*Trace(Enp1)/3-(2*(mu)+2/3*(Hk))*Trace(Epnp1)))"
        "-sqrt(2/3)*(sigma_y+(Hi)*(alphanp1)))",  dict);
     sigma_after = ga_substitute
       ("((lambda)*Trace(Enp1)*Id(meshdim)+2*(mu)*((Enp1)-(Epn)))", dict);
     compcond = ga_substitute
       ("((mu)*xi-pos_part((mu)*xi+100*(fbound)/(mu)))", dict);
     von_mises = ga_substitute
-      ("sqrt(3/2)*sqrt(Norm_sqr((2*(mu))*(Dev_En)-(2*(mu)+(Hk))*(Epn))"
-       "+sqr(2*(mu)*Trace(En)/3-(2*(mu)+(Hk))*Trace(Epn)))", dict);
+      ("sqrt(3/2)*sqrt(Norm_sqr((2*(mu))*(Dev_En)-(2*(mu)+2/3*(Hk))*(Epn))"
+       "+sqr(2*(mu)*Trace(En)/3-(2*(mu)+2/3*(Hk))*Trace(Epn)))", dict);
   }
 
   // Assembly strings for isotropic elastoplasticity with Von-Mises
@@ -1135,18 +1133,18 @@ namespace getfem {
     dict["Dev_Enp1"]= ga_substitute("(Enp1-(Trace(Enp1)/3)*Id(meshdim))", 
dict);
     dict["zetan"] = ga_substitute
       ("((Epn)+(1-(theta))*((dt)*(Previous_xi))*((2*(mu))*(Dev_En)"
-       "-(2*(mu)+(Hk))*(Epn)))", dict);
+       "-(2*(mu)+2/3*(Hk))*(Epn)))", dict);
     dict["etan"] = ga_substitute
       ("((alphan)+sqrt(2/3)*(1-(theta))*((dt)*(Previous_xi))*"
-       "sqrt(Norm_sqr((2*(mu))*(Dev_En)-(2*(mu)+(Hk))*(Epn))"
-       "+sqr(2*(mu)*Trace(En)/3-(2*(mu)+(Hk))*Trace(Epn))))", dict);
+       "sqrt(Norm_sqr((2*(mu))*(Dev_En)-(2*(mu)+2/3*(Hk))*(Epn))"
+       "+sqr(2*(mu)*Trace(En)/3-(2*(mu)+2/3*(Hk))*Trace(Epn))))", dict);
 
-    dict["B"] = ga_substitute("((2*(mu))*(Dev_Enp1)-(2*(mu)+(Hk))*(zetan))",
-                                  dict);
+    dict["B"] = ga_substitute
+      ("((2*(mu))*(Dev_Enp1)-(2*(mu)+2/3*(Hk))*(zetan))", dict);
     dict["Norm_B"] = ga_substitute("sqrt(Norm_sqr(B)+sqr(2*(mu)*Trace(Enp1)/3"
-                                   "-(2*(mu)+(Hk))*Trace(zetan)))", dict);
+                                   "-(2*(mu)+2/3*(Hk))*Trace(zetan)))", dict);
     dict["beta"] =
-      ga_substitute("(1/(((Norm_B)+1e-40)*(2*(mu)+(Hk)+(2/3)*(Hi))))"
+      ga_substitute("(1/(((Norm_B)+1e-40)*(2*(mu)+2/3*(Hk)+(2/3)*(Hi))))"
       "*pos_part((Norm_B)-sqrt(2/3)*((sigma_y)+(Hi)*(etan)))", dict);
     dict["Epnp1"] = Epnp1 = ga_substitute("((zetan)+(beta)*(B))", dict);
     alphanp1 = ga_substitute("((etan)+sqrt(2/3)*(beta)*(Norm_B))", dict);
@@ -1157,10 +1155,10 @@ namespace getfem {
     sigma_after = ga_substitute
       ("(lambda)*Trace(Enp1)*Id(meshdim)+2*(mu)*((Enp1)-(Epn))", dict);
     xi_np1 = ga_substitute
-      ("(((beta)/(1-(2*(mu)+(Hk))*(beta)))/((theta)*(dt)))", dict);
+      ("(((beta)/(1-(2*(mu)+2/3*(Hk))*(beta)))/((theta)*(dt)))", dict);
     von_mises = ga_substitute
-      ("sqrt(3/2)*sqrt(Norm_sqr((2*(mu))*(Dev_En)-(2*(mu)+(Hk))*(Epn))"
-       "+sqr(2*(mu)*Trace(En)/3-(2*(mu)+(Hk))*Trace(Epn)))", dict);
+      ("sqrt(3/2)*sqrt(Norm_sqr((2*(mu))*(Dev_En)-(2*(mu)+2/3*(Hk))*(Epn))"
+       "+sqr(2*(mu)*Trace(En)/3-(2*(mu)+2/3*(Hk))*Trace(Epn)))", dict);
   }
 
   void build_isotropic_perfect_elastoplasticity_expressions_generic



reply via email to

[Prev in Thread] Current Thread [Next in Thread]