[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)),
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Getfem-commits] r4709 - /trunk/getfem/src/getfem_contact_and_friction_large_sliding.cc,
logari81 <=