[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Getfem-commits] r4586 - in /trunk/getfem/src: getfem/getfem_im_data.h g
From: |
andriy . andreykiv |
Subject: |
[Getfem-commits] r4586 - in /trunk/getfem/src: getfem/getfem_im_data.h getfem_im_data.cc |
Date: |
Thu, 03 Apr 2014 14:01:04 -0000 |
Author: andrico
Date: Thu Apr 3 16:01:03 2014
New Revision: 4586
URL: http://svn.gna.org/viewcvs/getfem?rev=4586&view=rev
Log:
small improvements in im_data regarding its dependency update
Modified:
trunk/getfem/src/getfem/getfem_im_data.h
trunk/getfem/src/getfem_im_data.cc
Modified: trunk/getfem/src/getfem/getfem_im_data.h
URL:
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem/getfem_im_data.h?rev=4586&r1=4585&r2=4586&view=diff
==============================================================================
--- trunk/getfem/src/getfem/getfem_im_data.h (original)
+++ trunk/getfem/src/getfem/getfem_im_data.h Thu Apr 3 16:01:03 2014
@@ -327,7 +327,6 @@
mutable std::vector<size_type> filtered_int_point_index_;
mutable std::vector<size_type> int_point_index_;
mutable dal::bit_vector filtered_convex_index_;
- mutable bool require_update_;
mutable gmm::uint64_type v_num_;
size_type filtered_region_;
Modified: trunk/getfem/src/getfem_im_data.cc
URL:
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_im_data.cc?rev=4586&r1=4585&r2=4586&view=diff
==============================================================================
--- trunk/getfem/src/getfem_im_data.cc (original)
+++ trunk/getfem/src/getfem_im_data.cc Thu Apr 3 16:01:03 2014
@@ -1,4 +1,5 @@
#include "getfem/getfem_im_data.h"
+#include "getfem/getfem_omp.h"
namespace getfem
{
@@ -6,7 +7,7 @@
im_data::im_data(const getfem::mesh_im& meshIm,
bgeot::multi_index tensorSize,
size_type filteredRegion)
- :im_(meshIm), nb_filtered_index_(0), nb_index_(0), require_update_(true),
+ :im_(meshIm), nb_filtered_index_(0), nb_index_(0),
filtered_region_(filteredRegion) {
set_tensor_size(tensorSize);
add_dependency(im_);
@@ -14,7 +15,7 @@
}
im_data::im_data(const getfem::mesh_im& meshIm, size_type filteredRegion)
- :im_(meshIm), nb_filtered_index_(0), nb_index_(0), require_update_(true),
+ :im_(meshIm), nb_filtered_index_(0), nb_index_(0),
filtered_region_(filteredRegion) {
tensor_size_.resize(1);
tensor_size_[0] = 1;
@@ -24,6 +25,7 @@
}
void im_data::update_index_() const {
+ omp_guard lock;
nb_index_ = 0;
size_type nElement = im_.convex_index().last_true() + 1;
int_point_index_.clear();
@@ -50,32 +52,27 @@
nb_filtered_index_ += nPoint;
}
}
-
- require_update_ = false;
- touch();
v_num_ = act_counter();
}
size_type im_data::nb_index() const{
context_check();
- if (require_update_) update_index_();
return nb_index_;
}
size_type im_data::nb_filtered_index() const{
context_check();
- if (require_update_) update_index_();
return nb_filtered_index_;
}
size_type im_data::nb_points_of_element(size_type cv) const{
+ context_check();
if (!im_.convex_index().is_in(cv)) return 0;
return
im_.int_method_of_element(cv)->approx_method()->nb_points_on_convex();
}
size_type im_data::index_of_point(size_type cv, size_type i) const{
context_check();
- if (require_update_) update_index_();
if (cv < int_point_index_.size()) return int_point_index_[cv] + i;
else return size_type(-1);
}
@@ -94,7 +91,6 @@
size_type im_data::filtered_index_of_point(size_type cv, size_type i) const{
context_check();
- if (require_update_) update_index_();
if(cv < filtered_int_point_index_.size())
{
if (filtered_int_point_index_[cv] == size_type(-1)) return size_type(-1);
@@ -105,22 +101,21 @@
dal::bit_vector im_data::filtered_convex_index() const{
context_check();
- if (require_update_) update_index_();
return filtered_convex_index_;
}
std::vector<size_type> im_data::filtered_index_of_first_point() const{
context_check();
- if (require_update_) update_index_();
return filtered_int_point_index_;
}
void im_data::set_region(size_type rg){
filtered_region_ = rg;
- update_index_();
+ touch();
}
void im_data::update_from_context() const{
- require_update_ = true;
+ update_index_();
+ touch();
}
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Getfem-commits] r4586 - in /trunk/getfem/src: getfem/getfem_im_data.h getfem_im_data.cc,
andriy . andreykiv <=