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 /interface.ccl | |
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 'interface.ccl')
-rw-r--r-- | interface.ccl | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/interface.ccl b/interface.ccl index 6546fd4..4c683c1 100644 --- a/interface.ccl +++ b/interface.ccl @@ -44,14 +44,19 @@ CCTK_INT FUNCTION HorizonLocalCoordinateOrigin \ CCTK_INT FUNCTION HorizonWasFound(CCTK_INT IN horizon_number) # -# The following function computes the horizon radius in the -# direction of each (x,y,z) point, or -1.0 if this horizon wasn't found -# the most recent time AHFinderDirect searched for it. More precisely, -# For each (x,y,z), consider the ray from the local coordinate origin -# through (x,y,z). This function computes the Euclidean distance -# between the local coordinate origin and this ray's intersection with -# the horizon, or -1.0 if this horizon wasn't found the most recent time -# AHFinderDirect searched for it. +# The following function computes the horizon radius in the direction +# of each (x,y,z) point, or -1.0 if this horizon wasn't found the most +# recent time AHFinderDirect searched for it. More precisely, for each +# (x,y,z), consider the ray from the local coordinate origin through +# (x,y,z). This function computes the Euclidean distance between the +# local coordinate origin and this ray's intersection with the horizon, +# or -1.0 if this horizon wasn't found the most recent time AHFinderDirect +# searched for it. +# +# If this function is to be used in a multiprocessor run on a horizon +# which was found on some other processor, the parameter +# AHFinderDirect::always_broadcast_horizon_shape +# must be set to true to get the correct answer. # CCTK_INT FUNCTION HorizonRadiusInDirection \ (CCTK_INT IN horizon_number, \ |