getfem-commits
[Top][All Lists]
Advanced

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

[Getfem-commits] r4659 - in /trunk/getfem/src: ./ getfem/


From: andriy . andreykiv
Subject: [Getfem-commits] r4659 - in /trunk/getfem/src: ./ getfem/
Date: Thu, 22 May 2014 09:40:47 -0000

Author: andrico
Date: Thu May 22 11:40:45 2014
New Revision: 4659

URL: http://svn.gna.org/viewcvs/getfem?rev=4659&view=rev
Log:
 - using global mutex in deletion of static stored objects
 - not using mutexes in deformed meshes, as they should be deformed in serial
 - locking  model::actualize_sizes from multiple threads
 - correcting spelling in getfem_torus.cc

Modified:
    trunk/getfem/src/dal_static_stored_objects.cc
    trunk/getfem/src/getfem/getfem_deformable_mesh.h
    trunk/getfem/src/getfem/getfem_models.h
    trunk/getfem/src/getfem_models.cc
    trunk/getfem/src/getfem_torus.cc

Modified: trunk/getfem/src/dal_static_stored_objects.cc
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/dal_static_stored_objects.cc?rev=4659&r1=4658&r2=4659&view=diff
==============================================================================
--- trunk/getfem/src/dal_static_stored_objects.cc       (original)
+++ trunk/getfem/src/dal_static_stored_objects.cc       Thu May 22 11:40:45 2014
@@ -127,7 +127,6 @@
   bool stored_object_tab::del_dependency_(pstatic_stored_object o1,
     pstatic_stored_object o2)
   {
-    getfem::local_guard guard = locks_.get_lock();
     stored_key_tab::const_iterator it1 = stored_keys_.find(o1);
     if (it1 == stored_keys_.end()) return false;
     iterator ito1 = find(it1->second);
@@ -148,7 +147,6 @@
   bool stored_object_tab::del_dependent_(pstatic_stored_object o1,
     pstatic_stored_object o2)
   {
-    getfem::local_guard guard = locks_.get_lock();
     stored_key_tab::const_iterator it2 = stored_keys_.find(o2);
     if (it2 == stored_keys_.end()) return false;
     iterator ito2 = find(it2->second);
@@ -177,7 +175,6 @@
 
   void stored_object_tab::basic_delete_(std::list<pstatic_stored_object> 
&to_delete)
   {
-    getfem::local_guard guard = locks_.get_lock();
     std::list<pstatic_stored_object>::iterator it;
     for (it = to_delete.begin(); it != to_delete.end(); ++it) 
     {
@@ -340,6 +337,7 @@
   void del_stored_objects(std::list<pstatic_stored_object> &to_delete,
     bool ignore_unstored) 
   {
+      getfem::omp_guard lock;
       stored_object_tab& stored_objects
         = dal::singleton<stored_object_tab>::instance();
       std::list<pstatic_stored_object>::iterator it, itnext;

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=4659&r1=4658&r2=4659&view=diff
==============================================================================
--- trunk/getfem/src/getfem/getfem_deformable_mesh.h    (original)
+++ trunk/getfem/src/getfem/getfem_deformable_mesh.h    Thu May 22 11:40:45 2014
@@ -149,7 +149,6 @@
 
     void deform() 
     {
-      omp_guard lock;
       if (is_deformed_) return;
       m.deform_mesh(dU,mf);
       is_deformed_ = true;
@@ -157,7 +156,6 @@
 
     void undeform() 
     {
-      omp_guard lock;
       if (!is_deformed_) return;
       VECTOR dU_inverted(dU);
       gmm::scale(dU_inverted, scalar_type(-1.0));

Modified: trunk/getfem/src/getfem/getfem_models.h
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem/getfem_models.h?rev=4659&r1=4658&r2=4659&view=diff
==============================================================================
--- trunk/getfem/src/getfem/getfem_models.h     (original)
+++ trunk/getfem/src/getfem/getfem_models.h     Thu May 22 11:40:45 2014
@@ -116,6 +116,7 @@
     mutable scalar_type pseudo_potential_;
     mutable bool act_size_to_be_done;
     dim_type leading_dim;
+    getfem::lock_factory locks_;
 
     // Variables and parameters of the model
 

Modified: trunk/getfem/src/getfem_models.cc
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_models.cc?rev=4659&r1=4658&r2=4659&view=diff
==============================================================================
--- trunk/getfem/src/getfem_models.cc   (original)
+++ trunk/getfem/src/getfem_models.cc   Thu May 22 11:40:45 2014
@@ -121,7 +121,12 @@
   }
 
   void model::actualize_sizes(void) const {
+    bool actualized = false;
+    getfem::local_guard lock = locks_.get_lock();
+    if (actualized) return; //this is if multiple threads are calling the 
method
+
     act_size_to_be_done = false;
+
     std::map<std::string, std::vector<std::string> > multipliers;
     std::map<std::string, bool > tobedone;
 
@@ -358,6 +363,7 @@
       gmm::resize(rrhs, tot_size);
     }
 
+    actualized = true;
 //     #if GETFEM_PARA_LEVEL > 1
 //     cout << "Actualize sizes time from thread " << rk << " : " << 
MPI_Wtime()-t_ref << endl;
     

Modified: trunk/getfem/src/getfem_torus.cc
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_torus.cc?rev=4659&r1=4658&r2=4659&view=diff
==============================================================================
--- trunk/getfem/src/getfem_torus.cc    (original)
+++ trunk/getfem/src/getfem_torus.cc    Thu May 22 11:40:45 2014
@@ -152,7 +152,7 @@
   }
 
   void torus_geom_trans::poly_vector_hess(const base_node &pt, 
bgeot::base_matrix &pc) const{
-    GMM_ASSERT1(false, "Sorry, Hessian is not supported in sxisymmetric 
transformation.");
+    GMM_ASSERT1(false, "Sorry, Hessian is not supported in axisymmetric 
transformation.");
   }
 
   torus_geom_trans::torus_geom_trans(pgeometric_trans poriginal_trans) 




reply via email to

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