getfem-commits
[Top][All Lists]
Advanced

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

[Getfem-commits] r4709 - /trunk/getfem/src/getfem_contact_and_friction_l


From: logari81
Subject: [Getfem-commits] r4709 - /trunk/getfem/src/getfem_contact_and_friction_large_sliding.cc
Date: Thu, 10 Jul 2014 08:49:04 -0000

Author: logari81
Date: Thu Jul 10 10:49:04 2014
New Revision: 4709

URL: http://svn.gna.org/viewcvs/getfem?rev=4709&view=rev
Log:
fix large sliding contact option with objective sliding velocity (only 
non-rigid)

Modified:
    trunk/getfem/src/getfem_contact_and_friction_large_sliding.cc

Modified: trunk/getfem/src/getfem_contact_and_friction_large_sliding.cc
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_contact_and_friction_large_sliding.cc?rev=4709&r1=4708&r2=4709&view=diff
==============================================================================
--- trunk/getfem/src/getfem_contact_and_friction_large_sliding.cc       
(original)
+++ trunk/getfem/src/getfem_contact_and_friction_large_sliding.cc       Thu Jul 
10 10:49:04 2014
@@ -247,7 +247,6 @@
   // For the moment, with raytrace detection and integral unsymmetric
   // Alart-Curnier augmented Lagrangian
 
-#undef CONSIDER_FRAME_INDIFFERENCE
 
   struct integral_large_sliding_contact_brick : public virtual_brick {
 
@@ -601,13 +600,16 @@
       if (!Vs_init) {
         if (alpha != scalar_type(0)) {
 #ifdef CONSIDER_FRAME_INDIFFERENCE
-          gmm::add(y0(), gmm::scaled(x0(), scalar_type(-1)), Vs_);
-          gmm::add(gmm::scaled(nx0(), -g()), Vs_);
-#else
-          gmm::add(x(), gmm::scaled(y(), scalar_type(-1)), Vs_);
-          gmm::add(gmm::scaled(x0(), scalar_type(-1)), Vs_);
-          gmm::add(y0(), Vs_);
+          if (!isrigid()) {
+            gmm::add(y0(), gmm::scaled(x0(), scalar_type(-1)), Vs_);
+            gmm::add(gmm::scaled(nx0(), -g()), Vs_);
+          } else
 #endif
+          {
+            gmm::add(x(), gmm::scaled(y(), scalar_type(-1)), Vs_);
+            gmm::add(gmm::scaled(x0(), scalar_type(-1)), Vs_);
+            gmm::add(y0(), Vs_);
+          }
           gmm::scale(Vs_, alpha);
         } else gmm::clear(Vs_);
         Vs_init = true;
@@ -1053,6 +1055,7 @@
             // Caution: auxLXN1 re-used
             gmm::mult(auxLXN1, gmm::transposed(gpp.vbase_uy()), Melem);
             gmm::scale(Melem, weight*alpha*FMULT/r);
+            mat_elem_assembly(M, I_lx, I_uy, Melem, *mf_lx, cvx, *mf_uy, cvy);
 #else
             base_matrix I_gphiy0gphiyinv(N, N);
             gmm::mult(gmm::scaled(gpp.grad_phiy0(), scalar_type(-1)),




reply via email to

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