Module that defines an equation class for evolving the geodesic equations with forcing in a Schwarzschild spacetime.
The implementation is found in submodule_geod_schw_implementation.f90.
The interface for the geod_schw version of init. This interface is consistent with eq_init_interface.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(geod_schw), | intent(inout), | target | :: | this | The equation that is being initialized. |
The interface for the geod_schw version of rhs. This interface is consistent with eq_rhs_interface.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(geod_schw), | intent(inout) | :: | this | The equation for which the RHS is calculated. |
The interface for the geod_schw version of save_globals_1. This interface is consistent with eq_save_globals_1.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(geod_schw), | intent(inout) | :: | this | The routine is called on this equation. |
The interface for the geod_schw version of save_globals_2. This interface is consistent with eq_save_globals_2.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(geod_schw), | intent(inout) | :: | this | The routine is called on this equation. |
The interface for the geod_schw version of load_globals. This interface is consistent with eq_load_globals.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(geod_schw), | intent(inout) | :: | this | The routine is called on this equation. |
The interface for the close_geod_schw routine that provides a finalizer.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(geod_schw) | :: | this | The equation that is being finalized. |
A class that defines the geodesic evolution equations for a particle moving in a Schwarzschild spacetime.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=ip), | public | :: | ntmp | The number of temporary storage variables to allocate. |
|||
character(len=:), | public, | allocatable | :: | ename | The name of the system of equations |
||
integer(kind=ip), | public | :: | nvars | The number of variables in the ODE system. |
|||
real(kind=wp), | public, | dimension(:), allocatable | :: | var_data | A 1d array of reals that contains the data variables. |
||
real(kind=wp), | public, | dimension(:), allocatable | :: | rhs_data | A 1d array of reals that contains the RHS variables. |
||
real(kind=wp), | public, | dimension(:,:), allocatable | :: | tmp_data | A 2d array of reals that contains the temporary variables needed by the time integrator. |
||
integer(kind=ip), | public | :: | io_id | The file unit id used for output for this system of ODE's. |
|||
real(kind=wp), | public | :: | En | The orbital energy per unit mass. |
|||
real(kind=wp), | public | :: | Lz | The orbital angular momentum per unit mass. |
|||
real(kind=wp), | public | :: | e | The orbital eccentricity. |
|||
real(kind=wp), | public | :: | p | The orbital semi-latus rectum. |
|||
real(kind=wp), | public | :: | w | The value of at periapsis. |
|||
real(kind=wp), | public | :: | d2rdt2 | The second time derivative of the radial coordinate. Needed for the time dependent coordinate transformation. |
|||
real(kind=wp), | public, | dimension(4) | :: | force | The self-force or any external force . |
||
real(kind=wp), | public, | dimension(4) | :: | accel | The acceleration . |
||
real(kind=wp), | public | :: | udota | The dot-product of the 4-velocity and the force . |
final :: close_geod_schw | The finalizer. |
procedure, public :: set_to_zero => ode_set_to_zero | The set_to_zero routine is provided by ode_set_to_zero. |
procedure, public :: update_vars => ode_update_vars | The update_vars routine is provided by ode_update_vars. |
procedure, public :: print_data => ode_print_data | The print_data routine is provided by ode_print_data. |
procedure, public :: init => geod_schw_init | The init routine is provided by geod_schw_init. |
procedure, public :: rhs => geod_schw_rhs | The rhs routine is provided by geod_schw_rhs. |
procedure, public :: output => geod_schw_output | The output routine is provided by geod_schw_output. |
procedure, public :: save_globals_1 => geod_schw_save_globals_1 | The save_globals_1 routine is provided by geod_schw_save_globals_1. |
procedure, public :: save_globals_2 => geod_schw_save_globals_2 | The save_globals_2 routine is provided by geod_schw_save_globals_2. |
procedure, public :: load_globals => geod_schw_load_globals | The load_globals routine is provided by geod_schw_load_globals. |