aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgoodale <goodale@c78560ca-4b45-4335-b268-5f3340f3cb52>2000-05-17 06:20:04 +0000
committergoodale <goodale@c78560ca-4b45-4335-b268-5f3340f3cb52>2000-05-17 06:20:04 +0000
commitdb14e0ee8773cd33d69530eae9538235c2717a4b (patch)
tree916aa857d6e2a38784bb713911150bc8b28d891a
parente0c6dffcce36f8a9deeb229d1300117347ae6eb7 (diff)
Fix from Erik for bug with odd number of grid-points, byspacing, and avoid_origin, in
which the origin wasn't avoided. This fixes PR 356. Tom git-svn-id: http://svn.cactuscode.org/arrangements/CactusBase/CartGrid3D/trunk@114 c78560ca-4b45-4335-b268-5f3340f3cb52
-rw-r--r--src/CartGrid3D.c83
1 files changed, 48 insertions, 35 deletions
diff --git a/src/CartGrid3D.c b/src/CartGrid3D.c
index 3d2fd5c..249bc59 100644
--- a/src/CartGrid3D.c
+++ b/src/CartGrid3D.c
@@ -123,24 +123,34 @@ void CartGrid3D(CCTK_ARGUMENTS)
/* Grid spacing on coarsest grid */
/* TODO: Put the coordinates into arrays, and loop over the
dimensions. That gets ride of all the triplicated code. */
- if (domainsym[0]) {
- if (cntstag[0]) {
+ if (domainsym[0])
+ {
+ if (cntstag[0])
+ {
*coarse_dx = xmax1 / (cctk_gsh[0] - cctk_nghostzones[0] - 0.5);
x_origin = - (cctk_nghostzones[0] - 0.5) * *coarse_dx * iconv;
- } else {
+ }
+ else
+ {
*coarse_dx = xmax1 / (cctk_gsh[0] - cctk_nghostzones[0] - 1);
x_origin = - cctk_nghostzones[0] * *coarse_dx * iconv;
}
- } else {
+ }
+ else
+ {
*coarse_dx = (xmax1 - xmin1) / max(cctk_gsh[0] - 1, 1);
x_origin = xmin1;
}
- if (domainsym[2]) {
- if (cntstag[1]) {
+ if (domainsym[2])
+ {
+ if (cntstag[1])
+ {
*coarse_dy = ymax1 / (cctk_gsh[1] - cctk_nghostzones[1] - 0.5);
y_origin = - (cctk_nghostzones[1] - 0.5) * *coarse_dy * iconv;
- } else {
+ }
+ else
+ {
*coarse_dy = ymax1 / (cctk_gsh[1] - cctk_nghostzones[1] - 1);
y_origin = - cctk_nghostzones[1] * *coarse_dy * iconv;
}
@@ -149,15 +159,21 @@ void CartGrid3D(CCTK_ARGUMENTS)
y_origin = ymin1;
}
- if (domainsym[4]) {
- if (cntstag[2]) {
+ if (domainsym[4])
+ {
+ if (cntstag[2])
+ {
*coarse_dz = zmax1 / (cctk_gsh[2] - cctk_nghostzones[2] - 0.5);
z_origin = - (cctk_nghostzones[2] - 0.5) * *coarse_dz * iconv;
- } else {
+ }
+ else
+ {
*coarse_dz = zmax1 / (cctk_gsh[2] - cctk_nghostzones[2] - 1);
z_origin = - cctk_nghostzones[2] * *coarse_dz * iconv;
}
- } else {
+ }
+ else
+ {
*coarse_dz = (zmax1 - zmin1) / max(cctk_gsh[2] - 1, 1);
z_origin = zmin1;
}
@@ -203,34 +219,31 @@ void CartGrid3D(CCTK_ARGUMENTS)
/* Set minimum values of coordinates */
- if (domainsym[0]) {
- if (cntstag[0]) {
- x_origin = (- cctk_nghostzones[0] + 0.5) * this_dx;
- } else {
- x_origin = (- cctk_nghostzones[0] ) * this_dx;
- }
- } else {
- x_origin = -0.5 * (cctk_gsh[0] - 1) * this_dx;
+ if (domainsym[0])
+ {
+ x_origin = (- cctk_nghostzones[0] + cntstag[0] * 0.5) * this_dx;
+ }
+ else
+ {
+ x_origin = (- cctk_gsh[0]/2 + 0.5) * this_dx;
}
- if (domainsym[2]) {
- if (cntstag[1]) {
- y_origin = (- cctk_nghostzones[1] + 0.5) * this_dy;
- } else {
- y_origin = (- cctk_nghostzones[1] ) * this_dy;
- }
- } else {
- y_origin = -0.5 * (cctk_gsh[1] - 1) * this_dy;
+ if (domainsym[2])
+ {
+ y_origin = (- cctk_nghostzones[1] + cntstag[1] * 0.5) * this_dy;
+ }
+ else
+ {
+ y_origin = (- cctk_gsh[1]/2 + 0.5) * this_dy;
}
- if (domainsym[4]) {
- if (cntstag[2]) {
- z_origin = (- cctk_nghostzones[2] + 0.5) * this_dz;
- } else {
- z_origin = (- cctk_nghostzones[2] ) * this_dz;
- }
- } else {
- z_origin = -0.5 * (cctk_gsh[2] - 1) * this_dz;
+ if (domainsym[4])
+ {
+ z_origin = (- cctk_nghostzones[2] + cntstag[2] * 0.5) * this_dz;
+ }
+ else
+ {
+ z_origin = (- cctk_gsh[2]/2 + 0.5) * this_dz;
}
}