orbit_base Module

Module that defines a global orbit object that can be used to pass information between different equations using the save_globals/load_globals mechanism.


Uses

  • module~~orbit_base~~UsesGraph module~orbit_base orbit_base module~kinds kinds module~orbit_base->module~kinds

Used by

  • module~~orbit_base~~UsedByGraph module~orbit_base orbit_base proc~geod_schw_load_globals geod_schw_load_globals proc~geod_schw_load_globals->module~orbit_base module~scalar_schw scalar_schw module~scalar_schw->module~orbit_base proc~co_save_globals_1 co_save_globals_1 proc~co_save_globals_1->module~orbit_base proc~tdc_set_coefficients tdc_set_coefficients proc~tdc_set_coefficients->module~orbit_base proc~sf_extract sf_extract proc~sf_extract->module~orbit_base proc~get_force get_force proc~get_force->module~orbit_base proc~osc_schw_save_globals_1 osc_schw_save_globals_1 proc~osc_schw_save_globals_1->module~orbit_base proc~geod_schw_save_globals_1 geod_schw_save_globals_1 proc~geod_schw_save_globals_1->module~orbit_base proc~scal_schw_eff_init scal_schw_eff_init proc~scal_schw_eff_init->module~scalar_schw module~scalar_schw_implementation scalar_schw_implementation module~scalar_schw_implementation->module~scalar_schw program~test test program~test->module~scalar_schw module~self_force_observer self_force_observer program~test->module~self_force_observer module~self_force_observer->module~scalar_schw proc~scal_schw_save_globals_2 scal_schw_save_globals_2 proc~scal_schw_save_globals_2->module~self_force_observer module~self_force_observer_implementation self_force_observer_implementation module~self_force_observer_implementation->module~self_force_observer

Contents


Variables

TypeVisibility AttributesNameInitial
type(g_orbit), public :: orbit_info

The global g_orbit object that is available by use association.

type(tdc_orbit), public :: tdc_info

The global tdc_orbit object that is available by use association.


Derived Types

type, public :: g_orbit

A global orbit type.

Components

TypeVisibility AttributesNameInitial
real(kind=wp), private :: r

The radial coordinate, (in Schwarzschild coordinates).

real(kind=wp), private :: phi

The azimuthal angle, .

real(kind=wp), private :: ur

The radial component of the 4-velocity, .

real(kind=wp), private :: En

The energy per unit mass of the orbit, .

real(kind=wp), private :: Lz

The angular momentum per unit mass of the orbit, .

real(kind=wp), private :: chi

The osculaing orbits parameter, that changes by over a full radial cycle.

Type-Bound Procedures

procedure, public :: set_orbit

Routine to set the g_orbit values.

procedure, public :: get_orbit

Routine to get the g_orbit values.

procedure, public :: get_chi

Routine to get alone.

type, public :: tdc_orbit

A global type with information needed by the time dependent coordinate transformation object.

Components

TypeVisibility AttributesNameInitial
real(kind=wp), private :: r

The radial coordinate, (in Schwarzschild coordinates).

real(kind=wp), private :: drdt

The time derivative of the radial coordinate, .

real(kind=wp), private :: d2rdt2

The second time derivative of the radial coordinate, .

Type-Bound Procedures

procedure, public :: set_tdc

Routine to set the tdc_orbit values.

procedure, public :: get_tdc

Routine to get the tdc_orbit values.


Subroutines

public subroutine set_orbit(this, r, phi, ur, En, Lz, chi)

Routine that sets all the orbit variables.

Arguments

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

The routine is called on this g_orbit object.

real(kind=wp), intent(in) :: r

The radial coordinate, (in Schwarzschild coordinates).

real(kind=wp), intent(in) :: phi

The azimuthal angle, .

real(kind=wp), intent(in) :: ur

The radial component of the 4-velocity, .

real(kind=wp), intent(in) :: En

The energy per unit mass of the orbit, .

real(kind=wp), intent(in) :: Lz

The angular momentum per unit mass of the orbit, .

real(kind=wp), intent(in) :: chi

The osculaing orbits parameter, that changes by over a full radial cycle.

public subroutine get_orbit(this, r, phi, ur, En, Lz)

Routine that gets all the orbit variables except for .

Arguments

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

The routine is called on this g_orbit object.

real(kind=wp), intent(out) :: r

The radial coordinate, (in Schwarzschild coordinates).

real(kind=wp), intent(out) :: phi

The azimuthal angle, .

real(kind=wp), intent(out) :: ur

The radial component of the 4-velocity, .

real(kind=wp), intent(out) :: En

The energy per unit mass of the orbit, .

real(kind=wp), intent(out) :: Lz

The angular momentum per unit mass of the orbit, .

public subroutine get_chi(this, chi)

Routine that gets .

Arguments

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

The routine is called on this g_orbit object.

real(kind=wp), intent(out) :: chi

The osculaing orbits parameter, that changes by over a full radial cycle.

public subroutine set_tdc(this, r, drdt, d2rdt2)

Arguments

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

The routine is called on this tdc_orbit object.

real(kind=wp), intent(in) :: r

The radial coordinate, (in Schwarzschild coordinates).

real(kind=wp), intent(in) :: drdt

The time derivative of the radial coordinate, .

real(kind=wp), intent(in) :: d2rdt2

The second time derivative of the radial coordinate, .

public subroutine get_tdc(this, r, drdt, d2rdt2)

Arguments

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

The routine is called on this tdc_orbit object.

real(kind=wp), intent(out) :: r

The radial coordinate, (in Schwarzschild coordinates).

real(kind=wp), intent(out) :: drdt

The time derivative of the radial coordinate, .

real(kind=wp), intent(out) :: d2rdt2

The second time derivative of the radial coordinate, .