getfem-commits
[Top][All Lists]
Advanced

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

[Getfem-commits] r4645 - in /trunk/getfem/src: getfem/getfem_deformable_


From: andriy . andreykiv
Subject: [Getfem-commits] r4645 - in /trunk/getfem/src: getfem/getfem_deformable_mesh.h getfem_deformable_mesh.cc
Date: Mon, 12 May 2014 15:11:43 -0000

Author: andrico
Date: Mon May 12 17:11:43 2014
New Revision: 4645

URL: http://svn.gna.org/viewcvs/getfem?rev=4645&view=rev
Log:
thread-safing mesh deformation

Modified:
    trunk/getfem/src/getfem/getfem_deformable_mesh.h
    trunk/getfem/src/getfem_deformable_mesh.cc

Modified: trunk/getfem/src/getfem/getfem_deformable_mesh.h
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem/getfem_deformable_mesh.h?rev=4645&r1=4644&r2=4645&view=diff
==============================================================================
--- trunk/getfem/src/getfem/getfem_deformable_mesh.h    (original)
+++ trunk/getfem/src/getfem/getfem_deformable_mesh.h    Mon May 12 17:11:43 2014
@@ -144,25 +144,21 @@
       deform_on_construct_(deform_on_construct),
       is_deformed_(false)
     {
-      if (deform_on_construct_)
-      { 
-        m.deform_mesh(dU,mf);
-        is_deformed_ = true;
-      }
+      if (deform_on_construct_) deform();
     }
 
     void deform() 
     {
-      GMM_ASSERT1(!is_deformed_, "trying to deformed an already deformed 
mesh");
+      omp_guard lock;
+      if (is_deformed_) return;
       m.deform_mesh(dU,mf);
       is_deformed_ = true;
     }
 
     void undeform() 
     {
-      GMM_ASSERT1(is_deformed_, "trying to restored yet undeformed mesh");
-      GMM_ASSERT1(!deform_on_construct_, 
-        "undeformed() should not be called if it was asked to deformed on 
construct"); 
+      omp_guard lock;
+      if (!is_deformed_) return;
       m.deform_mesh(gmm::scaled(dU,scalar_type(-1.0)),mf);
       is_deformed_ = false;
     }

Modified: trunk/getfem/src/getfem_deformable_mesh.cc
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_deformable_mesh.cc?rev=4645&r1=4644&r2=4645&view=diff
==============================================================================
--- trunk/getfem/src/getfem_deformable_mesh.cc  (original)
+++ trunk/getfem/src/getfem_deformable_mesh.cc  Mon May 12 17:11:43 2014
@@ -37,6 +37,6 @@
 getfem::deformable_mesh& getfem::make_deformable_mesh(const getfem::mesh& m){
     getfem::mesh* pmesh = &(const_cast<getfem::mesh&>(m));
        getfem::deformable_mesh* pm_deformable = 
dynamic_cast<getfem::deformable_mesh*>(pmesh); 
-       GMM_ASSERT1(pm_deformable,"Cannot deform getfem::mesh. Use 
getfem::deformable_mesh !!!")
+       GMM_ASSERT1(pm_deformable,"Cannot deform getfem::mesh. Use 
getfem::deformable_mesh !!!");
        return *pm_deformable;
 }




reply via email to

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