diff options
Diffstat (limited to 'src/gr/gr.hh')
-rw-r--r-- | src/gr/gr.hh | 75 |
1 files changed, 72 insertions, 3 deletions
diff --git a/src/gr/gr.hh b/src/gr/gr.hh index 00f106c..3564438 100644 --- a/src/gr/gr.hh +++ b/src/gr/gr.hh @@ -1,3 +1,4 @@ + // gr.hh -- header file for general relativity code // $Header$ @@ -14,6 +15,68 @@ namespace AHFinderDirect enum { N_GRID_DIMS = 3, N_HORIZON_DIMS = 2 }; // +// this enum specifies what kind of surface we want +// +enum a_surface_definition + { + definition_error, // this value is illegal + definition_expansion, // apparent horizon + definition_inner_expansion, // expansion Theta_(l), ingoing null normal + definition_mean_curvature, // mean curvature + definition_expansion_product // product of Theta_(n) and Theta_(l) + }; + +// +// this enum specifies how the surface definition is modified +// +enum a_surface_modification + { + modification_error, // this value is illegal + modification_none, // no modification + modification_radius, // times coordinate radius + modification_radius2 // times coordinate radius^2 +#if 0 + modification_mean_radius, // times mean coordinate radius + modification_areal_radius // times areal radius +#endif + }; + +// +// this enum specifies how we select the surface +// +enum a_surface_selection + { + selection_error, // this value is illegal + selection_definition, // use the surface's definition + selection_mean_coordinate_radius, // mean coordinate radius (cheap) + selection_areal_radius, // areal radius + selection_expansion_mean_coordinate_radius, // expansion times mean coordinate radius + selection_expansion_areal_radius // expansion times areal radius + }; + +// +// this struct specifies what to calculate +// +struct what_to_compute + { + // how Theta is calculated + a_surface_definition surface_definition; + // how Theta is modified + a_surface_modification surface_modification; + // what is solved for + a_surface_selection surface_selection; + // the desired value (expansion, areal radius, etc.) + fp desired_value; + + what_to_compute () + : surface_definition (definition_error), + surface_modification (modification_error), + surface_selection (selection_error), + desired_value (0.0) + { } + }; + +// // this enum holds the (a) decoded Jacobian_compute_method parameter, // i.e. it specifies how we compute the (a) Jacobian matrix // @@ -76,6 +139,7 @@ struct cactus_grid_info bool use_Cactus_conformal_metric; // Cactus variable indices of geometry variables + int mask_varindex; int g_dd_11_varindex, g_dd_12_varindex, g_dd_13_varindex, g_dd_22_varindex, g_dd_23_varindex, g_dd_33_varindex; @@ -169,18 +233,23 @@ struct error_info // expansion.cc enum expansion_status - expansion(patch_system* ps_ptr, fp add_to_expansion, + expansion(patch_system* ps_ptr, + const struct what_to_compute& comput_info, const struct cactus_grid_info& cgi, const struct geometry_info& gi, const struct error_info& error_info, bool initial_flag, bool Jacobian_flag = false, bool print_msg_flag = false, - jtutil::norm<fp>* H_norms_ptr = NULL); + jtutil::norm<fp>* H_norms_ptr = NULL, + jtutil::norm<fp>* expansion_H_norms_ptr = NULL, + jtutil::norm<fp>* inner_expansion_H_norms_ptr = NULL, + jtutil::norm<fp>* product_expansion_H_norms_ptr = NULL, + jtutil::norm<fp>* mean_curvature_H_norms_ptr = NULL); // expansion_Jacobian.cc enum expansion_status expansion_Jacobian(patch_system* ps_ptr, Jacobian* Jac_ptr, - fp add_to_expansion, + const struct what_to_compute& comput_info, const struct cactus_grid_info& cgi, const struct geometry_info& gi, const struct Jacobian_info& Jacobian_info, |