self_force_base Module

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


Uses

  • module~~self_force_base~~UsesGraph module~self_force_base self_force_base module~kinds kinds module~self_force_base->module~kinds

Used by

  • module~~self_force_base~~UsedByGraph module~self_force_base self_force_base proc~geod_schw_load_globals geod_schw_load_globals proc~geod_schw_load_globals->module~self_force_base program~test test program~test->module~self_force_base proc~scal_schw_rhs scal_schw_rhs proc~scal_schw_rhs->module~self_force_base proc~co_save_globals_1 co_save_globals_1 proc~co_save_globals_1->module~self_force_base proc~osc_schw_load_globals osc_schw_load_globals proc~osc_schw_load_globals->module~self_force_base proc~scal_schw_save_globals_2 scal_schw_save_globals_2 proc~scal_schw_save_globals_2->module~self_force_base

Contents


Variables

TypeVisibility AttributesNameInitial
type(self_force), public :: sf

The global self_force object that is available by use association.


Derived Types

type, public :: self_force

A global self-force type.

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.

procedure, public :: get_force

Routine to get the self-force values.

procedure, public :: set_accel

Routine to set the values of the 4-acceleration.

procedure, public :: set_daccel_dt

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

procedure, public :: set_d2accel_dt2

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

procedure, public :: get_accel

Routine to get the values of the 4-acceleration.

procedure, public :: get_daccel_dt

Routine to get the values 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.

procedure, public :: output

Routine to perform output.


Subroutines

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, .

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, .

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, .

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, .

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, .

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, .

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, .

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, .

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.