aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetReduce
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@cct.lsu.edu>2010-10-02 00:40:20 -0500
committerBarry Wardell <barry.wardell@gmail.com>2011-12-14 18:25:29 +0000
commit9b4abb4a14c0a5a4ed555955cc4788bad6671282 (patch)
treee92f57e771f52019eae5933e15f845e2104e6bdf /Carpet/CarpetReduce
parent6bba60b788be8c8a1a6c2e5f92f999130f838aac (diff)
Backed out changeset 1b5c07de6243
Diffstat (limited to 'Carpet/CarpetReduce')
-rw-r--r--Carpet/CarpetReduce/src/mask_carpet.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/Carpet/CarpetReduce/src/mask_carpet.cc b/Carpet/CarpetReduce/src/mask_carpet.cc
index f176057e0..6db04bc9a 100644
--- a/Carpet/CarpetReduce/src/mask_carpet.cc
+++ b/Carpet/CarpetReduce/src/mask_carpet.cc
@@ -182,6 +182,7 @@ namespace CarpetMask {
} END_LOOP_OVER_BSET;
vector<int> imask (prod(ivect::ref(cctk_lsh)));
+ vector<int> mask (prod(ivect::ref(cctk_lsh)));
assert (dim == 3);
#pragma omp parallel
@@ -192,6 +193,7 @@ namespace CarpetMask {
{
int const ind = CCTK_GFINDEX3D (cctkGH, i, j, k);
imask[ind] = 0;
+ mask[ind] = 0;
} LC_ENDLOOP3(CarpetMaskSetup_restriction_boundary_init);
for (int d=0; d<dim; ++d) {
@@ -220,6 +222,10 @@ namespace CarpetMask {
{
int const ind = CCTK_GFINDEX3D (cctkGH, i, j, k);
imask[ind] |= bmask;
+ if (mask[ind] == 0) {
+ mask[ind] = 1;
+ }
+ mask[ind] *= 2;
} LC_ENDLOOP3(CarpetMaskSetup_restriction_boundary_partial);
} END_LOOP_OVER_BSET;
@@ -234,7 +240,9 @@ namespace CarpetMask {
cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
{
int const ind = CCTK_GFINDEX3D (cctkGH, i, j, k);
- iweight[ind] &= imask[ind];
+ if (mask[ind] > 0) {
+ iweight[ind] &= imask[ind];
+ }
} LC_ENDLOOP3(CarpetMaskSetup_restriction_boundary_apply);
} END_LOCAL_COMPONENT_LOOP;