[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Getfem-commits] (no subject)
From: |
Konstantinos Poulios |
Subject: |
[Getfem-commits] (no subject) |
Date: |
Wed, 20 Jun 2018 11:24:09 -0400 (EDT) |
branch: master
commit f2326e4fd0e07698ac0af539200c60e64382b99e
Author: Konstantinos Poulios <address@hidden>
Date: Wed Jun 20 10:33:06 2018 +0200
Stricter checks in the use of mesh regions
---
src/getfem_mesh_region.cc | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/getfem_mesh_region.cc b/src/getfem_mesh_region.cc
index 3422010..e558664 100644
--- a/src/getfem_mesh_region.cc
+++ b/src/getfem_mesh_region.cc
@@ -218,7 +218,7 @@ namespace getfem {
void mesh_region::bounding_box(base_node& Pmin, base_node& Pmax) const {
auto &mesh = *this->get_parent_mesh();
for (auto cv : dal::bv_iterable_c(index())) {
- for (auto &&pt : mesh.points_of_convex(cv)) {
+ for (const auto &pt : mesh.points_of_convex(cv)) {
for (auto j = 0; j < Pmin.size(); j++){
Pmin[j] = std::min(Pmin[j], pt[j]);
Pmax[j] = std::max(Pmax[j], pt[j]);
@@ -241,6 +241,7 @@ namespace getfem {
/* may be optimized .. */
const dal::bit_vector& mesh_region::index() const
{
+ GMM_ASSERT1(p.get(), "Use from_mesh on that region before");
dal::bit_vector& convex_index = rp().index_.thrd_cast();
convex_index.clear();
for (const_iterator it = begin(); it != end(); ++it)
@@ -546,7 +547,7 @@ namespace getfem {
init(m.get_mpi_region());
else
init(m.convex_index());
- } else if (s.p.get()) {
+ } else if (s.id() == size_type(-2) && s.p.get()) {
if (intersect_with_mpi) {
mpi_rg = std::make_unique<mesh_region>(s);
mpi_rg->from_mesh(m);
@@ -555,6 +556,7 @@ namespace getfem {
} else
init(s);
} else {
+ GMM_ASSERT1(s.id() != size_type(-2), "Internal error");
if (intersect_with_mpi)
init(m.get_mpi_sub_region(s.id()));
else
@@ -574,9 +576,10 @@ namespace getfem {
} else {
if (s.id() == size_type(-1)) {
init(m.convex_index());
- } else if (s.p.get()) {
+ } else if (s.id() == size_type(-2) && s.p.get()) {
init(s);
} else {
+ GMM_ASSERT1(s.id() != size_type(-2), "Internal error");
init(m.region(s.id()));
}
}