getfem-commits
[Top][All Lists]
Advanced

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

[Getfem-commits] r5226 - /trunk/getfem/src/getfem_nonlinear_elasticity.c


From: Yves . Renard
Subject: [Getfem-commits] r5226 - /trunk/getfem/src/getfem_nonlinear_elasticity.cc
Date: Tue, 19 Jan 2016 13:41:30 -0000

Author: renard
Date: Tue Jan 19 14:41:29 2016
New Revision: 5226

URL: http://svn.gna.org/viewcvs/getfem?rev=5226&view=rev
Log:
ensure the positivity of the transforamtion determinent

Modified:
    trunk/getfem/src/getfem_nonlinear_elasticity.cc

Modified: trunk/getfem/src/getfem_nonlinear_elasticity.cc
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_nonlinear_elasticity.cc?rev=5226&r1=5225&r2=5226&view=diff
==============================================================================
--- trunk/getfem/src/getfem_nonlinear_elasticity.cc     (original)
+++ trunk/getfem/src/getfem_nonlinear_elasticity.cc     Tue Jan 19 14:41:29 2016
@@ -602,9 +602,8 @@
 
   scalar_type Neo_Hookean_hyperelastic_law::strain_energy
   (const base_matrix &E, const base_vector &params,
-   scalar_type /* det_trans*/) const {
-// shouldn't negative det_trans be handled here???
-//    if (compressible && det_trans <= scalar_type(0)) return 1e200;
+   scalar_type det_trans) const {
+    if (compressible && det_trans <= scalar_type(0)) return 1e200;
     size_type N = gmm::mat_nrows(E);
     GMM_ASSERT1(N == 3, "Neo Hookean hyperelastic law only defined "
                 "on dimension 3, sorry");
@@ -627,7 +626,7 @@
 
   void Neo_Hookean_hyperelastic_law::sigma
   (const base_matrix &E, base_matrix &result,
-   const base_vector &params, scalar_type /*det_trans*/) const {
+   const base_vector &params, scalar_type det_trans) const {
     size_type N = gmm::mat_nrows(E);
     GMM_ASSERT1(N == 3, "Neo Hookean hyperelastic law only defined "
                "on dimension 3, sorry");
@@ -645,10 +644,9 @@
     else
        gmm::add(gmm::scaled(ci.grad_i3(),
                             lambda/4 - lambda/(4*ci.i3()) - mu / ci.i3()), 
result);
-
-// shouldn't negative det_trans be handled here???
-//      if (det_trans <= scalar_type(0))
-//        gmm::add(gmm::scaled(C, 1e200), result);
+    
+    if (det_trans <= scalar_type(0))
+      gmm::add(gmm::scaled(C, 1e200), result);
   }
 
   void Neo_Hookean_hyperelastic_law::grad_sigma




reply via email to

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