Author: andrico
Date: Thu Apr 3 18:25:38 2014
New Revision: 4587
URL: http://svn.gna.org/viewcvs/getfem?rev=4587&view=rev
Log:
fixed a bug with a wrong partition index
Modified:
trunk/getfem/src/getfem_mesh_region.cc
Modified: trunk/getfem/src/getfem_mesh_region.cc
URL:
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_mesh_region.cc?rev=4587&r1=4586&r2=4587&view=diff
==============================================================================
--- trunk/getfem/src/getfem_mesh_region.cc (original)
+++ trunk/getfem/src/getfem_mesh_region.cc Thu Apr 3 18:25:38 2014
@@ -147,9 +147,11 @@
else return rp().m.end();
}
size_type partition_size
- = std::ceil(static_cast<scalar_type>(region_size)/
- static_cast<scalar_type >(num_threads()));
+ = std::ceil(static_cast<scalar_type>(region_size)/
+ static_cast<scalar_type >(num_threads()));
size_type index_begin = partition_size * this_thread();
+ if (index_begin >= partition_size ) return rp().m.end();
+
const_iterator it = rp().m.begin();
for (size_type i=0;i<index_begin;++i) ++it;
return it;
@@ -160,10 +162,13 @@
{
size_type region_size = rp().m.size();
if (region_size < num_threads()) return rp().m.end();
+
size_type partition_size
= std::ceil(static_cast<scalar_type>(region_size)/
static_cast<scalar_type >(num_threads()));
size_type index_end = partition_size * (this_thread() + 1);
+ if (index_end >= partition_size ) return rp().m.end();
+
const_iterator it = rp().m.begin();
for (size_type i=0;i<index_end && it!=rp().m.end();++i) ++it;
return it;
_______________________________________________
Getfem-commits mailing list
[email protected]
https://mail.gna.org/listinfo/getfem-commits