diff options
author | jthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5> | 2005-06-14 11:58:38 +0000 |
---|---|---|
committer | jthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5> | 2005-06-14 11:58:38 +0000 |
commit | 8145d1876ae2c8d3fa50f44fbd16e595d9ed9152 (patch) | |
tree | 345a851083526d2dd265a66eda4533fea515a859 /src/driver/find_horizons.cc | |
parent | cdd674a46d8f14de3078259e8cfc38506ca46f02 (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.cc | 3 |
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; |