diff options
author | jthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5> | 2002-07-26 14:57:48 +0000 |
---|---|---|
committer | jthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5> | 2002-07-26 14:57:48 +0000 |
commit | 720ce53a79ef5bdff53b3db18bc45c46101aa0fa (patch) | |
tree | 5e15ab1aa1346cdbe63a8dd3e8cad3010d438827 /src/gr/AHFinderDirect.hh | |
parent | 625a1471be9b782048d0db40fec675bee6bca0a4 (diff) |
re-sync changes from laptop
- parameter to control how Jacobian is computed
- can hardwire geometry to Schwarzschild/EF
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/AHFinderDirect/trunk@661 f88db872-0e4f-0410-b76b-b9085cfa78c5
Diffstat (limited to 'src/gr/AHFinderDirect.hh')
-rw-r--r-- | src/gr/AHFinderDirect.hh | 80 |
1 files changed, 57 insertions, 23 deletions
diff --git a/src/gr/AHFinderDirect.hh b/src/gr/AHFinderDirect.hh index ac79f14..403ea39 100644 --- a/src/gr/AHFinderDirect.hh +++ b/src/gr/AHFinderDirect.hh @@ -3,20 +3,57 @@ //****************************************************************************** +// // number of spatial dimensions in the main Cactus grid // and in our trial-horizon-surface grid +// enum { N_GRID_DIMS = 3, N_HORIZON_DIMS = 2 }; // -// This structure holds various information about the interpolator -// used to interpolate the "geometry" Cactus 3-D gridfns ($g_{ij}$ and -// $K_{ij}$) to the apparent horizon position. +// this enum holds the (a) decoded Jacobian_method parameter, +// i.e. it specifies how we compute the (a) Jacobian matrix // -struct geometry_interpolator_info +enum Jacobian_method { + numerical_perturbation, + symbolic_differentiation_with_FD_dr, + symbolic_differentiation // no comma + }; + + +// +// This structure holds information for computing the spacetime geometry. +// This is normally done by interpolating $g_{ij}$ and $K_{ij}$ from the +// usual Cactus grid, but can optionally instead by done by hard-wiring +// the Schwarzschild geometry in Eddington-Finkelstein coordinates. +// +struct geometry_info + { + // + // parameters for hard-wiring Schwarzschild/EF geometry + // + bool hardwire_Schwarzschild_EF; // should we hard-wire the + // Schwarzschild/EF geometry? + fp hardwire_Schwarzschild_EF__x_posn; // x posn of Schwarzschild BH + fp hardwire_Schwarzschild_EF__y_posn; // y posn of Schwarzschild BH + fp hardwire_Schwarzschild_EF__z_posn; // z posn of Schwarzschild BH + fp hardwire_Schwarzschild_EF__mass; // mass of Schwarzschild BH + fp hardwire_Schwarzschild_EF__epsilon; // threshold for sin^2 theta + // = (x^2+y^2)/r^2 below which + // we use z axis limits + fp Delta_xyz; // pseudo-grid spacing for finite differencing + // computation of $\partial_k g_{ij}$ + + // + // parameters for normal interpolation from Cactus grid + // int operator_handle; // Cactus handle to interpolation op int param_table_handle; // Cactus handle to parameter table // for the interpolator + + // this doesn't really belong in this structure (it doesn't + // have any logical connection to the geometry calculations), + // but it's convenient to put it here anyway... }; // @@ -56,17 +93,16 @@ struct cactus_grid_info }; // -// This struct holds the various parameters used in computing the Jacobian -// matrix. +// This struct holds parameters for computing the Jacobian matrix. // struct Jacobian_info { + enum Jacobian_method Jacobian_method; fp perturbation_amplitude; }; // -// This struct holds the various parameters used in solving the H(h) = 0 -// equations. +// This struct holds parameters for solving the H(h) = 0 equations. // struct solver_info { @@ -89,30 +125,28 @@ extern "C" // horizon_function.cc void horizon_function(patch_system& ps, const struct cactus_grid_info& cgi, - const struct geometry_interpolator_info& gii, - bool Jacobian_flag, - jtutil::norm<fp>* H_norms_ptr, - bool msg_flag = true); + const struct geometry_info& gi, + bool Jacobian_flag = false, + bool msg_flag = false, + jtutil::norm<fp>* H_norms_ptr = NULL); // horizon_Jacobian.cc -Jacobian& create_Jacobian(patch_system& ps, - const char Jacobian_type[]); void horizon_Jacobian(patch_system& ps, const struct cactus_grid_info& cgi, - const struct geometry_interpolator_info& gii, - const struct Jacobian_info& Jac_info, + const struct geometry_info& gi, + const struct Jacobian_info& Jacobian_info, Jacobian& Jac); -void horizon_Jacobian_NP(patch_system& ps, - const struct cactus_grid_info& cgi, - const struct geometry_interpolator_info& gii, - const struct Jacobian_info& Jac_info, - Jacobian& Jac); + +// Schwarzschild_EF.cc +void Schwarzschild_EF_geometry(patch_system& ps, + const struct geometry_info& gi, + bool msg_flag); // Newton.cc // return true for success, false for failure to converge bool Newton_solve(patch_system& ps, const struct cactus_grid_info& cgi, - const struct geometry_interpolator_info& gii, - const struct Jacobian_info& Jac_info, + const struct geometry_info& gi, + const struct Jacobian_info& Jacobian_info, const struct solver_info& solver_info, Jacobian& Jac); |