diff options
author | jthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5> | 2003-11-21 11:11:32 +0000 |
---|---|---|
committer | jthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5> | 2003-11-21 11:11:32 +0000 |
commit | 9e84f6fafad9b03f5dfdbe9f75cdca7b115d3cd3 (patch) | |
tree | 2b090233ee573e016475cabdf4db11be98e7b862 /src/driver | |
parent | ada59c769c5df2665d9049cb1473a6b61f2b6a12 (diff) |
revise semantics of min_horizon_radius_points_for_mask
so it now tests against the angular minimum of r_inner,
not r_min (= the angular minimum of r_horizon) like it did before
... docs update will follow shortly
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/AHFinderDirect/trunk@1216 f88db872-0e4f-0410-b76b-b9085cfa78c5
Diffstat (limited to 'src/driver')
-rw-r--r-- | src/driver/mask.cc | 55 |
1 files changed, 48 insertions, 7 deletions
diff --git a/src/driver/mask.cc b/src/driver/mask.cc index 03f55aa..bacddfc 100644 --- a/src/driver/mask.cc +++ b/src/driver/mask.cc @@ -10,6 +10,8 @@ /// set_mask_gridfn - set mask gridfn(s) based on each horizon's shape /// set_mask_gridfn_to_outside_value - ... "outside" value /// set_mask_gridfn_to_inside_and_buffer_values - "inside"/"buffer" values +/// inner_mask_radius - compute inner mask radius r_inner given r_horizon +/// outer_mask_radius - compute outer mask radius r_outer given r_inner // #include <stdio.h> @@ -151,6 +153,12 @@ void set_mask_gridfn_to_inside_and_buffer_values const struct mask_info& mask_info, const patch_system& ps, const struct verbose_info& verbose_info); +fp inner_mask_radius(const struct mask_grid_info& mgi, + const struct mask_info& mask_info, + fp r_horizon); +fp outer_mask_radius(const struct mask_grid_info& mgi, + const struct mask_info& mask_info, + fp r_inner); } //****************************************************************************** @@ -414,13 +422,15 @@ set_mask_gridfn_to_outside_value(mgi, // // skip this horizon if it's too small // - if (BH_diagnostics.min_radius + const fp r_inner_min + = inner_mask_radius(mgi, mask_info, BH_diagnostics.min_radius); + if (r_inner_min < mask_info.min_horizon_radius_points_for_mask*mgi.max_coord_delta) then { if (verbose_info.print_algorithm_details) then CCTK_VInfo(CCTK_THORNSTRING, - " min_radius=%g < %g grid points ==> skipping mask for horizon %d", - BH_diagnostics.min_radius, + " r_inner_min=%g < %g grid points ==> skipping mask for horizon %d", + r_inner_min, mask_info.min_horizon_radius_points_for_mask, hn); continue; // *** LOOP CONTROL *** @@ -614,7 +624,6 @@ 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.base_grid_mean_coord_delta; long inside_count = 0; long buffer_count = 0; @@ -645,9 +654,8 @@ long buffer_count = 0; (gfns::gfn__h, local_x, local_y, local_z); - const fp r_inner = mask_info.radius_multiplier*r_horizon - + mask_info.radius_offset*Cactus_dx; - const fp r_outer = r_inner + mask_info.buffer_thickness*Cactus_dx; + const fp r_inner = inner_mask_radius(mgi, mask_info, r_horizon); + const fp r_outer = outer_mask_radius(mgi, mask_info, r_inner); if (r <= r_inner) then { @@ -711,4 +719,37 @@ if (verbose_info.print_algorithm_details) //****************************************************************************** +// +// This function computes the inner mask radius r_inner for a given +// horizon radius r_horizon . +// +namespace { +fp inner_mask_radius(const struct mask_grid_info& mgi, + const struct mask_info& mask_info, + fp r_horizon) +{ +const fp Cactus_dx = mgi.base_grid_mean_coord_delta; +return mask_info.radius_multiplier*r_horizon + + mask_info.radius_offset*Cactus_dx; +} + } + +//****************************************************************************** + +// +// This function computes the outer mask radius r_outer for a given +// inner mask radius r_inner . +// +namespace { +fp outer_mask_radius(const struct mask_grid_info& mgi, + const struct mask_info& mask_info, + fp r_inner) +{ +const fp Cactus_dx = mgi.base_grid_mean_coord_delta; +return r_inner + mask_info.buffer_thickness*Cactus_dx; +} + } + +//****************************************************************************** + } // namespace AHFinderDirect |