aboutsummaryrefslogtreecommitdiff
path: root/src/driver/setup.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/driver/setup.cc')
-rw-r--r--src/driver/setup.cc179
1 files changed, 128 insertions, 51 deletions
diff --git a/src/driver/setup.cc b/src/driver/setup.cc
index c8ce8cc..79f34b3 100644
--- a/src/driver/setup.cc
+++ b/src/driver/setup.cc
@@ -85,6 +85,133 @@ enum patch_system::patch_system_type
fp origin_x, fp origin_y, fp origin_z);
}
+void set_initial_guess_parameters(struct AH_data& AH_data, const int hn,
+ const fp ini_origin_x, const fp ini_origin_y, const fp ini_origin_z);
+
+
+
+
+
+//******************************************************************************
+
+//
+// This function is used to setup initial guesses either from
+// the corresponding parameters, or from a custom ini_origin_*.
+// The latter is necessary when tracking with a grid scalar.
+//
+//
+
+void set_initial_guess_parameters(struct AH_data& AH_data, const int hn,
+ const fp ini_origin_x, const fp ini_origin_y, const fp ini_origin_z)
+{
+DECLARE_CCTK_PARAMETERS;
+
+ AH_data.initial_guess_info.method
+ = decode_initial_guess_method(initial_guess_method[hn]);
+ AH_data.initial_guess_info.reset_horizon_after_not_finding
+ = reset_horizon_after_not_finding[hn];
+ // ... read from named file
+ AH_data.initial_guess_info.read_from_named_file_info.file_name
+ = initial_guess__read_from_named_file__file_name[hn];
+
+if (!track_origin_from_grid_scalar[hn]) {
+
+ // ... Kerr/Kerr
+ AH_data.initial_guess_info.Kerr_Kerr_info.x_posn
+ = initial_guess__Kerr_Kerr__x_posn[hn];
+ AH_data.initial_guess_info.Kerr_Kerr_info.y_posn
+ = initial_guess__Kerr_Kerr__y_posn[hn];
+ AH_data.initial_guess_info.Kerr_Kerr_info.z_posn
+ = initial_guess__Kerr_Kerr__z_posn[hn];
+ AH_data.initial_guess_info.Kerr_Kerr_info.mass
+ = initial_guess__Kerr_Kerr__mass[hn];
+ AH_data.initial_guess_info.Kerr_Kerr_info.spin
+ = initial_guess__Kerr_Kerr__spin[hn];
+ // ... Kerr/Kerr-Schild
+ AH_data.initial_guess_info.Kerr_KerrSchild_info.x_posn
+ = initial_guess__Kerr_KerrSchild__x_posn[hn];
+ AH_data.initial_guess_info.Kerr_KerrSchild_info.y_posn
+ = initial_guess__Kerr_KerrSchild__y_posn[hn];
+ AH_data.initial_guess_info.Kerr_KerrSchild_info.z_posn
+ = initial_guess__Kerr_KerrSchild__z_posn[hn];
+ AH_data.initial_guess_info.Kerr_KerrSchild_info.mass
+ = initial_guess__Kerr_KerrSchild__mass[hn];
+ AH_data.initial_guess_info.Kerr_KerrSchild_info.spin
+ = initial_guess__Kerr_KerrSchild__spin[hn];
+ // ... coordinate sphere
+ AH_data.initial_guess_info.coord_sphere_info.x_center
+ = initial_guess__coord_sphere__x_center[hn];
+ AH_data.initial_guess_info.coord_sphere_info.y_center
+ = initial_guess__coord_sphere__y_center[hn];
+ AH_data.initial_guess_info.coord_sphere_info.z_center
+ = initial_guess__coord_sphere__z_center[hn];
+ AH_data.initial_guess_info.coord_sphere_info.radius
+ = initial_guess__coord_sphere__radius[hn];
+ // ... coordinate ellipsoid
+ AH_data.initial_guess_info.coord_ellipsoid_info.x_center
+ = initial_guess__coord_ellipsoid__x_center[hn];
+ AH_data.initial_guess_info.coord_ellipsoid_info.y_center
+ = initial_guess__coord_ellipsoid__y_center[hn];
+ AH_data.initial_guess_info.coord_ellipsoid_info.z_center
+ = initial_guess__coord_ellipsoid__z_center[hn];
+ AH_data.initial_guess_info.coord_ellipsoid_info.x_radius
+ = initial_guess__coord_ellipsoid__x_radius[hn];
+ AH_data.initial_guess_info.coord_ellipsoid_info.y_radius
+ = initial_guess__coord_ellipsoid__y_radius[hn];
+ AH_data.initial_guess_info.coord_ellipsoid_info.z_radius
+ = initial_guess__coord_ellipsoid__z_radius[hn];
+
+} else {
+
+ // ... Kerr/Kerr
+ AH_data.initial_guess_info.Kerr_Kerr_info.x_posn
+ = ini_origin_x;
+ AH_data.initial_guess_info.Kerr_Kerr_info.y_posn
+ = ini_origin_y;
+ AH_data.initial_guess_info.Kerr_Kerr_info.z_posn
+ = ini_origin_z;
+ AH_data.initial_guess_info.Kerr_Kerr_info.mass
+ = initial_guess__Kerr_Kerr__mass[hn];
+ AH_data.initial_guess_info.Kerr_Kerr_info.spin
+ = initial_guess__Kerr_Kerr__spin[hn];
+ // ... Kerr/Kerr-Schild
+ AH_data.initial_guess_info.Kerr_KerrSchild_info.x_posn
+ = ini_origin_x;
+ AH_data.initial_guess_info.Kerr_KerrSchild_info.y_posn
+ = ini_origin_y;
+ AH_data.initial_guess_info.Kerr_KerrSchild_info.z_posn
+ = ini_origin_z;
+ AH_data.initial_guess_info.Kerr_KerrSchild_info.mass
+ = initial_guess__Kerr_KerrSchild__mass[hn];
+ AH_data.initial_guess_info.Kerr_KerrSchild_info.spin
+ = initial_guess__Kerr_KerrSchild__spin[hn];
+ // ... coordinate sphere
+ AH_data.initial_guess_info.coord_sphere_info.x_center
+ = ini_origin_x;
+ AH_data.initial_guess_info.coord_sphere_info.y_center
+ = ini_origin_y;
+ AH_data.initial_guess_info.coord_sphere_info.z_center
+ = ini_origin_z;
+ AH_data.initial_guess_info.coord_sphere_info.radius
+ = initial_guess__coord_sphere__radius[hn];
+ // ... coordinate ellipsoid
+ AH_data.initial_guess_info.coord_ellipsoid_info.x_center
+ = ini_origin_x;
+ AH_data.initial_guess_info.coord_ellipsoid_info.y_center
+ = ini_origin_y;
+ AH_data.initial_guess_info.coord_ellipsoid_info.z_center
+ = ini_origin_z;
+ AH_data.initial_guess_info.coord_ellipsoid_info.x_radius
+ = initial_guess__coord_ellipsoid__x_radius[hn];
+ AH_data.initial_guess_info.coord_ellipsoid_info.y_radius
+ = initial_guess__coord_ellipsoid__y_radius[hn];
+ AH_data.initial_guess_info.coord_ellipsoid_info.z_radius
+ = initial_guess__coord_ellipsoid__z_radius[hn];
+
+}
+
+}
+
//******************************************************************************
//
@@ -591,57 +718,7 @@ if (strlen(surface_interpolator_name) > 0)
if (verbose_info.print_algorithm_details)
then CCTK_VInfo(CCTK_THORNSTRING,
" setting initial guess parameters etc");
- AH_data.initial_guess_info.method
- = decode_initial_guess_method(initial_guess_method[hn]);
- AH_data.initial_guess_info.reset_horizon_after_not_finding
- = reset_horizon_after_not_finding[hn];
- // ... read from named file
- AH_data.initial_guess_info.read_from_named_file_info.file_name
- = initial_guess__read_from_named_file__file_name[hn];
- // ... Kerr/Kerr
- AH_data.initial_guess_info.Kerr_Kerr_info.x_posn
- = initial_guess__Kerr_Kerr__x_posn[hn];
- AH_data.initial_guess_info.Kerr_Kerr_info.y_posn
- = initial_guess__Kerr_Kerr__y_posn[hn];
- AH_data.initial_guess_info.Kerr_Kerr_info.z_posn
- = initial_guess__Kerr_Kerr__z_posn[hn];
- AH_data.initial_guess_info.Kerr_Kerr_info.mass
- = initial_guess__Kerr_Kerr__mass[hn];
- AH_data.initial_guess_info.Kerr_Kerr_info.spin
- = initial_guess__Kerr_Kerr__spin[hn];
- // ... Kerr/Kerr-Schild
- AH_data.initial_guess_info.Kerr_KerrSchild_info.x_posn
- = initial_guess__Kerr_KerrSchild__x_posn[hn];
- AH_data.initial_guess_info.Kerr_KerrSchild_info.y_posn
- = initial_guess__Kerr_KerrSchild__y_posn[hn];
- AH_data.initial_guess_info.Kerr_KerrSchild_info.z_posn
- = initial_guess__Kerr_KerrSchild__z_posn[hn];
- AH_data.initial_guess_info.Kerr_KerrSchild_info.mass
- = initial_guess__Kerr_KerrSchild__mass[hn];
- AH_data.initial_guess_info.Kerr_KerrSchild_info.spin
- = initial_guess__Kerr_KerrSchild__spin[hn];
- // ... coordinate sphere
- AH_data.initial_guess_info.coord_sphere_info.x_center
- = initial_guess__coord_sphere__x_center[hn];
- AH_data.initial_guess_info.coord_sphere_info.y_center
- = initial_guess__coord_sphere__y_center[hn];
- AH_data.initial_guess_info.coord_sphere_info.z_center
- = initial_guess__coord_sphere__z_center[hn];
- AH_data.initial_guess_info.coord_sphere_info.radius
- = initial_guess__coord_sphere__radius[hn];
- // ... coordinate ellipsoid
- AH_data.initial_guess_info.coord_ellipsoid_info.x_center
- = initial_guess__coord_ellipsoid__x_center[hn];
- AH_data.initial_guess_info.coord_ellipsoid_info.y_center
- = initial_guess__coord_ellipsoid__y_center[hn];
- AH_data.initial_guess_info.coord_ellipsoid_info.z_center
- = initial_guess__coord_ellipsoid__z_center[hn];
- AH_data.initial_guess_info.coord_ellipsoid_info.x_radius
- = initial_guess__coord_ellipsoid__x_radius[hn];
- AH_data.initial_guess_info.coord_ellipsoid_info.y_radius
- = initial_guess__coord_ellipsoid__y_radius[hn];
- AH_data.initial_guess_info.coord_ellipsoid_info.z_radius
- = initial_guess__coord_ellipsoid__z_radius[hn];
+ set_initial_guess_parameters(AH_data, hn, /* irrelevant here; leave at zero */0, 0, 0);
}
AH_data.search_flag = false;