aboutsummaryrefslogtreecommitdiff
path: root/src/apply.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/apply.c')
-rw-r--r--src/apply.c35
1 files changed, 27 insertions, 8 deletions
diff --git a/src/apply.c b/src/apply.c
index 114c1f7..fa21a2b 100644
--- a/src/apply.c
+++ b/src/apply.c
@@ -29,13 +29,29 @@ CCTK_FILEVERSION(AEIDevelopment_ReflectionSymmetry_apply_c);
int const idir, int const jdir, int const kdir, \
int const parity) \
{ \
- int i, j, k; \
+ int i, j, k, iimin, jjmin, kkmin, iimax, jjmax, kkmax; \
+ \
+ assert(imin>=0&&imax<=ni); \
+ assert(jmin>=0&&jmax<=nj); \
+ assert(kmin>=0&&kmax<=nk); \
+ iimin = ioff + idir*imin; \
+ jjmin = joff + jdir*jmin; \
+ kkmin = koff + kdir*kmin; \
+ iimax = ioff + idir*imax; \
+ jjmax = joff + jdir*jmax; \
+ kkmax = koff + kdir*kmax; \
+ assert(iimin>=0&&iimax<=ni); \
+ assert(jjmin>=0&&jjmax<=nj); \
+ assert(kkmin>=0&&kkmax<=nk); \
+ assert(iimax>=-1&&iimin<ni); \
+ assert(jjmax>=-1&&jjmin<nj); \
+ assert(kkmax>=-1&&kkmin<nk); \
\
for (k=kmin; k<kmax; ++k) \
{ \
for (j=jmin; j<jmax; ++j) \
{ \
- for (i=imin; j<imax; ++i) \
+ for (i=imin; i<imax; ++i) \
{ \
int const dstind = i + ni * (j + nj * k); \
int const ii = ioff + idir * i; \
@@ -342,18 +358,21 @@ BndReflectVI (cGH const * restrict const cctkGH,
imin[d] = 0;
imax[d] = cctkGH->cctk_lsh[d];
ioff[d] = 0;
+ idir[d] = 1;
}
if (face == 0)
{
- imax[d] = cctkGH->cctk_nghostzones[d];
- ioff[d] = (+ cctkGH->cctk_nghostzones[d]
- + (do_stagger[2*d+face] ? 0 : 1));
+ imax[dir] = cctkGH->cctk_nghostzones[dir];
+ ioff[dir] = (+ 2*cctkGH->cctk_nghostzones[dir] - 1
+ + (do_stagger[2*dir+face] ? 0 : 1));
+ idir[dir] = -1;
}
else
{
- imin[d] = cctkGH->cctk_lsh[d] - cctkGH->cctk_nghostzones[d];
- ioff[d] = (- cctkGH->cctk_nghostzones[d]
- - (do_stagger[2*d+face] ? 0 : 1));
+ imin[dir] = cctkGH->cctk_lsh[dir] - cctkGH->cctk_nghostzones[dir];
+ ioff[dir] = (- 2*cctkGH->cctk_nghostzones[dir]
+ - (do_stagger[2*dir+face] ? 0 : 1));
+ idir[dir] = -1;
}
/* Copy region */