aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--run/test-ahfinderdirect/Misner/README1
-rw-r--r--run/test-ahfinderdirect/Misner/misner1.2-025-N30-guess300/misner.par110
-rw-r--r--run/test-ahfinderdirect/Misner/misner1.2-025-guess300/misner1.2-025-guess300.par109
-rw-r--r--run/test-ahfinderdirect/Misner/misner1.2-025-guess400/misner.par109
-rw-r--r--src/driver/Newton.cc15
5 files changed, 339 insertions, 5 deletions
diff --git a/run/test-ahfinderdirect/Misner/README b/run/test-ahfinderdirect/Misner/README
new file mode 100644
index 0000000..fec0cfa
--- /dev/null
+++ b/run/test-ahfinderdirect/Misner/README
@@ -0,0 +1 @@
+These are some tests of apparent horizon finding in Misner initial data.
diff --git a/run/test-ahfinderdirect/Misner/misner1.2-025-N30-guess300/misner.par b/run/test-ahfinderdirect/Misner/misner1.2-025-N30-guess300/misner.par
new file mode 100644
index 0000000..09f9612
--- /dev/null
+++ b/run/test-ahfinderdirect/Misner/misner1.2-025-N30-guess300/misner.par
@@ -0,0 +1,110 @@
+# This parameter file sets up Misner initial data and finds the
+# apparent horizons in it with AHFinderDirect.
+#
+# Note that the grid is very high-resolution, but small (the outer
+# boundaries are very close in). This isn't a problem for the purposes
+# of this test. This run takes about 213 megabytes of memory on my laptop.
+
+########################################
+
+#
+# ***** grid *****
+#
+
+ActiveThorns = "CartGrid3D PUGH"
+
+Driver::global_nx = 99
+Driver::global_ny = 99
+Driver::global_nz = 115
+PUGH::ghost_size = 6
+
+Grid::domain = "octant"
+Grid::type = "byspacing"
+Grid::dxyz = 0.025
+Grid::avoid_origin = "false"
+
+########################################
+
+#
+# physics
+#
+
+ActiveThorns = "ADMBase ADMCoupling CoordGauge StaticConformal IDAnalyticBH"
+
+ADMBase::initial_data = "misner_bh"
+IDAnalyticBH::mu = 1.2
+
+########################################
+
+#
+# numerical methods
+#
+
+Cactus::cctk_itlast = 0
+ADMBase::metric_type = "static conformal"
+StaticConformal::conformal_storage = "factor+derivs+2nd derivs"
+ADMBase::evolution_method = "none"
+ADMBase::initial_lapse = "Cadez"
+ADMBase::lapse_evolution_method = "static"
+ADMBase::initial_shift = "zero"
+ADMBase::shift_evolution_method = "static"
+
+########################################
+
+#
+# ***** output *****
+#
+ActiveThorns = "PUGHSlab IOBasic IOUtil IOASCII"
+
+IOUtil::parfile_write = "no"
+IOUtil::checkpoint_ID = "yes"
+IOUtil::checkpoint_every = -1 # no checkpointing after the initial data
+
+IOBasic::outScalar_every = 1
+IOASCII::out1D_every = 5
+IOBasic::outInfo_every = 1
+
+IO::recover = "no"
+IO::verbose = "standard"
+
+IOBasic::outScalar_vars = "ADMAnalysis::grr ADMAonstraints::momx ADMAonstraints::ham"
+IOBasic::outInfo_vars = " admconstraints::ham ADMBase::alp "
+IOASCII::out1D_vars = " ADMAnalysis::grr ADMBase::gxx ADMBase::gyy ADMBase::gzz StaticConformal::psi ADMConstraints::momx ADMConstraints::ham "
+
+########################################
+
+#
+# AHFinderDirect
+#
+
+ActiveThorns = "LocalInterp PUGHInterp PUGHReduce AHFinderDirect"
+
+AHFinderDirect::find_AHs_at_postinitial = "true"
+AHFinderDirect::find_AHs_at_poststep = "false"
+AHFinderDirect::print_timing_stats = "true"
+##AHFinderDirect::verbose_level = "algorithm details"
+
+AHFinderDirect::h_base_file_name = "misner.h"
+
+AHFinderDirect::N_horizons = 2
+
+AHFinderDirect::N_zones_per_right_angle[1] = 30
+AHFinderDirect::origin_x[1] = 0.0
+AHFinderDirect::origin_y[1] = 0.0
+AHFinderDirect::origin_z[1] = 1.0
+AHFinderDirect::initial_guess_method[1] = "coordinate sphere"
+AHFinderDirect::initial_guess__coord_sphere__x_center[1] = 0.0
+AHFinderDirect::initial_guess__coord_sphere__y_center[1] = 0.0
+AHFinderDirect::initial_guess__coord_sphere__z_center[1] = 1.0
+AHFinderDirect::initial_guess__coord_sphere__radius[1] = 0.3
+
+AHFinderDirect::origin_x[2] = 0.0
+AHFinderDirect::origin_y[2] = 0.0
+AHFinderDirect::origin_z[2] = 0.0
+AHFinderDirect::initial_guess_method[2] = "coordinate ellipsoid"
+AHFinderDirect::initial_guess__coord_ellipsoid__x_center[2] = 0.0
+AHFinderDirect::initial_guess__coord_ellipsoid__y_center[2] = 0.0
+AHFinderDirect::initial_guess__coord_ellipsoid__z_center[2] = 0.0
+AHFinderDirect::initial_guess__coord_ellipsoid__x_radius[2] = 0.8
+AHFinderDirect::initial_guess__coord_ellipsoid__y_radius[2] = 0.8
+AHFinderDirect::initial_guess__coord_ellipsoid__z_radius[2] = 1.4
diff --git a/run/test-ahfinderdirect/Misner/misner1.2-025-guess300/misner1.2-025-guess300.par b/run/test-ahfinderdirect/Misner/misner1.2-025-guess300/misner1.2-025-guess300.par
new file mode 100644
index 0000000..54af2ba
--- /dev/null
+++ b/run/test-ahfinderdirect/Misner/misner1.2-025-guess300/misner1.2-025-guess300.par
@@ -0,0 +1,109 @@
+# This parameter file sets up Misner initial data and finds the
+# apparent horizons in it with AHFinderDirect.
+#
+# Note that the grid is very high-resolution, but small (the outer
+# boundaries are very close in). This isn't a problem for the purposes
+# of this test. This run takes about 213 megabytes of memory on my laptop.
+
+########################################
+
+#
+# ***** grid *****
+#
+
+ActiveThorns = "CartGrid3D PUGH"
+
+Driver::global_nx = 99
+Driver::global_ny = 99
+Driver::global_nz = 115
+PUGH::ghost_size = 6
+
+Grid::domain = "octant"
+Grid::type = "byspacing"
+Grid::dxyz = 0.025
+Grid::avoid_origin = "false"
+
+########################################
+
+#
+# physics
+#
+
+ActiveThorns = "ADMBase ADMCoupling CoordGauge StaticConformal IDAnalyticBH"
+
+ADMBase::initial_data = "misner_bh"
+IDAnalyticBH::mu = 1.2
+
+########################################
+
+#
+# numerical methods
+#
+
+Cactus::cctk_itlast = 0
+ADMBase::metric_type = "static conformal"
+StaticConformal::conformal_storage = "factor+derivs+2nd derivs"
+ADMBase::evolution_method = "none"
+ADMBase::initial_lapse = "Cadez"
+ADMBase::lapse_evolution_method = "static"
+ADMBase::initial_shift = "zero"
+ADMBase::shift_evolution_method = "static"
+
+########################################
+
+#
+# ***** output *****
+#
+ActiveThorns = "PUGHSlab IOBasic IOUtil IOASCII"
+
+IOUtil::parfile_write = "no"
+IOUtil::checkpoint_ID = "yes"
+IOUtil::checkpoint_every = -1 # no checkpointing after the initial data
+
+IOBasic::outScalar_every = 1
+IOASCII::out1D_every = 5
+IOBasic::outInfo_every = 1
+
+IO::recover = "no"
+IO::verbose = "standard"
+
+IOBasic::outScalar_vars = "ADMAnalysis::grr ADMAonstraints::momx ADMAonstraints::ham"
+IOBasic::outInfo_vars = " admconstraints::ham ADMBase::alp "
+IOASCII::out1D_vars = " ADMAnalysis::grr ADMBase::gxx ADMBase::gyy ADMBase::gzz StaticConformal::psi ADMConstraints::momx ADMConstraints::ham "
+
+########################################
+
+#
+# AHFinderDirect
+#
+
+ActiveThorns = "LocalInterp PUGHInterp PUGHReduce AHFinderDirect"
+
+AHFinderDirect::find_AHs_at_postinitial = "true"
+AHFinderDirect::find_AHs_at_poststep = "false"
+AHFinderDirect::print_timing_stats = "true"
+##AHFinderDirect::verbose_level = "algorithm details"
+
+AHFinderDirect::h_base_file_name = "misner1.2-025-guess300.h"
+
+AHFinderDirect::N_horizons = 2
+
+AHFinderDirect::origin_x[1] = 0.0
+AHFinderDirect::origin_y[1] = 0.0
+AHFinderDirect::origin_z[1] = 1.0
+AHFinderDirect::initial_guess_method[1] = "coordinate sphere"
+AHFinderDirect::initial_guess__coord_sphere__x_center[1] = 0.0
+AHFinderDirect::initial_guess__coord_sphere__y_center[1] = 0.0
+AHFinderDirect::initial_guess__coord_sphere__z_center[1] = 1.0
+AHFinderDirect::initial_guess__coord_sphere__radius[1] = 0.3
+
+AHFinderDirect::origin_x[2] = 0.0
+AHFinderDirect::origin_y[2] = 0.0
+AHFinderDirect::origin_z[2] = 0.0
+AHFinderDirect::initial_guess_method[2] = "coordinate ellipsoid"
+AHFinderDirect::initial_guess__coord_ellipsoid__x_center[2] = 0.0
+AHFinderDirect::initial_guess__coord_ellipsoid__y_center[2] = 0.0
+AHFinderDirect::initial_guess__coord_ellipsoid__z_center[2] = 0.0
+AHFinderDirect::initial_guess__coord_ellipsoid__x_radius[2] = 0.8
+AHFinderDirect::initial_guess__coord_ellipsoid__y_radius[2] = 0.8
+AHFinderDirect::initial_guess__coord_ellipsoid__z_radius[2] = 1.4
diff --git a/run/test-ahfinderdirect/Misner/misner1.2-025-guess400/misner.par b/run/test-ahfinderdirect/Misner/misner1.2-025-guess400/misner.par
new file mode 100644
index 0000000..33a2795
--- /dev/null
+++ b/run/test-ahfinderdirect/Misner/misner1.2-025-guess400/misner.par
@@ -0,0 +1,109 @@
+# This parameter file sets up Misner initial data and finds the
+# apparent horizons in it with AHFinderDirect.
+#
+# Note that the grid is very high-resolution, but small (the outer
+# boundaries are very close in). This isn't a problem for the purposes
+# of this test. This run takes about 213 megabytes of memory on my laptop.
+
+########################################
+
+#
+# ***** grid *****
+#
+
+ActiveThorns = "CartGrid3D PUGH"
+
+Driver::global_nx = 99
+Driver::global_ny = 99
+Driver::global_nz = 115
+PUGH::ghost_size = 6
+
+Grid::domain = "octant"
+Grid::type = "byspacing"
+Grid::dxyz = 0.025
+Grid::avoid_origin = "false"
+
+########################################
+
+#
+# physics
+#
+
+ActiveThorns = "ADMBase ADMCoupling CoordGauge StaticConformal IDAnalyticBH"
+
+ADMBase::initial_data = "misner_bh"
+IDAnalyticBH::mu = 1.2
+
+########################################
+
+#
+# numerical methods
+#
+
+Cactus::cctk_itlast = 0
+ADMBase::metric_type = "static conformal"
+StaticConformal::conformal_storage = "factor+derivs+2nd derivs"
+ADMBase::evolution_method = "none"
+ADMBase::initial_lapse = "Cadez"
+ADMBase::lapse_evolution_method = "static"
+ADMBase::initial_shift = "zero"
+ADMBase::shift_evolution_method = "static"
+
+########################################
+
+#
+# ***** output *****
+#
+ActiveThorns = "PUGHSlab IOBasic IOUtil IOASCII"
+
+IOUtil::parfile_write = "no"
+IOUtil::checkpoint_ID = "yes"
+IOUtil::checkpoint_every = -1 # no checkpointing after the initial data
+
+IOBasic::outScalar_every = 1
+IOASCII::out1D_every = 5
+IOBasic::outInfo_every = 1
+
+IO::recover = "no"
+IO::verbose = "standard"
+
+IOBasic::outScalar_vars = "ADMAnalysis::grr ADMAonstraints::momx ADMAonstraints::ham"
+IOBasic::outInfo_vars = " admconstraints::ham ADMBase::alp "
+IOASCII::out1D_vars = " ADMAnalysis::grr ADMBase::gxx ADMBase::gyy ADMBase::gzz StaticConformal::psi ADMConstraints::momx ADMConstraints::ham "
+
+########################################
+
+#
+# AHFinderDirect
+#
+
+ActiveThorns = "LocalInterp PUGHInterp PUGHReduce AHFinderDirect"
+
+AHFinderDirect::find_AHs_at_postinitial = "true"
+AHFinderDirect::find_AHs_at_poststep = "false"
+AHFinderDirect::print_timing_stats = "true"
+##AHFinderDirect::verbose_level = "algorithm details"
+
+AHFinderDirect::h_base_file_name = "misner.h"
+
+AHFinderDirect::N_horizons = 2
+
+AHFinderDirect::origin_x[1] = 0.0
+AHFinderDirect::origin_y[1] = 0.0
+AHFinderDirect::origin_z[1] = 1.0
+AHFinderDirect::initial_guess_method[1] = "coordinate sphere"
+AHFinderDirect::initial_guess__coord_sphere__x_center[1] = 0.0
+AHFinderDirect::initial_guess__coord_sphere__y_center[1] = 0.0
+AHFinderDirect::initial_guess__coord_sphere__z_center[1] = 1.0
+AHFinderDirect::initial_guess__coord_sphere__radius[1] = 0.4
+
+AHFinderDirect::origin_x[2] = 0.0
+AHFinderDirect::origin_y[2] = 0.0
+AHFinderDirect::origin_z[2] = 0.0
+AHFinderDirect::initial_guess_method[2] = "coordinate ellipsoid"
+AHFinderDirect::initial_guess__coord_ellipsoid__x_center[2] = 0.0
+AHFinderDirect::initial_guess__coord_ellipsoid__y_center[2] = 0.0
+AHFinderDirect::initial_guess__coord_ellipsoid__z_center[2] = 0.0
+AHFinderDirect::initial_guess__coord_ellipsoid__x_radius[2] = 0.8
+AHFinderDirect::initial_guess__coord_ellipsoid__y_radius[2] = 0.8
+AHFinderDirect::initial_guess__coord_ellipsoid__z_radius[2] = 1.4
diff --git a/src/driver/Newton.cc b/src/driver/Newton.cc
index 2cde6c5..f6984ad 100644
--- a/src/driver/Newton.cc
+++ b/src/driver/Newton.cc
@@ -281,7 +281,8 @@ if (hs.has_genuine_horizons())
compute_BH_diagnostics(*ps_ptr, BH_diagnostics_info,
verbose_info,
AH_info_ptr->BH_diagnostics);
- // FIXME: see header comment
+ // FIXME: see header comment -- user probably won't see
+ // this for my_proc != 0 in a multiprocessor run
print_BH_diagnostics(AH_info_ptr->BH_diagnostics,
N_horizons, hn,
verbose_info);
@@ -560,11 +561,15 @@ void print_Theta_norms
{
for (int proc = 0 ; proc < N_active_procs ; ++proc)
{
- CCTK_VInfo(CCTK_THORNSTRING,
+ if (hn_buffer[proc] == 0)
+ then CCTK_VInfo(CCTK_THORNSTRING,
+ " proc %d/dummy horizon",
+ proc);
+ else CCTK_VInfo(CCTK_THORNSTRING,
" proc %d/horizon %d/it %d |Theta| rms=%.1e inf=%.1e",
- proc, hn_buffer[proc], iteration_buffer[proc],
- double(rms_norm_buffer[proc]),
- double(infinity_norm_buffer[proc]));
+ proc, hn_buffer[proc], iteration_buffer[proc],
+ double(rms_norm_buffer[proc]),
+ double(infinity_norm_buffer[proc]));
}
}
}