getfem-commits
[Top][All Lists]
Advanced

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

[Getfem-commits] [getfem-commits] branch master updated: Allow to define


From: Konstantinos Poulios
Subject: [Getfem-commits] [getfem-commits] branch master updated: Allow to define Lagrange multipliers for contact on integration points
Date: Tue, 17 Oct 2023 08:33:42 -0400

This is an automated email from the git hooks/post-receive script.

logari81 pushed a commit to branch master
in repository getfem.

The following commit(s) were added to refs/heads/master by this push:
     new f56fc155 Allow to define Lagrange multipliers for contact on 
integration points
f56fc155 is described below

commit f56fc1552f7508fc3b3d7d2fe6fe35a06540e230
Author: Konstantinos Poulios <logari81@gmail.com>
AuthorDate: Tue Oct 17 14:33:31 2023 +0200

    Allow to define Lagrange multipliers for contact on integration points
---
 src/getfem_contact_and_friction_large_sliding.cc | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/getfem_contact_and_friction_large_sliding.cc 
b/src/getfem_contact_and_friction_large_sliding.cc
index de20422c..ab45a51f 100644
--- a/src/getfem_contact_and_friction_large_sliding.cc
+++ b/src/getfem_contact_and_friction_large_sliding.cc
@@ -2334,10 +2334,14 @@ namespace getfem {
                   "should share the same mesh");
       if (is_slave) {
         const mesh_fem *mf_l = md.pmesh_fem_of_variable(lambda);
-        GMM_ASSERT1(mf, "The multiplier variable should be a f.e.m. one");
-        GMM_ASSERT1(&(mf_l->linked_mesh()) == &(mim.linked_mesh()),
-                    "The displacement variable and the multiplier one "
-                    "should share the same mesh");
+        const im_data *mimd_l = md.pim_data_of_variable(lambda);
+        GMM_ASSERT1(mf_l || mimd_l,
+                    "The multiplier variable should be defined on a "
+                    "mesh_fem or an im_data");
+        GMM_ASSERT1(&(mf_l ? mf_l->linked_mesh() : mimd_l->linked_mesh())
+                    == &(mim.linked_mesh()),
+                    "The displacement and the multiplier fields "
+                    "should be defined on the same mesh");
       }
 
       if (w.size()) {



reply via email to

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