aboutsummaryrefslogtreecommitdiff
path: root/interface.ccl
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 /interface.ccl
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 'interface.ccl')
-rw-r--r--interface.ccl21
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, \