aboutsummaryrefslogtreecommitdiff
path: root/param.ccl
diff options
context:
space:
mode:
authorjthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5>2003-03-17 12:06:49 +0000
committerjthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5>2003-03-17 12:06:49 +0000
commit8d274d170dde9d858e0a13a43762d3976ea4e3b1 (patch)
treed394b0725cf7af6883c57b8bde59f0ffef479d6c /param.ccl
parent498e26dd4ee819db7a0c4930e73624af936b7d47 (diff)
add 1st draft of support for setting an excision mask
-- alas this doesn't work properly (yet) for multiple processors git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/AHFinderDirect/trunk@975 f88db872-0e4f-0410-b76b-b9085cfa78c5
Diffstat (limited to 'param.ccl')
-rw-r--r--param.ccl206
1 files changed, 167 insertions, 39 deletions
diff --git a/param.ccl b/param.ccl
index bc56167..bdd9323 100644
--- a/param.ccl
+++ b/param.ccl
@@ -391,6 +391,104 @@ string Jacobian_base_file_name "base file name for Jacobian output file(s)"
################################################################################
#
+# ***** parameters for setting a mask grid function ***
+# ***** based on each apparent horizon shape *****
+#
+
+boolean set_horizon_mask "should we set a mask grid function for each horizon?"
+{
+} "false"
+
+#
+# If we set a mask, we do so based on a "mask volume" for each horizon,
+# defined by
+# r(rho,sigma) = mask_radius_multiplier*h(rho,sigma)
+# + dx*mask_radius_offset
+# where
+# r(rho,sigma) = gives the adjusted-horizon radius
+# as a function of angular coordinates about
+# the local coordinate origin
+# h(rho,sigma) = gives the radius of the apparent horizon
+# as a function of angular coordinates about
+# the local coordinate origin
+# dx = geometric mean of the Cactus x, y, and z grid spacings
+#
+real mask_radius_multiplier[5] \
+ "radius multiplier to define the mask volume for this horizon"
+{
+(0:*) :: \
+ "any positive real number; typically this will be slightly less than 1.0"
+} 0.8
+real mask_radius_offset[5] \
+ "radius offset (in Cactus grid spacings) to define the mask volume \
+ for this horizon"
+{
+*:* :: "any real number; typically this will be negative"
+} -5.0
+
+#
+# This thorn supports two types of mask grid functions:
+# * the "old" style is that defined by CactusEinstein/AHFinder:
+# the mask is a CCTK_REAL grid function, which is set to specified
+# (CCTK_REAL) values inside/outside the (adjusted) horizon
+# * the "new" style is that defined by CactusEinstein/SpaceMask:
+# the mask is a CCTK_INT grid function, with a specified bit field
+# set to specified values inside/outside the (adjusted) horizon
+#
+keyword mask_type "what type of mask should we set?"
+{
+"old-style (CCTK_REAL)" :: "some CCTK_REAL grid function"
+"new-style (CCTK_INT)" :: \
+ "some CCTK_INT grid function, using named bit fields via the SpaceMask thorn"
+} "old-style (CCTK_REAL)"
+
+#
+# mask info for mask_type = "old-style (CCTK_REAL)"
+# defaults match CactusEinstein/AHFinder
+#
+string old_style_mask_gridfn_name "name of the old-style mask grid function"
+{
+.+ :: "any valid Cactus grid function name"
+} "AHFinderDirect::ahmask"
+real old_style_mask_inside_value \
+ "set the old-style mask to this value *inside* the mask volume"
+{
+*:* :: "any real number"
+} 0.0
+real old_style_mask_outside_value \
+ "set the old-style mask to this value *outside* the mask volume"
+{
+*:* :: "any real number"
+} 1.0
+
+#
+# mask info for mask_type = "new-style (CCTK_INT)"
+#
+string new_style_mask_gridfn_name "name of the new-style mask grid function"
+{
+.+ :: "any valid Cactus grid function name"
+} "AHFinderDirect::space_mask"
+string new_style_mask_bitfield_name \
+ "name of the new-style mask bit field ('type') as registered with SpaceMask"
+{
+.+ :: "any valid bit field ('type') name registered with the SpaceMask thorn"
+} "mask"
+string new_style_mask_inside_state_name \
+ "set the specified bit field of the new-style mask to this named state \
+ at grid points *inside* the mask volume"
+{
+.+ :: "any state name registered with the SpaceMask thorn"
+} "excised"
+string new_style_mask_outside_state_name \
+ "set the specified bit field of the new-style mask to this named state \
+ at grid points *outside* the mask volume"
+{
+.+ :: "any state name registered with the SpaceMask thorn"
+} "normal"
+
+################################################################################
+
+#
# ***** parameters controlling how we handle errors/warnings *****
#
@@ -845,7 +943,7 @@ boolean check_that_geometry_is_finite \
#
#
-# This 1D interpolator is used to interpolate the h function between
+# This 1D local interpolator is used to interpolate the h function between
# angular patches. Because any given patch boundary only interpolates
# from a single neighboring patch (this is to simplify the bookkeeping),
# near the patch corners this interpolator will have to be used off-centered.
@@ -869,6 +967,36 @@ string interpatch_interpolator_pars \
################################################################################
#
+# ***** parameters for the surface interpolation *****
+#
+
+#
+# This 2D local interpolator is used to interpolate the horizon radius
+# arbitrary angular coordinate, to find out whether a given xyz point is
+# inside or outside the horizon.
+#
+# At present this interpolator is used only if set_horizon_mask is true.
+# Otherwise, these parameters may both be set to empty strings.
+#
+
+string surface_interpolator_name \
+ "name under which the surface interpolation operator is registered in Cactus"
+{
+"" :: "the empty string if this interpolator isn't going to be used"
+.+ :: "any string (in practice it should be nonempty)"
+} "Lagrange polynomial interpolation"
+
+string surface_interpolator_pars \
+ "parameters for the surface interpolator"
+{
+.* :: "any string acceptable to Util_TableSetFromString() and to the interpolator"
+} "order=3 \
+ boundary_off_centering_tolerance={1.0e-10 1.0e-10 1.0e-10 1.0e-10} \
+ boundary_extrapolation_tolerance={0.0 0.0 0.0 0.0}"
+
+################################################################################
+
+#
# ***** parameters for computing line/surface integrals over the horizon *****
#
@@ -896,41 +1024,41 @@ keyword integral_method "how do we compute integrals over the horizon?"
################################################################################
-#
-# ***** parameters for the test driver "src/patch/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/patch/make.code.defn" to add test_patch_system.cc
-# - comment out the list of "subdirectories containing source files" in
-# "src/make.code.defn", and uncomment the alternate list which is
-# normally commented out there (this omits the higher-level directories
-# src/elliptic/, src/gr/, and src/driver/)
-#
-keyword which_test "which test should we do?"
-{
-"gridfn" :: "set up test fn(x,y,z), print it"
-"read gridfn" :: "read in ghosted test fn(x,y,z), print it"
-"synchronize" :: "set up test fn(x,y,z), synchronize it, print errors"
-"ghost zone Jacobian":: \
- "set up test fn(x,y,z), compute Jacobian of gz.synchronize(), compare with NP"
-"derivatives" :: "set up test fn(rho,sigma), take derivs, print errors"
-} "gridfn"
-
-int which_derivs "bit flags to specify which derivatives to test"
-{
-0:63 :: "any set of bit flags"
-} 63
-
-# true ==> gives a more thorough test of the Jacobian,
-# but makes the test run much slower
-# false ==> gives a slightly less thorough test, but runs faster
-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"
-
-################################################################################
+###
+### ***** parameters for the test driver "src/patch/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/patch/make.code.defn" to add test_patch_system.cc
+### - comment out the list of "subdirectories containing source files" in
+### "src/make.code.defn", and uncomment the alternate list which is
+### normally commented out there (this omits the higher-level directories
+### src/elliptic/, src/gr/, and src/driver/)
+###
+##keyword which_test "which test should we do?"
+##{
+##"gridfn" :: "set up test fn(x,y,z), print it"
+##"read gridfn" :: "read in ghosted test fn(x,y,z), print it"
+##"synchronize" :: "set up test fn(x,y,z), synchronize it, print errors"
+##"ghost zone Jacobian":: \
+## "set up test fn(x,y,z), compute Jacobian of gz.synchronize(), compare with NP"
+##"derivatives" :: "set up test fn(rho,sigma), take derivs, print errors"
+##} "gridfn"
+##
+##int which_derivs "bit flags to specify which derivatives to test"
+##{
+##0:63 :: "any set of bit flags"
+##} 63
+##
+### true ==> gives a more thorough test of the Jacobian,
+### but makes the test run much slower
+### false ==> gives a slightly less thorough test, but runs faster
+##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"
+##
+##################################################################################