diff options
author | jthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5> | 2003-09-11 19:06:38 +0000 |
---|---|---|
committer | jthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5> | 2003-09-11 19:06:38 +0000 |
commit | 1a657ea6c97b47dc71dd37ac24bb913021376468 (patch) | |
tree | dc3a8a166b732b9fdf8881751d126b3545b9b82a /src | |
parent | 376e513a41d09241d4054641bcd671f0320728a4 (diff) |
change mask semantics so "offset" is always interpreted in terms of
BASE grid spacings --> this is needed to keep excision consistent
when doing mesh refinement (thanks to Ian Hawke for spotting this)
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/AHFinderDirect/trunk@1187 f88db872-0e4f-0410-b76b-b9085cfa78c5
Diffstat (limited to 'src')
-rw-r--r-- | src/driver/mask.cc | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/driver/mask.cc b/src/driver/mask.cc index b556e1e..725a992 100644 --- a/src/driver/mask.cc +++ b/src/driver/mask.cc @@ -85,7 +85,12 @@ struct mask_grid_info // of (i,j,k) = (0,0,0) // on this processor fp coord_delta[N_GRID_DIMS]; // (x,y,z) grid spacing - fp mean_coord_delta; // geometric mean of x,y,z grid spacings + + // geometric mean of x,y,z grid spacings, + // on the *base* grid if we are doing mesh refinement + // (we need the base-grid semantics to make excision consistent + // across refinement levels) + fp base_grid_mean_coord_delta; // dimensions of gridfn data on this processor, viewed as a 3-D array // n.b. storage ordering is Fortran, @@ -197,13 +202,14 @@ DECLARE_CCTK_ARGUMENTS mgi.GH = cctkGH; -// Cactus grid spacing +// Cactus grid spacing on *this* grid mgi.coord_delta[X_AXIS] = CCTK_DELTA_SPACE(X_AXIS); mgi.coord_delta[Y_AXIS] = CCTK_DELTA_SPACE(Y_AXIS); mgi.coord_delta[Z_AXIS] = CCTK_DELTA_SPACE(Z_AXIS); -mgi.mean_coord_delta - = pow(mgi.coord_delta[X_AXIS]*mgi.coord_delta[Y_AXIS]*mgi.coord_delta[Z_AXIS], - 1.0/3.0); +const fp base_grid_delta_product = cctk_delta_space[X_AXIS] + * cctk_delta_space[Y_AXIS] + * cctk_delta_space[Z_AXIS]; +mgi.base_grid_mean_coord_delta = pow(base_grid_delta_product, 1.0/3.0); // get global/local Cactus grid origin // KLUDGE -- is this the right way to get this?? @@ -347,7 +353,6 @@ void set_mask_gridfn(int N_horizons, const struct mask_info& mask_info, const struct verbose_info& verbose_info) { -const fp Cactus_dx = mgi.mean_coord_delta; const bool set_old_style_mask = mask_info.set_old_style_mask; const bool set_new_style_mask = mask_info.set_new_style_mask; const struct mask_info::old_style_mask_info& osmi = mask_info.old_style_mask_info; @@ -594,7 +599,7 @@ const bool set_old_style_mask = mask_info.set_old_style_mask; const bool set_new_style_mask = mask_info.set_new_style_mask; const struct mask_info::old_style_mask_info& osmi = mask_info.old_style_mask_info; const struct mask_info::new_style_mask_info& nsmi = mask_info.new_style_mask_info; -const fp Cactus_dx = mgi.mean_coord_delta; +const fp Cactus_dx = mgi.base_grid_mean_coord_delta; long inside_count = 0; long buffer_count = 0; |