aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5>2002-11-15 15:13:57 +0000
committerjthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5>2002-11-15 15:13:57 +0000
commitc6f79b96c5c07f518dd8bbfd2829dda289be25cb (patch)
tree2235a15480838e46420d0f6f34db175441894c3d /src
parent998e71cd3357c649978ccf012e6b8f990be9b2bf (diff)
rename parameter surface_integral_method to integral_method
add support for computing BH circumferences in xy, xz, yz planes as requested by Ed recently git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/AHFinderDirect/trunk@893 f88db872-0e4f-0410-b76b-b9085cfa78c5
Diffstat (limited to 'src')
-rw-r--r--src/driver/driver.hh5
-rw-r--r--src/driver/find_horizons.cc28
-rw-r--r--src/driver/initial_guess.cc2
-rw-r--r--src/driver/io.cc36
-rw-r--r--src/driver/setup.cc4
5 files changed, 49 insertions, 26 deletions
diff --git a/src/driver/driver.hh b/src/driver/driver.hh
index 53526a5..d152ae3 100644
--- a/src/driver/driver.hh
+++ b/src/driver/driver.hh
@@ -99,7 +99,7 @@ struct solver_info
//
struct BH_diagnostics_info
{
- enum patch::integration_method surface_integral_method;
+ enum patch::integration_method integral_method;
};
//******************************************************************************
@@ -168,8 +168,9 @@ struct verbose_info
struct BH_diagnostics
{
fp centroid_x, centroid_y, centroid_z;
- fp area;
fp mean_radius;
+ fp circumference_xy, circumference_xz, circumference_yz;
+ fp area;
fp m_irreducible;
};
diff --git a/src/driver/find_horizons.cc b/src/driver/find_horizons.cc
index 0dd4356..35b5085 100644
--- a/src/driver/find_horizons.cc
+++ b/src/driver/find_horizons.cc
@@ -578,15 +578,15 @@ void compute_BH_diagnostics
// compute raw surface integrals
//
fp integral_one = surface_integral(ps, gfns::gfn__one,
- BH_diagnostics_info.surface_integral_method);
+ BH_diagnostics_info.integral_method);
fp integral_h = surface_integral(ps, gfns::gfn__h,
- BH_diagnostics_info.surface_integral_method);
+ BH_diagnostics_info.integral_method);
fp integral_x = surface_integral(ps, gfns::gfn__global_x,
- BH_diagnostics_info.surface_integral_method);
+ BH_diagnostics_info.integral_method);
fp integral_y = surface_integral(ps, gfns::gfn__global_y,
- BH_diagnostics_info.surface_integral_method);
+ BH_diagnostics_info.integral_method);
fp integral_z = surface_integral(ps, gfns::gfn__global_z,
- BH_diagnostics_info.surface_integral_method);
+ BH_diagnostics_info.integral_method);
//
// adjust integrals to take into account patch system not covering full sphere
@@ -639,6 +639,24 @@ BH_diagnostics.centroid_y = integral_y / integral_one;
BH_diagnostics.centroid_z = integral_z / integral_one;
BH_diagnostics.area = integral_one;
+BH_diagnostics.circumference_xy = ps.xy_circumference
+ (gfns::gfn__h,
+ gfns::gfn__g_dd_11, gfns::gfn__g_dd_12, gfns::gfn__g_dd_13,
+ gfns::gfn__g_dd_22, gfns::gfn__g_dd_23,
+ gfns::gfn__g_dd_33,
+ BH_diagnostics_info.integral_method);
+BH_diagnostics.circumference_xz = ps.xz_circumference
+ (gfns::gfn__h,
+ gfns::gfn__g_dd_11, gfns::gfn__g_dd_12, gfns::gfn__g_dd_13,
+ gfns::gfn__g_dd_22, gfns::gfn__g_dd_23,
+ gfns::gfn__g_dd_33,
+ BH_diagnostics_info.integral_method);
+BH_diagnostics.circumference_yz = ps.yz_circumference
+ (gfns::gfn__h,
+ gfns::gfn__g_dd_11, gfns::gfn__g_dd_12, gfns::gfn__g_dd_13,
+ gfns::gfn__g_dd_22, gfns::gfn__g_dd_23,
+ gfns::gfn__g_dd_33,
+ BH_diagnostics_info.integral_method);
BH_diagnostics.mean_radius = integral_h / integral_one;
BH_diagnostics.m_irreducible = sqrt(BH_diagnostics.area / (16.0*PI));
}
diff --git a/src/driver/initial_guess.cc b/src/driver/initial_guess.cc
index 369aaeb..eafadaf 100644
--- a/src/driver/initial_guess.cc
+++ b/src/driver/initial_guess.cc
@@ -76,7 +76,7 @@ void setup_initial_guess(patch_system& ps,
{
if (verbose_info.print_algorithm_highlights)
then CCTK_VInfo(CCTK_THORNSTRING,
- "setting initial guess for horizon %d of %d",
+ "setting initial guess for horizon %d/%d",
hn, N_horizons);
switch (igi.method)
diff --git a/src/driver/io.cc b/src/driver/io.cc
index 1cad171..e4c0ee7 100644
--- a/src/driver/io.cc
+++ b/src/driver/io.cc
@@ -268,7 +268,7 @@ if (Jac_SD_FDdr != NULL)
then continue; // skip zero values (if == )
fprintf(fileptr,
- "%s %d %d %d %d\t%s %d %d %d %d\t%.10g",
+ "%s %d %d %d %d\t%s %d %d %d %d\t%#.10g",
xp.name(), xpn, x_irho, x_isigma, II,
yp.name(), ypn, y_irho, y_isigma, JJ,
double(NP));
@@ -282,7 +282,7 @@ if (Jac_SD_FDdr != NULL)
const fp SD_FDdr_rel_error = SD_FDdr_abs_error / max_abs;
fprintf(fileptr,
- "\t%.10g\t%e\t%e",
+ "\t%#.10g\t%e\t%e",
double(SD_FDdr),
double(SD_FDdr_abs_error), double(SD_FDdr_rel_error));
}
@@ -345,7 +345,7 @@ if (fileptr == NULL)
,
file_name_buffer); /*NOTREACHED*/
-fprintf(fileptr, "# apparent horizon %d of %d\n", hn, N_horizons);
+fprintf(fileptr, "# apparent horizon %d/%d\n", hn, N_horizons);
fprintf(fileptr, "#\n");
fprintf(fileptr, "# column 1 = cctk_iteration\n");
fprintf(fileptr, "# column 2 = cctk_time\n");
@@ -353,8 +353,11 @@ fprintf(fileptr, "# column 3 = centroid_x\n");
fprintf(fileptr, "# column 4 = centroid_y\n");
fprintf(fileptr, "# column 5 = centroid_z\n");
fprintf(fileptr, "# column 6 = mean radius\n");
-fprintf(fileptr, "# column 7 = area\n");
-fprintf(fileptr, "# column 8 = m_irreducible\n");
+fprintf(fileptr, "# column 7 = xy-plane circumference\n");
+fprintf(fileptr, "# column 8 = xz-plane circumference\n");
+fprintf(fileptr, "# column 9 = yz-plane circumference\n");
+fprintf(fileptr, "# column 10 = area\n");
+fprintf(fileptr, "# column 11 = m_irreducible\n");
fflush(fileptr);
return fileptr;
@@ -381,18 +384,19 @@ void output_BH_diagnostics_fn(const struct BH_diagnostics& BH_diagnostics,
{
assert(fileptr != NULL);
-// cctk_iteration
-// == cctk_time
-// == ==== centroid_[xyz]
-// == ==== ========== mean_radius
-// == ==== ========== ===== area m_irreducible
-// == ==== ========== ===== ===== ====
-fprintf(fileptr, "%d\t%.3f\t%f\t%f\t%f\t%.10g\t%.10g\t%.10g\n",
+fprintf(fileptr,
+// cctk_iteration mean radius area m_irreducible
+// == cctk_time ====== {xy,xz,yz}-plane ====== ======
+// == ==== centroid_[xyz] circumferences ====== ======
+// == ==== ========== ====== ====================== ====== ======
+ "%d\t%.3f\t%f\t%f\t%f\t%#.10g\t%#.10g\t%#.10g\t%#.10g\t%#.10g\t%#.10g\n",
IO_info.time_iteration, double(IO_info.time),
- BH_diagnostics.centroid_x,
- BH_diagnostics.centroid_y,
- BH_diagnostics.centroid_z,
- BH_diagnostics.mean_radius, BH_diagnostics.area,
+ BH_diagnostics.centroid_x, BH_diagnostics.centroid_y,
+ BH_diagnostics.centroid_z,
+ BH_diagnostics.mean_radius,
+ BH_diagnostics.circumference_xy, BH_diagnostics.circumference_xz,
+ BH_diagnostics.circumference_yz,
+ BH_diagnostics.area,
BH_diagnostics.m_irreducible);
fflush(fileptr);
diff --git a/src/driver/setup.cc b/src/driver/setup.cc
index abff95f..033cbce 100644
--- a/src/driver/setup.cc
+++ b/src/driver/setup.cc
@@ -224,8 +224,8 @@ gi.check_that_geometry_is_finite = (check_that_geometry_is_finite != 0);
//
// other misc setup
//
-state.BH_diagnostics_info.surface_integral_method
- = patch::decode_integration_method(surface_integral_method);
+state.BH_diagnostics_info.integral_method
+ = patch::decode_integration_method(integral_method);
//