getfem-commits
[Top][All Lists]
Advanced

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

[Getfem-commits] r4712 - in /trunk/getfem: doc/sphinx/source/userdoc/mod


From: logari81
Subject: [Getfem-commits] r4712 - in /trunk/getfem: doc/sphinx/source/userdoc/model_nonlinear_elasticity.rst src/getfem_nonlinear_elasticity.cc
Date: Thu, 10 Jul 2014 16:47:38 -0000

Author: logari81
Date: Thu Jul 10 18:47:37 2014
New Revision: 4712

URL: http://svn.gna.org/viewcvs/getfem?rev=4712&view=rev
Log:
add further options and change default variant of compressible neoHookean laws

Modified:
    trunk/getfem/doc/sphinx/source/userdoc/model_nonlinear_elasticity.rst
    trunk/getfem/src/getfem_nonlinear_elasticity.cc

Modified: trunk/getfem/doc/sphinx/source/userdoc/model_nonlinear_elasticity.rst
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/doc/sphinx/source/userdoc/model_nonlinear_elasticity.rst?rev=4712&r1=4711&r2=4712&view=diff
==============================================================================
--- trunk/getfem/doc/sphinx/source/userdoc/model_nonlinear_elasticity.rst       
(original)
+++ trunk/getfem/doc/sphinx/source/userdoc/model_nonlinear_elasticity.rst       
Thu Jul 10 18:47:37 2014
@@ -372,9 +372,13 @@
   Compressible_Mooney_Rivlin_potential(Grad_u, [c1;c2;d1])
   Plane_Strain_Compressible_Mooney_Rivlin_potential(Grad_u, [c1;c2;d1])
   Incompressible_Neo_Hookean_potential(Grad_u, [c1])
-  Plane_Strain_Incompressible_Neo_Hookean_potential(Grad_u,  [c1])
-  Compressible_Neo_Hookean_potential(Grad_u,  [lambda;mu])
-  Plane_Strain_Compressible_Neo_Hookean_potential(Grad_u,  [lambda;mu])
+  Plane_Strain_Incompressible_Neo_Hookean_potential(Grad_u, [c1])
+  Compressible_Neo_Hookean_potential(Grad_u, [c1;d1])
+  Plane_Strain_Compressible_Neo_Hookean_potential(Grad_u,  [c1;d1])
+  Compressible_Neo_Hookean_Bonet_potential(Grad_u,  [lambda;mu])
+  Plane_Strain_Compressible_Neo_Hookean_Bonet_potential(Grad_u,  [lambda;mu])
+  Compressible_Neo_Hookean_Ciarlet_potential(Grad_u,  [lambda;mu])
+  Plane_Strain_Compressible_Neo_Hookean_Ciarlet_potential(Grad_u,  [lambda;mu])
 
 
 The second Piola-Kirchoff stress tensors::
@@ -416,7 +420,7 @@
   ind = add_finite_strain_elasticity_brick(md, mim, varname, lawname, params,
                                            region = size_type(-1));
 
-where ``md`` is the model, ``mim`` the integration method, ``varname`` the 
variable of the model representing the large strain displacement, ``lawname`` 
is the constitutive law name which could be ``Saint_Venant_Kirchhoff``, 
``Generalized_Blatz_Ko``, ``Ciarlet_Geymonat``, 
``Incompressible_Mooney_Rivlin``, ``Compressible_Mooney_Rivlin``, 
``Incompressible_Neo_Hookean_sigma`` or ``Compressible_Neo_Hookean_sigma``, 
``params`` is a string representing the parameters of the law. It should 
represent a small vector or vetor field.
+where ``md`` is the model, ``mim`` the integration method, ``varname`` the 
variable of the model representing the large strain displacement, ``lawname`` 
is the constitutive law name which could be ``Saint_Venant_Kirchhoff``, 
``Generalized_Blatz_Ko``, ``Ciarlet_Geymonat``, 
``Incompressible_Mooney_Rivlin``, ``Compressible_Mooney_Rivlin``, 
``Incompressible_Neo_Hookean`` or ``Compressible_Neo_Hookean``, ``params`` is a 
string representing the parameters of the law. It should represent a small 
vector or vetor field.
 
 The Von Mises stress can be interpolated with the following function::
 

