osculating_schwarzschild Module

Module that defines an equation class for evolving the geodesic equations using the osculating orbits framework with forcing in a Schwarzschild spacetime.

The implementation is found in submodule_osc_schw_implementation.f90.


Uses

  • module~~osculating_schwarzschild~~UsesGraph module~osculating_schwarzschild osculating_schwarzschild module~ode_equations ode_equations module~osculating_schwarzschild->module~ode_equations module~kinds kinds module~osculating_schwarzschild->module~kinds module~ode_equations->module~kinds module~equations equations module~ode_equations->module~equations module~equations->module~kinds

Used by

  • module~~osculating_schwarzschild~~UsedByGraph module~osculating_schwarzschild osculating_schwarzschild module~osculating_schwarzschild_implementation osculating_schwarzschild_implementation module~osculating_schwarzschild_implementation->module~osculating_schwarzschild program~test test program~test->module~osculating_schwarzschild

Contents


Interfaces

interface

  • public module subroutine osc_schw_init(this)

    The interface for the geod_schw version of init. This interface is consistent with eq_init_interface.

    Arguments

    Type IntentOptional AttributesName
    class(osc_schw), intent(inout), target:: this

    The equation that is being initialized.

interface

  • public module subroutine osc_schw_rhs(this)

    The interface for the geod_schw version of rhs. This interface is consistent with eq_rhs_interface.

    Arguments

    Type IntentOptional AttributesName
    class(osc_schw), intent(inout) :: this

    The equation for which the RHS is calculated.

interface

  • public module subroutine osc_schw_output(this)

    The interface for the geod_schw version of output. This interface is consistent with eq_output.

    Arguments

    Type IntentOptional AttributesName
    class(osc_schw), intent(inout) :: this

    The routine is called on this equation.

interface

interface

interface

interface

  • public module subroutine calc_dependent(this)

    The interface for the calc_dependent routine that calculates

    Arguments

    Type IntentOptional AttributesName
    class(osc_schw), intent(inout) :: this

    The routine is called on this equation.

interface

  • public module subroutine close_osc_schw(this)

    The interface for the close_geod_schw routine that provides a finalizer.

    Arguments

    Type IntentOptional AttributesName
    type(osc_schw) :: this

    The equation that is being finalized.


Derived Types

type, public, extends(ode_equation) :: osc_schw

A class that defines the osculating orbit evolution equations for a particle !! moving in a Schwarzschild spacetime.

Read more…

Components

TypeVisibility AttributesNameInitial
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 :: r

The radial coordinate in Schwarzschild coordinates, .

real(kind=wp), public :: d2chidt2

The second time derivative of .

real(kind=wp), public :: drdt

The time derivative of .

real(kind=wp), public :: d2rdt2

The second time derivative of .

real(kind=wp), public :: w

The value of at periapsis.

real(kind=wp), public :: mass

Local copy of the run time parameter setting the black hole mass, .

real(kind=wp), public :: ur

The radial component of the 4-velocity, . Needed for the effective source.

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 .

Finalizations Procedures

final :: close_osc_schw

The finalizer.

Type-Bound Procedures

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 => osc_schw_init

The init routine is provided by osc_schw_init.

procedure, public :: rhs => osc_schw_rhs

The rhs routine is provided by osc_schw_rhs.

procedure, public :: output => osc_schw_output

The output routine is provided by osc_schw_output.

procedure, public :: save_globals_1 => osc_schw_save_globals_1

The save_globals_1 routine is provided by geod_schw_save_globals_1.

procedure, public :: save_globals_2 => osc_schw_save_globals_2

The save_globals_2 routine is provided by geod_schw_save_globals_2.

procedure, public :: load_globals => osc_schw_load_globals

The load_globals routine is provided by geod_schw_load_globals.

procedure, public :: calc_dependent

A routine for calculating the dependent from the evolved variables.