[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)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Getfem-commits] r4659 - in /trunk/getfem/src: ./ getfem/,
andriy . andreykiv <=