aboutsummaryrefslogtreecommitdiff
path: root/src/driver/find_horizons.cc
diff options
context:
space:
mode:
authorjthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5>2005-06-14 11:58:38 +0000
committerjthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5>2005-06-14 11:58:38 +0000
commit8145d1876ae2c8d3fa50f44fbd16e595d9ed9152 (patch)
tree345a851083526d2dd265a66eda4533fea515a859 /src/driver/find_horizons.cc
parentcdd674a46d8f14de3078259e8cfc38506ca46f02 (diff)
fix a bug found by Yosef Zlochower:
In a multiprocessor run, AHFinderDirect finds different horizons in parallel on different processors, and doesn't broadcast horizon shapes to all processors unless it thinks they'll be needed. However, the "the information will be needed" calculation doesn't take into account the possibility of the HorizonRadiusInDirection() aliased function being called on another processor, and in this case this function returns a wrong result if AHFinderDirect hasn't broadcast the horizon shapes. * introduce a new Boolean parameter always_broadcast_horizon_shape (defaults to false) * document in interface.ccl, param.ccl, and doc/documentation.tex, that this parameter should be set to true if you expect HorizonRadiusInDirection() to be used * inclusive-or this parameter into the "should we broadcast the horizon shape?" calculation in src/driver/find_horizons.cc git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/AHFinderDirect/trunk@1419 f88db872-0e4f-0410-b76b-b9085cfa78c5
Diffstat (limited to 'src/driver/find_horizons.cc')
-rw-r--r--src/driver/find_horizons.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/driver/find_horizons.cc b/src/driver/find_horizons.cc
index e252528..a4d2b65 100644
--- a/src/driver/find_horizons.cc
+++ b/src/driver/find_horizons.cc
@@ -105,7 +105,8 @@ const int N_horizons = state.N_horizons;
horizon_sequence& hs = *state.my_hs;
const bool active_flag = hs.has_genuine_horizons();
const bool broadcast_horizon_shape
- = state.mask_info.set_mask_for_any_horizon
+ = state.always_broadcast_horizon_shape
+ || state.mask_info.set_mask_for_any_horizon
|| state.store_info_in_SS_vars_for_any_horizon;
struct cactus_grid_info& cgi = state.cgi;