aboutsummaryrefslogtreecommitdiff
path: root/param.ccl
diff options
context:
space:
mode:
authorjthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5>2002-07-27 16:42:16 +0000
committerjthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5>2002-07-27 16:42:16 +0000
commit5c7d97fc59632442a917256c1cf9ebef6f4f8f51 (patch)
treeaabcd624cbbfe3cb1c22925d9b505ae3f2f6996d /param.ccl
parenteb76f99290948df5871a99c329570df810c16cba (diff)
merge various changes from working at home
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/AHFinderDirect/trunk@665 f88db872-0e4f-0410-b76b-b9085cfa78c5
Diffstat (limited to 'param.ccl')
-rw-r--r--param.ccl136
1 files changed, 109 insertions, 27 deletions
diff --git a/param.ccl b/param.ccl
index 9b5eb41..77feb3d 100644
--- a/param.ccl
+++ b/param.ccl
@@ -6,19 +6,59 @@
#
# overall parameters for the apparent horizon finding algorithm itself
#
+
keyword method "top-level method used to find the apparent horizon"
{
"horizon function" :: "evaluate the LHS function H(h)"
-"Jacobian test" :: "test the J[H(h)] Jacobian matrix (SD vs NP methods)"
+"Jacobian test" :: \
+ "compute/print the J[H(h)] Jacobian matrix by all possible methods"
"Newton solve" :: "find the horizon via Newton's method"
} "horizon function"
-keyword Jacobian_type \
- "what type of storage scheme do we use for the Jacobian matrix?"
+################################################################################
+
+#
+# parameters for the Jacobian matrix $J[H(h)]$
+#
+
+keyword Jacobian_method "how do we compute the Jacobian matrix?"
+{
+"numerical perturbation" :: \
+ "*very* slow, but useful for debugging"
+"symbolic differentiation with finite diff d/dr" :: \
+ "fast, tricky programming, uses only gij, dx gij, Kij"
+"symbolic differentiation" :: \
+ "fast, tricky programming, uses gij, dx gij, dxx gij, Kij, dx Kij"
+} "symbolic differentiation with finite diff d/dr"
+
+keyword Jacobian_storage_method "how do we store the Jacobian matrix?"
{
"dense matrix" :: "dense matrix (inefficient, but good for debugging)"
} "dense matrix"
+#
+# this is used for two different sorts of one-sided finite differencing:
+# - numerical-perturbation Jacobian computations,
+# - the finite differencing part of the "symbolic differentiation
+# with finite diff d/dr" Jacobian computation
+#
+# notes on this parameter:
+# - don't set it too small or roundoff errors will become large
+# - don't set it too large or finite differencing errors will become large
+# in practice the default value should be fine
+#
+real Jacobian_perturbation_amplitude \
+ "perturbation amplitude for 1-sided finite differencing for Jacobians"
+{
+(0.0:* :: "any real number > 0"
+} 1.0e-6
+
+################################################################################
+
+#
+# parameters for the Newton's-method solution of $H(h) = 0$
+#
+
int max_Newton_iterations "maximum number of Newton iterations before giving up"
{
(0:* :: "any positive integer"
@@ -62,23 +102,6 @@ string Jacobian_file_name "name of the Jacobian output file"
################################################################################
#
-# parameters for numerical-perturbation Jacobians
-#
-
-#
-# Don't set this too small or roundoff errors will become large.
-# Don't set this too large or finite differencing errors will become large.
-# In practice the default value should be fine.
-#
-real NP_Jacobian__perturbation_amplitude \
- "NP Jacobian: numerical-perturbation amplitude"
-{
-(0.0:* :: "any real number > 0"
-} 1.0e-6
-
-################################################################################
-
-#
# parameters to define the patch system
#
private:
@@ -126,9 +149,59 @@ real delta_drho_dsigma "angular grid spacing of patches, in degrees"
################################################################################
#
+# parameters for (optionally) hard-wiring the geometry to
+# Schwarzschild spacetime in Eddington-Finkelstein coordinates
+# (useful for testing smoothness requirements of interpolation)
+#
+
+boolean hardwire_Schwarzschild_EF \
+ "should we hard-wire Schwarzschild/EF geometry, \
+ bypassing the usual $g_{ij}$/$K_{ij}$ interpolation from the Cactus grid?"
+{
+} "false"
+
+real hardwire_Schwarzschild_EF__mass "mass of Schwarzschild BH"
+{
+(0.0:* :: "BH mass = any real number > 0"
+} 1.0
+
+real hardwire_Schwarzschild_EF__x_posn "x coordinate of Schwarzschild BH"
+{
+*:* :: "any real number"
+} 0.0
+real hardwire_Schwarzschild_EF__y_posn "y coordinate of Schwarzschild BH"
+{
+*:* :: "any real number"
+} 0.0
+real hardwire_Schwarzschild_EF__z_posn "z coordinate of Schwarzschild BH"
+{
+*:* :: "any real number"
+} 0.0
+
+real hardwire_Schwarzschild_EF__epsilon \
+ "threshold for sin^2 theta = (x^2+y^2)/r^2 below which we use z axis limits"
+{
+(0.0:* :: "this should be a little bit above the floating-point roundoff level"
+} 1.0e-12
+
+# notes on this parameter:
+# - don't set it too small or roundoff errors will become large
+# - don't set it too large or finite differencing errors will become large
+# in practice the default value should be fine
+# n.b. this is used for centered finite differencing, unlike the Jacobian
+real hardwire_Schwarzschild_EF__Delta_xyz \
+ "finite diff pseuo-grid spacing for computing $\partial_k g_{ij}$"
+{
+(0.0:* :: "any real number > 0"
+} 1.0e-6
+
+################################################################################
+
+#
# parameters for the interpolator used to interpolate the "geometry"
# $g_{ij}$ and $K_{ij}$ to the apparent horizon surface position
#
+
string geometry_interpolator_name \
"name under which the geometry interpolation operator is registered in Cactus"
{
@@ -198,26 +271,26 @@ real initial_guess__ellipsoid__z_radius "z radius of ellipsoid"
(0.0:* :: "any real number > 0.0"
} 2.0
-# parameters for initial_guess_method = "Kerr-Schild"
-real initial_guess__Kerr_KerrSchild__x_center "x coordinate of Kerr BH"
+# parameters for initial_guess_method = "Kerr/Kerr" and "Kerr/Kerr-Schild"
+real initial_guess__Kerr__x_posn "x coordinate of Kerr BH"
{
*:* :: "any real number"
} 0.0
-real initial_guess__Kerr_KerrSchild__y_center "y coordinate of Kerr BH"
+real initial_guess__Kerr__y_posn "y coordinate of Kerr BH"
{
*:* :: "any real number"
} 0.0
-real initial_guess__Kerr_KerrSchild__z_center "z coordinate of Kerr BH"
+real initial_guess__Kerr__z_posn "z coordinate of Kerr BH"
{
*:* :: "any real number"
} 0.0
# n.b. my convention is that a=J/m^2 is dimensionless,
# while MTW take a=J/m=m * (my a)
-real initial_guess__Kerr_KerrSchild__mass "mass of Kerr BH"
+real initial_guess__Kerr__mass "mass of Kerr BH"
{
(0.0:* :: "BH mass = any real number > 0"
} 1.0
-real initial_guess__Kerr_KerrSchild__spin "dimensionless spin J/m^2 of Kerr BH"
+real initial_guess__Kerr__spin "dimensionless spin J/m^2 of Kerr BH"
{
(-1.0:1.0) :: "BH spin = J/m^2 = any real number with absolute value < 1"
} 0.6
@@ -227,6 +300,15 @@ real initial_guess__Kerr_KerrSchild__spin "dimensionless spin J/m^2 of Kerr BH"
#
# parameters for the test driver src/util/test_patch_system.cc
#
+# By default this test driver isn't compiled into the cactus executable,
+# and these parameters are ignored. To compile this test driver into
+# the cactus executable (and have these parameters used),
+# - edit the list of "source files in this directory" in
+# src/util/make.code.defn to add test_patch_system.cc
+# - edit the list of "subdirectories containing source files" in
+# src/make.code.defn to disable the higher-level directories
+# elliptic and gr
+#
keyword which_test "which test should we do?"
{
"gridfn" :: "set up test fn(x,y,z), print it"
@@ -249,6 +331,6 @@ boolean NP_Jacobian__perturb_all_y_patch_points \
"should we perturb at *all* points in the y patch, or just those with the \
iperp which is (supposedly) involved in the interpatch interpolation?"
{
-} true;
+} "true"
################################################################################