aboutsummaryrefslogtreecommitdiff
path: root/src/rotatingsymmetry180.c
diff options
context:
space:
mode:
authorschnetter <schnetter@20f44201-0f4f-0410-9130-e5fc2714a787>2004-05-19 22:14:32 +0000
committerschnetter <schnetter@20f44201-0f4f-0410-9130-e5fc2714a787>2004-05-19 22:14:32 +0000
commit3edf9722d47b574a52a5f72e72feb8451dc4c43f (patch)
tree4f93fb6ecd8459497a9f68b6476c884af93ace14 /src/rotatingsymmetry180.c
parent867de588f578000dcee4bea3b4035ac048d7fe9e (diff)
Fix segmentation fault on multiple processors
git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/RotatingSymmetry180/trunk@8 20f44201-0f4f-0410-9130-e5fc2714a787
Diffstat (limited to 'src/rotatingsymmetry180.c')
-rw-r--r--src/rotatingsymmetry180.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/src/rotatingsymmetry180.c b/src/rotatingsymmetry180.c
index 216dc78..c26c576 100644
--- a/src/rotatingsymmetry180.c
+++ b/src/rotatingsymmetry180.c
@@ -14,6 +14,8 @@
#include "Slab.h"
+#include "rotatingsymmetry180.h"
+
int BndRot180VI (cGH const * restrict const cctkGH,
@@ -288,17 +290,22 @@ int BndRot180VI (cGH const * restrict const cctkGH,
parity = parities[0] * parities[1];
assert (abs(parity) == 1);
if (parity == -1) {
+ int imin[3], imax[3];
int i, j, k;
+ for (d=0; d<3; ++d) {
+ imin[d] = xferinfo[d].dst.off;
+ imax[d] = xferinfo[d].dst.off + xferinfo[d].dst.len;
+ imin[d] -= cctk_lbnd[d];
+ imax[d] -= cctk_lbnd[d];
+ if (imin[d] < 0) imin[d] = 0;
+ if (imax[d] >= cctk_lsh[d]) imax[d] = cctk_lsh[d];
+ }
assert (group.dim == 3);
assert (group.vartype == CCTK_VARIABLE_REAL);
- for (k=0; k<xferinfo[2].dst.len; ++k) {
- for (j=0; j<xferinfo[1].dst.len; ++j) {
- for (i=0; i<xferinfo[0].dst.len; ++i) {
- const int ind
- = CCTK_GFINDEX3D(cctkGH,
- xferinfo[0].dst.off + i - cctk_lbnd[0],
- xferinfo[1].dst.off + j - cctk_lbnd[1],
- xferinfo[2].dst.off + k - cctk_lbnd[2]);
+ for (k=imin[0]; k<imax[2]; ++k) {
+ for (j=imin[1]; j<imax[1]; ++j) {
+ for (i=imin[2]; i<imax[0]; ++i) {
+ const int ind = CCTK_GFINDEX3D(cctkGH, i, j, k);
((CCTK_REAL *) varptr) [ind] *= -1;
}
}