aboutsummaryrefslogtreecommitdiff
path: root/src/driver
diff options
context:
space:
mode:
authorjthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5>2003-11-21 11:11:32 +0000
committerjthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5>2003-11-21 11:11:32 +0000
commit9e84f6fafad9b03f5dfdbe9f75cdca7b115d3cd3 (patch)
tree2b090233ee573e016475cabdf4db11be98e7b862 /src/driver
parentada59c769c5df2665d9049cb1473a6b61f2b6a12 (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.cc55
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