A class that defines an observer of the self-force for a scalar charge in orbit around a Schwarzschild black hole.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
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. |
The interface for the sf_observer version of init. This interface is consistent with obs_init_interface.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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. |
The extract routine is provided by sf_extract
The interface for the sf_observer version of extract. This interface is consistent with obs_extract_interface.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(sf_observer), | intent(inout) | :: | this | The routine is called on this self-force observer. |
The interface for the sf_output version of output. This interface is consistent with obs_output_interface.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(sf_observer), | intent(inout) | :: | this | The routine is called on this self-force observer. |
type, 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.
type(scal_schw), pointer :: p
!! A pointer to the [[scal_schw]] equation that provides the data.
real(wp), dimension(:), allocatable :: fl
!! The \(\ell\)-modes of the regular field at the particle location.
real(wp), dimension(:), allocatable :: ftl
!! The \(\ell\)-modes of the time derivative of the regular field at the
!! particle location.
real(wp), dimension(:), allocatable :: fphil
!! The \(\ell\)-modes of the \(\phi\) derivative of the regular field at
!! the particle location.
real(wp), dimension(:), allocatable :: frl
!! The \(\ell\)-modes of the radial derivative of the regular field at the
!! particle location.
contains
procedure :: init => sf_init
!! The [[observer:init]] routine is provided by [[sf_init]]
procedure :: extract => sf_extract
!! The [[observer:extract]] routine is provided by [[sf_extract]]
procedure :: output => sf_output
!! The [[observer:output]] routine is provided by [[sf_output]]
final :: close_sf_observer
!! The finalizer.
end type sf_observer