diff options
author | jthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5> | 2003-03-17 12:06:49 +0000 |
---|---|---|
committer | jthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5> | 2003-03-17 12:06:49 +0000 |
commit | 8d274d170dde9d858e0a13a43762d3976ea4e3b1 (patch) | |
tree | d394b0725cf7af6883c57b8bde59f0ffef479d6c /param.ccl | |
parent | 498e26dd4ee819db7a0c4930e73624af936b7d47 (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.ccl | 206 |
1 files changed, 167 insertions, 39 deletions
@@ -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" +## +################################################################################## |