aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Löffler <knarf@cct.lsu.edu>2013-02-07 08:43:27 -0600
committerFrank Löffler <knarf@cct.lsu.edu>2013-02-07 08:43:27 -0600
commit0e092fd149050a4eaf807aacfae6553e15a27cf8 (patch)
treed2ce22953f5a724b2acd3661733734fd585b9ba7
parentbcf3bb045b9b26b4daacf39584e6fc25c03da3ad (diff)
CarpetRegrid2: Allow pseudo-2D domains
Currently CarpetRegrid2 contains two asserts that fail for domains that are effectively 2D (but defines as 3D arrays, e.g. (nx,ny,1). This patch makes sure these domains don't trigger the assert by checking for ilower==iupper.
-rw-r--r--Carpet/CarpetRegrid2/src/property.cc10
1 files changed, 8 insertions, 2 deletions
diff --git a/Carpet/CarpetRegrid2/src/property.cc b/Carpet/CarpetRegrid2/src/property.cc
index a568e82d9..340b4f22b 100644
--- a/Carpet/CarpetRegrid2/src/property.cc
+++ b/Carpet/CarpetRegrid2/src/property.cc
@@ -712,11 +712,17 @@ namespace CarpetRegrid2 {
bvect const lower_is_almost_outside_upper =
bb.lower() >
bnd.level_physical_iupper - bnd.min_bnd_dist_incl[1] * bb.stride();
+
+ // Don't assert for trivial dimensions ( e.g., 2D: (x,y,1) )
+ bvect const domain_is_trivial =
+ bnd.level_physical_ilower == bnd.level_physical_iupper;
assert (not any (lower_is_almost_outside_upper and
- lower_is_outside_lower));
+ lower_is_outside_lower and
+ not domain_is_trivial) );
assert (not any (upper_is_almost_outside_lower and
- upper_is_outside_upper));
+ upper_is_outside_upper and
+ not domain_is_trivial) );
if (any (upper_is_outside_lower or lower_is_outside_upper)) {
// The box is completely outside. Ignore it.