aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhawke <hawke@082bdb00-0f4f-0410-b49e-b1835e5f2039>2004-06-22 13:18:36 +0000
committerhawke <hawke@082bdb00-0f4f-0410-b49e-b1835e5f2039>2004-06-22 13:18:36 +0000
commitc40c422692bc788f6746358598ff67a82a9a806c (patch)
treea74cf32f70e0d8763c7cc2a2877f1a2fc689b4b9
parentd02895af18ae9c3673202d6231da078cb3d74bac (diff)
Remove a few conflicts and memory errors.
git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/ReflectionSymmetry/trunk@3 082bdb00-0f4f-0410-b49e-b1835e5f2039
-rw-r--r--src/apply.c35
-rw-r--r--src/interpolate.c12
-rw-r--r--src/register.c2
3 files changed, 35 insertions, 14 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 */
diff --git a/src/interpolate.c b/src/interpolate.c
index 8591fd7..cb58ba9 100644
--- a/src/interpolate.c
+++ b/src/interpolate.c
@@ -87,8 +87,8 @@ ReflectionSymmetry_Interpolate (CCTK_POINTER_TO_CONST restrict const cctkGH_,
if (do_reflection[2*dir])
{
new_interp_coords[dir]
- = malloc (N_interp_points * sizeof *new_interp_coords[dir]);
- assert (new_interp_coords[d]);
+ = malloc (N_interp_points * sizeof (CCTK_REAL));
+ assert (new_interp_coords[dir]);
for (n=0; n<N_interp_points; ++n)
{
@@ -193,7 +193,9 @@ ReflectionSymmetry_Interpolate (CCTK_POINTER_TO_CONST restrict const cctkGH_,
assert (numvars>0);
firstvar = CCTK_FirstVarIndexI(gi);
assert (firstvar>=0);
-
+ table = CCTK_GroupTagsTableI(gi);
+ assert (table>=0);
+
/* Get and check tensor type information */
@@ -314,8 +316,8 @@ ReflectionSymmetry_Interpolate (CCTK_POINTER_TO_CONST restrict const cctkGH_,
needs_checking = 0;
for (dir=0; dir<3; ++dir)
{
- check_dir[d] = do_reflection[2*dir] && parities[dir] < 0;
- needs_checking |= check_dir[d];
+ check_dir[dir] = do_reflection[2*dir] && parities[dir] < 0;
+ needs_checking |= check_dir[dir];
}
diff --git a/src/register.c b/src/register.c
index 2ae4b58..7a9bc17 100644
--- a/src/register.c
+++ b/src/register.c
@@ -45,7 +45,7 @@ ReflectionSymmetry_Register (CCTK_ARGUMENTS)
}
}
- handle = SymmetryRegister ("reflection_symmetry");
+ handle = SymmetryRegister ("reflection_symmetry_thorn");
if (handle < 0)
{
CCTK_WARN (0, "Could not register symmetry boundary condition");