From db14e0ee8773cd33d69530eae9538235c2717a4b Mon Sep 17 00:00:00 2001 From: goodale Date: Wed, 17 May 2000 06:20:04 +0000 Subject: 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 --- src/CartGrid3D.c | 83 ++++++++++++++++++++++++++++++++------------------------ 1 file 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; } } -- cgit v1.2.3