diff options
author | jthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5> | 2002-11-15 15:13:57 +0000 |
---|---|---|
committer | jthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5> | 2002-11-15 15:13:57 +0000 |
commit | c6f79b96c5c07f518dd8bbfd2829dda289be25cb (patch) | |
tree | 2235a15480838e46420d0f6f34db175441894c3d /src | |
parent | 998e71cd3357c649978ccf012e6b8f990be9b2bf (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.hh | 5 | ||||
-rw-r--r-- | src/driver/find_horizons.cc | 28 | ||||
-rw-r--r-- | src/driver/initial_guess.cc | 2 | ||||
-rw-r--r-- | src/driver/io.cc | 36 | ||||
-rw-r--r-- | src/driver/setup.cc | 4 |
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); // |