self_force_observer Module

Module that defines the interface for a self-force observer class for a scalar charge in orbit around a Schwarzschild black hole, i.e. it provides extraction of the self-force from the variables in scalar_schw).

The implementation is found in submodule_self_force_observer_implementation.f90


Uses

  • module~~self_force_observer~~UsesGraph module~self_force_observer self_force_observer module~scalar_schw scalar_schw module~self_force_observer->module~scalar_schw module~observers observers module~self_force_observer->module~observers module~scalar_schw_eff scalar_schw_eff module~scalar_schw->module~scalar_schw_eff module~orbit_base orbit_base module~scalar_schw->module~orbit_base module~kinds kinds module~scalar_schw->module~kinds module~time_dependent_coordinate time_dependent_coordinate module~scalar_schw->module~time_dependent_coordinate module~grid_function grid_function module~scalar_schw->module~grid_function module~dg_structures DG_structures module~scalar_schw->module~dg_structures module~pde_equations pde_equations module~scalar_schw->module~pde_equations iso_c_binding iso_c_binding module~scalar_schw->iso_c_binding module~observers->module~kinds module~observers->module~grid_function module~scalar_schw_eff->module~kinds module~scalar_schw_eff->iso_c_binding module~effective_source effective_source module~scalar_schw_eff->module~effective_source module~orbit_base->module~kinds module~time_dependent_coordinate->module~kinds module~time_dependent_coordinate->module~grid_function module~grid_function->module~kinds module~element element module~grid_function->module~element module~dg_structures->module~kinds module~pde_equations->module~kinds module~pde_equations->module~grid_function module~equations equations module~pde_equations->module~equations module~element->module~kinds module~equations->module~kinds module~effective_source->module~kinds module~effective_source->module~grid_function module~effective_source->iso_c_binding module~world_tube world_tube module~effective_source->module~world_tube module~world_tube->module~kinds module~world_tube->module~grid_function

Used by

  • module~~self_force_observer~~UsedByGraph module~self_force_observer self_force_observer proc~scal_schw_save_globals_2 scal_schw_save_globals_2 proc~scal_schw_save_globals_2->module~self_force_observer program~test test program~test->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(sf_observer), public :: sfobs

Interfaces

interface

  • public module subroutine sf_init(this, rad, coord, object)

    The interface for the sf_observer version of init. This interface is consistent with obs_init_interface.

    Arguments

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

    The self-force observer that is being initialized.

    real(kind=wp), intent(in), dimension(:):: rad

    A 1d-array containing the radii where the observations have to be performed. Obviously it only makes sense to pass in the particle location.

    type(rgf), intent(in) :: coord

    A real grid function containing the coordinates of the grid.

    class(*), intent(in), target:: object

    The object on which observations have to be done. This has to be of type scal_schw.

interface

interface

interface

  • public module subroutine close_sf_observer(this)

    The interface for the finalizer.

    Arguments

    Type IntentOptional AttributesName
    type(sf_observer) :: this

    The self-force observer to be finalized.


Derived Types

type, public, extends(observer) :: sf_observer

A class that defines an observer of the self-force for a scalar charge in orbit around a Schwarzschild black hole.

Components

TypeVisibility AttributesNameInitial
integer(kind=ip), public :: nradii

The number of radii the observer should observe at.

integer(kind=ip), public :: ioo_id

The file unit number this observer should use for output.

character(len=:), public, allocatable:: vname

The name of the observer.

real(kind=wp), public, dimension(:), allocatable:: radii

A 1d-array containing the radii that the observer should observe at. On allocation the size is nradii.

integer(kind=ip), public, dimension(:), allocatable:: elem_index

A 1d-array containing the index of all the elements that contains radii.

integer(kind=ip), public, dimension(:), allocatable:: node_index

A 1d-array containing the node index within all the elements that contains radii.

type(scal_schw), public, pointer:: p

A pointer to the scal_schw equation that provides the data.

real(kind=wp), public, dimension(:), allocatable:: fl

The -modes of the regular field at the particle location.

real(kind=wp), public, dimension(:), allocatable:: ftl

The -modes of the time derivative of the regular field at the particle location.

real(kind=wp), public, dimension(:), allocatable:: fphil

The -modes of the derivative of the regular field at the particle location.

real(kind=wp), public, dimension(:), allocatable:: frl

The -modes of the radial derivative of the regular field at the particle location.

Finalizations Procedures

final :: close_sf_observer

The finalizer.

Type-Bound Procedures

procedure, public :: init => sf_init

The init routine is provided by sf_init

procedure, public :: extract => sf_extract

The extract routine is provided by sf_extract

procedure, public :: output => sf_output

The output routine is provided by sf_output