The implementation of the interfaces provided in scalar_schw_eff.
Interface to the C++ routine init_source for initializing the C++ effective source class.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=c_int) | :: | nmodes | The number of modes. |
|||
integer(kind=c_int), | dimension(nmodes) | :: | l | A 1d array that contains the ℓ-values. |
||
integer(kind=c_int), | dimension(nmodes) | :: | m | A 1d array that contains the m-values. |
||
real(kind=c_double) | :: | mass | The mass of the black hole. |
Interface to the C++ routine set_time_window that sets the time window information in the C++ effective source class.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=c_double) | :: | tfac | The time window factor. |
|||
real(kind=c_double) | :: | dtfac_dt | The first time derivative of the time window factor. |
|||
real(kind=c_double) | :: | d2tfac_dt2 | The second time derivative of the time window factor. |
|||
integer(kind=c_int) | :: | do_smooth_after_lmax | Only set the time window for ℓ>do_smooth_after_lmax. |
|||
integer(kind=c_int) | :: | nmodes | The number of modes. |
Interface to the C++ routine set_particle that sets the particle information in the C++ effective source class.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=c_double) | :: | r | The radial coordinate of the particle (in Schwarzschild coordinates), r. |
|||
real(kind=c_double) | :: | phi | The azimuthal angle of the particle, ϕ. |
|||
real(kind=c_double) | :: | ur | The radial component of the 4-velocity, ur. |
|||
real(kind=c_double) | :: | En | The energy per unit mass of the particle, E. |
|||
real(kind=c_double) | :: | Lz | The angular momentum per unit mass of the particle Lz. |
|||
real(kind=c_double) | :: | ar | The radial component of the 4-acceleration, ar. |
|||
real(kind=c_double) | :: | aphi | The ϕ-component of the 4-acceleration, aϕ. |
|||
real(kind=c_double) | :: | dardt | The derivative of ar with respect to Schwarzschild coordinate time. |
|||
real(kind=c_double) | :: | daphidt | The derivative of aϕ with respect to Schwarzschild coordinate time. |
|||
real(kind=c_double) | :: | d2ardt2 | The second derivative of ar with respect to Schwarzschild coordinate time. |
|||
real(kind=c_double) | :: | d2aphidt2 | The second derivative of aϕ with respect to Schwarzschild coordinate time. |
|||
integer(kind=c_int) | :: | nmodes | The number of modes. |
Interface to the C++ routine eval_source_all that evaluates the effective source on the locations provided in a 1d input array.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=c_int) | :: | mode | The mode. |
|||
integer(kind=c_int) | :: | n | The number of elements in the input radial coordinate array, r. |
|||
real(kind=c_double) | :: | r(*) | The radial coordinates in Schwarzschild coordinates, ri. |
|||
real(kind=c_double) | :: | win(*) | The window function, Wi. |
|||
real(kind=c_double) | :: | dwin(*) | The radial derivative of the window function, dWdr|i. |
|||
real(kind=c_double) | :: | d2win(*) | The second radial derivative of the window function, d2Wdr2|i. |
|||
real(kind=c_double) | :: | sre(*) | The real part of the effective source, R(Seff). |
|||
real(kind=c_double) | :: | sim(*) | The imaginary part of the effective source, I(Seff). |
Interface to the C++ routine Phi that evaluates the singuler field at a given radial coordinate in Schwarzschild coordinates.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=c_int) | :: | mode | The mode. |
|||
real(kind=c_double) | :: | r | The radial coordinate, r, in Schwarzschild coordinates. |
|||
real(kind=c_double) | :: | phire | On output the real part of the singular field R(Φ(r)). |
|||
real(kind=c_double) | :: | phiim | On output the imaginary part of the singular field I(Φ(r)). |
Interface to the C++ routine dPhi_dt that evaluates the time derivative of the singuler field at a given radial coordinate in Schwarzschild coordinates.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=c_int) | :: | mode | The mode. |
|||
real(kind=c_double) | :: | r | The radial coordinate, r, in Schwarzschild coordinates. |
|||
real(kind=c_double) | :: | dphidtre | On output the real part of the time derivative of the singular field R(dΦdt|r). |
|||
real(kind=c_double) | :: | dphidtim | On output the imaginary part of the time derivative of the singular field R(dΦdt|r). |
Interface to the C++ routine dPhi_dt that evaluates the radial derivative of the singuler field at a given radial coordinate in Schwarzschild coordinates.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=c_int) | :: | mode | The mode. |
|||
real(kind=c_double) | :: | r | The radial coordinate, r, in Schwarzschild coordinates. |
|||
real(kind=c_double) | :: | dphidrre | On output the real part of the radial derivative of the singular field R(dΦdr|r). |
|||
real(kind=c_double) | :: | dphidrim | On output the imaginary part of the radial derivative of the singular field R(dΦdr|r). |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(scal_schw_eff), | intent(inout) | :: | this | On return, the constructed object. |
||
integer(kind=ip), | intent(in) | :: | nmodes | The number of modes. |
||
integer(kind=ip), | intent(in) | :: | nvars | The number of variables. |
||
integer(kind=c_int), | intent(in), | dimension(nmodes) | :: | l | A 1d array of size nmodes containing the ℓ-values of the modes. |
|
integer(kind=c_int), | intent(in), | dimension(nmodes) | :: | m | A 1d array of size nmodes containing the m-values of the modes. |
|
real(kind=wp), | intent(in) | :: | mass | The mass of the black hole. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(scal_schw_eff), | intent(inout) | :: | this | The routine is called on this object. |
||
real(kind=wp), | intent(in) | :: | r | The radial coordinate of the particle (in Schwarzschild coordinates), r. |
||
real(kind=wp), | intent(in) | :: | phi | The azimuthal angle of the particle, ϕ. |
||
real(kind=wp), | intent(in) | :: | ur | The radial component of the 4-velocity, ur. |
||
real(kind=wp), | intent(in) | :: | En | The energy per unit mass of the particle, E. |
||
real(kind=wp), | intent(in) | :: | Lz | The angular momentum per unit mass of the particle Lz. |
||
real(kind=wp), | intent(in) | :: | ar | The radial component of the 4-acceleration, ar. |
||
real(kind=wp), | intent(in) | :: | aphi | The ϕ-component of the 4-acceleration, aϕ. |
||
real(kind=wp), | intent(in) | :: | dardt | The derivative of ar with respect to Schwarzschild coordinate time. |
||
real(kind=wp), | intent(in) | :: | daphidt | The derivative of aϕ with respect to Schwarzschild coordinate time. |
||
real(kind=wp), | intent(in) | :: | d2ardt2 | The second derivative of ar with respect to Schwarzschild coordinate time. |
||
real(kind=wp), | intent(in) | :: | d2aphidt2 | The second derivative of aϕ with respect to Schwarzschild coordinate time. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(scal_schw_eff), | intent(inout) | :: | this | The routine is called on this object. |
||
real(kind=wp), | intent(in) | :: | tfac | The current value for the time window. |
||
real(kind=wp), | intent(in) | :: | dtfac_dt | The current value for the time derivative of the time window. |
||
real(kind=wp), | intent(in) | :: | d2tfac_dt2 | The current value for the second time derivative of the time window. |
||
integer(kind=ip), | intent(in) | :: | do_smooth_after_lmax | If l<do_smooth_after_lmax use tfac=1, dtfac_dt=0, d2tfac_dt2=0. This allows for smooth turn on of the effective source for the modes with l>do_smooth_after_lmax, while the rest gets turned on instantaneously (e.g. when external initial data is available). |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(scal_schw_eff), | intent(inout) | :: | this | The routine is called on this object. |
||
type(rgf), | intent(in) | :: | r | A real values grid function that contain the radial coordinate (in Schwarzschild coordinates). |
||
type(wtube), | intent(in) | :: | wt | A world-tube object that ensures that the effective source is only non-zero inside the world-tube. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(scal_schw_eff), | intent(inout) | :: | this | The routine is called on this object. |
||
real(kind=wp), | intent(in) | :: | r | The radial coordinate (Schwarzschild coordinates). |
||
integer(kind=ip), | intent(in) | :: | mode | The mode. |
||
complex(kind=wp), | intent(out), | dimension(:) | :: | psi | A 1d-array of size nvars of complex values that on return contains the singular field for all variables. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(scal_schw_eff), | intent(inout) | :: | this | The routine is called on this object. |
||
real(kind=wp), | intent(in) | :: | r | The radial coordinate (Schwarzschild coordinates). |
||
integer(kind=ip), | intent(in) | :: | mode | The mode. |
||
complex(kind=wp), | intent(out), | dimension(:) | :: | dpsidt | A 1d-array of size nvars of complex values that on return contains the time derivative of the singular field for all variables. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(scal_schw_eff), | intent(inout) | :: | this | The routine is called on this object. |
||
real(kind=wp), | intent(in) | :: | r | The radial coordinate (Schwarzschild coordinates). |
||
integer(kind=ip), | intent(in) | :: | mode | The mode. |
||
complex(kind=wp), | intent(out), | dimension(:) | :: | dpsidr | A 1d-array of size nvars of complex values that on return contains the radial derivative of the singular field for all variables. |