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.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(self_force), | public | :: | sf | The global self_force object that is available by use association. |
A global self-force type.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=wp), | private, | dimension(4) | :: | f | = | 0.0_wp | A 4-vector containing the components of the self-force, fμ. |
real(kind=wp), | private, | dimension(4) | :: | a | = | 0.0_wp | A 4-vector containing the components of the 4-acceleration, aμ. |
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, ˙aμ. |
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, ¨aμ. |
real(kind=wp), | private | :: | udota | = | 0.0_wp | A scalar containing the inner product of the 4-velocity and the self-force uμfμ. |
|
integer(kind=ip), | private | :: | ioo_id | = | -1 | The file unit number used for output. |
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. |
Routine that sets the self-force variable.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(self_force), | intent(inout) | :: | this | The routine is called on this self_force object. |
||
real(kind=wp), | intent(in) | :: | ft | The t-component of the self-force, ft. |
||
real(kind=wp), | intent(in) | :: | fr | The r-component of the self-force, fr. |
||
real(kind=wp), | intent(in) | :: | ftheta | The θ-component of the self-force, fθ. |
||
real(kind=wp), | intent(in) | :: | fphi | The ϕ-component of the self-force, fϕ. |
Routine that gets the self-force variable.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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, (ft,fr,fθ,fϕ). |
Routine that sets the 4-acceleration and the inner product of the 4-velovity and the self-force.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(self_force), | intent(inout) | :: | this | The routine is called on this self_force object. |
||
real(kind=wp), | intent(in) | :: | at | The t-component of the 4-acceleration, at. |
||
real(kind=wp), | intent(in) | :: | ar | The r-component of the 4-acceleration, ar. |
||
real(kind=wp), | intent(in) | :: | atheta | The θ-component of the 4-acceleration, aθ. |
||
real(kind=wp), | intent(in) | :: | aphi | The ϕ-component of the 4-acceleration, aϕ. |
||
real(kind=wp), | intent(in) | :: | udota | The inner product of the 4-velocity and the self-force, uμfμ. |
Routine that sets the coordinate time derivative of the 4-acceleration.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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 t-component of the 4-acceleration, ˙at. |
||
real(kind=wp), | intent(in) | :: | dar_dt | The time derivative of the r-component of the 4-acceleration, ˙ar. |
||
real(kind=wp), | intent(in) | :: | datheta_dt | The time derivative of the θ-component of the 4-acceleration, ˙aθ. |
||
real(kind=wp), | intent(in) | :: | daphi_dt | The time derivative of the ϕ-component of the 4-acceleration, ˙aϕ. |
Routine that sets the second coordinate time derivative of the 4-acceleration.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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 t-component of the 4-acceleration, ¨at. |
||
real(kind=wp), | intent(in) | :: | d2ar_dt2 | The second time derivative of the r-component of the 4-acceleration, ¨ar. |
||
real(kind=wp), | intent(in) | :: | d2atheta_dt2 | The second time derivative of the θ-component of the 4-acceleration, ¨aθ. |
||
real(kind=wp), | intent(in) | :: | d2aphi_dt2 | The second time derivative of the ϕ-component of the 4-acceleration, ¨aϕ. |
Routine that gets the 4-acceleration.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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, (at,ar,aθ,aϕ). |
Routine that gets the coordinate time derivative of the 4-acceleration.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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, (˙at,˙ar,˙aθ,˙aϕ). |
Routine that gets the second coordinate time derivative of the 4-acceleration.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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, (¨at,¨ar,¨aθ,¨aϕ). |
Routine that performs output of the self-force.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(self_force), | intent(inout) | :: | this | The routine is called on this self_force object. |