self_force Derived Type

type, public :: self_force

A global self-force type.


Contents

Source Code


Components

TypeVisibility AttributesNameInitial
real(kind=wp), private, dimension(4):: f =0.0_wp

A 4-vector containing the components of the self-force, .

real(kind=wp), private, dimension(4):: a =0.0_wp

A 4-vector containing the components of the 4-acceleration, .

real(kind=wp), private, dimension(4):: da_dt =0.0_wp

A 4-vector containing the components of the coordinate time derivatives of the 4-acceleration, .

real(kind=wp), private, dimension(4):: d2a_dt2 =0.0_wp

A 4-vector containing the components of the second coordinate time derivatives of the 4-acceleration, .

real(kind=wp), private :: udota =0.0_wp

A scalar containing the inner product of the 4-velocity and the self-force .

integer(kind=ip), private :: ioo_id =-1

The file unit number used for output.


Type-Bound Procedures

procedure, public :: set_force

Routine to set the self-force values.

  • public subroutine set_force(this, ft, fr, ftheta, fphi)

    Routine that sets the self-force variable.

    Arguments

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

    The routine is called on this self_force object.

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

    The -component of the self-force, .

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

    The -component of the self-force, .

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

    The -component of the self-force, .

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

    The -component of the self-force, .

procedure, public :: get_force

Routine to get the self-force values.

  • public subroutine get_force(this, force)

    Routine that gets the self-force variable.

    Read more…

    Arguments

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

    The routine is called on this self_force object.

    real(kind=wp), intent(out), dimension(4):: force

    On return this 1d array contains the 4 components of the force, .

procedure, public :: set_accel

Routine to set the values of the 4-acceleration.

  • public subroutine set_accel(this, at, ar, atheta, aphi, udota)

    Routine that sets the 4-acceleration and the inner product of the 4-velovity and the self-force.

    Arguments

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

    The routine is called on this self_force object.

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

    The -component of the 4-acceleration, .

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

    The -component of the 4-acceleration, .

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

    The -component of the 4-acceleration, .

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

    The -component of the 4-acceleration, .

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

    The inner product of the 4-velocity and the self-force, .

procedure, public :: set_daccel_dt

Routine to set the values of the time derivative of the 4-acceleration.

  • public subroutine set_daccel_dt(this, dat_dt, dar_dt, datheta_dt, daphi_dt)

    Routine that sets the coordinate time derivative of the 4-acceleration.

    Arguments

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

    The routine is called on this self_force object.

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

    The time derivative of the -component of the 4-acceleration, .

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

    The time derivative of the -component of the 4-acceleration, .

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

    The time derivative of the -component of the 4-acceleration, .

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

    The time derivative of the -component of the 4-acceleration, .

procedure, public :: set_d2accel_dt2

Routine to set the values of the second time derivative of the 4-acceleration.

  • public subroutine set_d2accel_dt2(this, d2at_dt2, d2ar_dt2, d2atheta_dt2, d2aphi_dt2)

    Routine that sets the second coordinate time derivative of the 4-acceleration.

    Arguments

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

    The routine is called on this self_force object.

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

    The second time derivative of the -component of the 4-acceleration, .

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

    The second time derivative of the -component of the 4-acceleration, .

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

    The second time derivative of the -component of the 4-acceleration, .

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

    The second time derivative of the -component of the 4-acceleration, .

procedure, public :: get_accel

Routine to get the values of the 4-acceleration.

  • public subroutine get_accel(this, accel)

    Routine that gets the 4-acceleration.

    Arguments

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

    The routine is called on this self_force object.

    real(kind=wp), intent(out), dimension(4):: accel

    On return this 1d array contains the 4 components of the 4-acceleration, .

procedure, public :: get_daccel_dt

Routine to get the values of the time derivative of the 4-acceleration.

  • public subroutine get_daccel_dt(this, daccel_dt)

    Routine that gets the coordinate time derivative of the 4-acceleration.

    Arguments

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

    The routine is called on this self_force object.

    real(kind=wp), intent(out), dimension(4):: daccel_dt

    On return this 1d array contains the 4 components of the time derivative of the 4-acceleration, .

procedure, public :: get_d2accel_dt2

Routine to get the values of the second time derivative of the 4-acceleration.

  • public subroutine get_d2accel_dt2(this, d2accel_dt2)

    Routine that gets the second coordinate time derivative of the 4-acceleration.

    Arguments

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

    The routine is called on this self_force object.

    real(kind=wp), intent(out), dimension(4):: d2accel_dt2

    On return this 1d array contains the 4 components of the second time derivative of the 4-acceleration, .

procedure, public :: output

Routine to perform output.

  • public subroutine output(this)

    Routine that performs output of the self-force.

    Arguments

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

    The routine is called on this self_force object.

Source Code

  type :: self_force
  !! A global self-force type.
    real(wp), dimension(4), private :: f = 0.0_wp
    !! A 4-vector containing the components of the self-force, \(f_{\mu}\).
    real(wp), dimension(4), private :: a = 0.0_wp
    !! A 4-vector containing the components of the 4-acceleration, \(a^{\mu}\).
    real(wp), dimension(4), private :: da_dt = 0.0_wp
    !! A 4-vector containing the components of the coordinate time derivatives
    !! of the 4-acceleration, \(\dot{a}^{\mu}\).
    real(wp), dimension(4), private :: d2a_dt2 = 0.0_wp
    !! A 4-vector containing the components of the second coordinate time
    !! derivatives of the 4-acceleration, \(\ddot{a}^{\mu}\).
    real(wp), private :: udota = 0.0_wp
    !! A scalar containing the inner product of the 4-velocity and the
    !! self-force \(u^{\mu}f_{\mu}\).
    integer(ip), private :: ioo_id = -1
    !! The file unit number used for output.
  contains
    procedure :: set_force
    !! Routine to set the self-force values.
    procedure :: get_force
    !! Routine to get the self-force values.
    procedure :: set_accel
    !! Routine to set the values of the 4-acceleration.
    procedure :: set_daccel_dt
    !! Routine to set the values of the time derivative of the 4-acceleration.
    procedure :: set_d2accel_dt2
    !! Routine to set the values of the second time derivative of the
    !! 4-acceleration.
    procedure :: get_accel
    !! Routine to get the values of the 4-acceleration.
    procedure :: get_daccel_dt
    !! Routine to get the values of the time derivative of the 4-acceleration.
    procedure :: get_d2accel_dt2
    !! Routine to get the values of the second time derivative of the
    !! 4-acceleration.
    procedure :: output
    !! Routine to perform output.
  end type self_force