geodesic_schwarzschild Module

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.


Uses

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

Used by

  • module~~geodesic_schwarzschild~~UsedByGraph module~geodesic_schwarzschild geodesic_schwarzschild module~geodesic_schwarzschild_implementation geodesic_schwarzschild_implementation module~geodesic_schwarzschild_implementation->module~geodesic_schwarzschild program~test test program~test->module~geodesic_schwarzschild

Contents


Interfaces

interface

  • public module subroutine geod_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(geod_schw), intent(inout), target:: this

    The equation that is being initialized.

interface

  • public module subroutine geod_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(geod_schw), intent(inout) :: this

    The equation for which the RHS is calculated.

interface

interface

interface

interface

  • public module subroutine geod_schw_output(this)

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

    Arguments

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

    The routine is called on this equation.

interface

  • public module subroutine close_geod_schw(this)

    The interface for the close_geod_schw routine that provides a finalizer.

    Arguments

    Type IntentOptional AttributesName
    type(geod_schw) :: this

    The equation that is being finalized.


Derived Types

type, public, extends(ode_equation) :: geod_schw

A class that defines the geodesic 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 :: 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 .

Finalizations Procedures

final :: close_geod_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 => 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.