Modified: trunk/getfem/src/getfem_nonlinear_elasticity.cc
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_nonlinear_elasticity.cc?rev=4712&r1=4711&r2=4712&view=diff
==============================================================================
--- trunk/getfem/src/getfem_nonlinear_elasticity.cc     (original)
+++ trunk/getfem/src/getfem_nonlinear_elasticity.cc     Thu Jul 10 18:47:37 2014
@@ -2161,16 +2161,40 @@
       new AHL_wrapper_potential(new plane_strain_hyperelastic_law(ineolaw)));
 
     abstract_hyperelastic_law *cneolaw
-      = new Neo_Hookean_hyperelastic_law();
+      = new Mooney_Rivlin_hyperelastic_law(true, true);
     PREDEF_OPERATORS.add_method("Compressible_Neo_Hookean_sigma",
       new AHL_wrapper_sigma(cneolaw));
     PREDEF_OPERATORS.add_method("Compressible_Neo_Hookean_potential",
-      new AHL_wrapper_potential(new Neo_Hookean_hyperelastic_law()));
+      new AHL_wrapper_potential(new 
Mooney_Rivlin_hyperelastic_law(true,true)));
     PREDEF_OPERATORS.add_method("Plane_Strain_Compressible_Neo_Hookean_sigma",
       new AHL_wrapper_sigma(new plane_strain_hyperelastic_law(cneolaw)));
     PREDEF_OPERATORS.add_method
       ("Plane_Strain_Compressible_Neo_Hookean_potential",
       new AHL_wrapper_potential(new plane_strain_hyperelastic_law(cneolaw)));
+
+    abstract_hyperelastic_law *cneobolaw
+      = new Neo_Hookean_hyperelastic_law(true);
+    PREDEF_OPERATORS.add_method("Compressible_Neo_Hookean_Bonet_sigma",
+      new AHL_wrapper_sigma(cneobolaw));
+    PREDEF_OPERATORS.add_method("Compressible_Neo_Hookean_Bonet_potential",
+      new AHL_wrapper_potential(new Neo_Hookean_hyperelastic_law(true)));
+    
PREDEF_OPERATORS.add_method("Plane_Strain_Compressible_Neo_Hookean_Bonet_sigma",
+      new AHL_wrapper_sigma(new plane_strain_hyperelastic_law(cneobolaw)));
+    PREDEF_OPERATORS.add_method
+      ("Plane_Strain_Compressible_Neo_Hookean_Bonet_potential",
+      new AHL_wrapper_potential(new plane_strain_hyperelastic_law(cneobolaw)));
+
+    abstract_hyperelastic_law *cneocilaw
+      = new Neo_Hookean_hyperelastic_law(false);
+    PREDEF_OPERATORS.add_method("Compressible_Neo_Hookean_Ciarlet_sigma",
+      new AHL_wrapper_sigma(cneocilaw));
+    PREDEF_OPERATORS.add_method("Compressible_Neo_Hookean_Ciarlet_potential",
+      new AHL_wrapper_potential(new Neo_Hookean_hyperelastic_law(false)));
+    
PREDEF_OPERATORS.add_method("Plane_Strain_Compressible_Neo_Hookean_Ciarlet_sigma",
+      new AHL_wrapper_sigma(new plane_strain_hyperelastic_law(cneocilaw)));
+    PREDEF_OPERATORS.add_method
+      ("Plane_Strain_Compressible_Neo_Hookean_Ciarlet_potential",
+      new AHL_wrapper_potential(new plane_strain_hyperelastic_law(cneocilaw)));
 
     return true;
   }
@@ -2198,7 +2222,9 @@
       if (N == 2) adapted_lawname = "Plane_Strain_" + adapted_lawname;
     } else if (adapted_lawname.compare("Incompressible_Neo_Hookean") == 0) {
       if (N == 2) adapted_lawname = "Plane_Strain_" + adapted_lawname;
-    } else if (adapted_lawname.compare("Compressible_Neo_Hookean") == 0) {
+    } else if (adapted_lawname.compare("Compressible_Neo_Hookean") == 0 ||
+               adapted_lawname.compare("Compressible_Neo_Hookean_Bonet") == 0 
||
+               adapted_lawname.compare("Compressible_Neo_Hookean_Ciarlet") == 
0 ) {
       if (N == 2) adapted_lawname = "Plane_Strain_" + adapted_lawname;
     } else
       GMM_ASSERT1(false, lawname << " is not a known hyperelastic law");




reply via email to

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