Krang api
Krang.AbstractCamera
Krang.AbstractGeometry
Krang.AbstractLevelSetGeometry
Krang.AbstractMaterial
Krang.AbstractMetric
Krang.AbstractPixel
Krang.AbstractScreen
Krang.ConeGeometry
Krang.ElectronSynchrotronPowerLawIntensity
Krang.ElectronSynchrotronPowerLawPolarization
Krang.IntensityCamera
Krang.IntensityPixel
Krang.IntensityScreen
Krang.Kerr
Krang.Mesh
Krang.MeshGeometry
Krang.SlowLightIntensityCamera
Krang.SlowLightIntensityPixel
Krang.SlowLightIntensityScreen
Krang.Gθ
Krang.I0_inf
Krang.I1_inf_m_I0_terms
Krang.I2_inf_m_I0_terms
Krang.Im_inf_m_I0_terms
Krang.Ip_inf_m_I0_terms
Krang.Ir
Krang.Ir_inf
Krang.Ir_s
Krang.It
Krang.It_inf
Krang.It_w_I0_terms
Krang.Iϕ
Krang.Iϕ_inf
Krang.Iϕ_w_I0_terms
Krang._isreal2
Krang.absGto_Gthat
Krang.absGθo_Gθhat
Krang.absGϕo_Gϕhat
Krang.emission_azimuth
Krang.emission_coordinates
Krang.emission_coordinates_fast_light
Krang.emission_inclination
Krang.emission_radius
Krang.get_radial_roots
Krang.horizon
Krang.inclination
Krang.jac_bl_d_zamo_u
Krang.jac_bl_u_zamo_d
Krang.jac_fluid_u_zamo_d
Krang.jac_zamo_d_bl_u
Krang.jac_zamo_u_bl_d
Krang.metric
Krang.metric_dd
Krang.metric_uu
Krang.mino_time
Krang.p_bl_d
Krang.penrose_walker
Krang.r_potential
Krang.radial_inf_integrals_case2
Krang.radial_inf_integrals_case3
Krang.radial_inf_integrals_case4
Krang.radial_inf_integrals_m_I0_terms
Krang.radial_integrals
Krang.radial_w_I0_terms_integrals_case2
Krang.radial_w_I0_terms_integrals_case3
Krang.radial_w_I0_terms_integrals_case4
Krang.regularized_Pi
Krang.roots
Krang.screen_coordinate
Krang.screen_polarization
Krang.synchrotronIntensity
Krang.synchrotronPolarization
Krang.total_mino_time
Krang.α
Krang.αboundary
Krang.β
Krang.βboundary
Krang.η
Krang.θ_potential
Krang.λ
Raytracing Functions
Krang.emission_radius Function
emission_radius(
pix::Krang.AbstractPixel,
θs,
isindir,
n
) -> Tuple{Any, Any, Any, Any, Bool}
Emission radius for point originating at inclination θs whose nth order image appears at the screen coordinate (α
, β
). Returns 0 if the emission coordinates do not exist for that screen coordinate.
Arguments
pix
: Pixel informationθs
: Emission inclinationisindir
: Is emission to observer direct or indirectn
: Image index
emission_radius(
pix::Krang.AbstractPixel,
τ
) -> Tuple{Any, Any, Any, Bool}
Emission radius for point originating at at Mino time τ whose image appears at the screen coordinate (α
, β
). Returns 0 if the emission coordinates do not exist for that screen coordinate.
Arguments
-pix
: Pixel information
τ
: Mino time
Krang.emission_inclination Function
emission_inclination(pix::Krang.AbstractPixel, rs, νr)
Emission inclination for point originating at inclination rs whose nth order image appears at screen coordinate (α
, β
).
Arguments
pix
: Pixel informationrs
: Emission radiusνr
: Sign of radial velocity direction at emission. This is always positive for case 3 and case 4 geodesics.
emission_inclination(
pix::Krang.AbstractPixel,
τ
) -> NTuple{6, Any}
Emission inclination for point at Mino time τ whose image appears at screen coordinate (α
, β
).
Arguments
pix
: Pixel informationτ
: Mino Time
Krang.emission_coordinates_fast_light Function
emission_coordinates_fast_light(
pix::Krang.AbstractPixel,
θs,
isindir,
n
) -> Tuple{Any, Any, Any, Any, Bool}
Emission radius and azimuthal angle for point originating at inclination θs whose nth order image appears at the screen coordinate (α
, β
) for an observer located at inclination θo.
Arguments
pix
: Pixel informationθs
: Emission Inclinationisindir
: Whether emission to observer is direct or indirectn
: Image index
Krang.emission_coordinates Function
emission_coordinates(
pix::Krang.AbstractPixel,
θs,
isindir,
n
) -> Tuple{Any, Any, Any, Any, Any, Bool}
Emission radius and azimuthal angle for point originating at inclination θs whose nth order image appears at the screen coordinate (α
, β
) for an observer located at inclination θo.
Arguments
pix
: Pixel informationθs
: Emission Inclinationisindir
: Whether emission to observer is direct or indirectn
: Image index
emission_coordinates(
pix::Krang.AbstractPixel,
τ
) -> Tuple{Any, Any, Any, Any, Any, Any, Bool}
Ray trace a point that appears at the screen coordinate (α
, β
) for an observer located at inclination θo
Arguments
pix
: Pixel informationτ
: Mino Time
Krang.mino_time Function
mino_time(pix, rs, isindir) -> Any
Mino time of trajectory between an observer at infinity and point at radius rs
Arguments
pix
: Pixel informationrs
: Emission radiusisindir
: Is the path direct or indirect?
mino_time(pix::Krang.AbstractPixel, θs, isindir, n) -> Any
Mino time of trajectory between two inclinations for a given screen coordinate
Arguments
pix
: Pixel informationθs
: Emission inclinationisindir
: Is the path direct or indirect?n
: nth image in orde of amount of minotime traversed
Metric Functions
Krang.Kerr Type
struct Kerr{T} <: Krang.AbstractMetric
Kerr Metric in Boyer Lindquist Coordinates
mass
: M = massspin
: a = J/M, where J is the angular momentum and M is the mass of the black hole.
Krang.metric_uu Function
metric_uu(metric::Krang.AbstractMetric, args...) -> Any
Returns the inverse metric in some representation (usually as an nxn matrix).
metric_uu(metric::Kerr{T}, r, θ) -> Any
Inverse Kerr metric in Boyer Lindquist (BL) coordinates.
metric_uu(metric::Kerr{T}, coordinates) -> Any
Inverse Kerr metric in Boyer Lindquist (BL) coordinates.
Arguments
metric
: Kerr metriccoordinates
: Coordinates (t, r, θ, ϕ)
Krang.metric_dd Function
metric_dd(metric::Krang.AbstractMetric, args...) -> Any
Returns the metric in some representation (usually as an nxn matrix).
metric_dd(metric::Kerr{T}, r, θ) -> Any
Kerr metric in Boyer Lindquist (BL) coordinates.
metric_dd(metric::Kerr{T}, coordinates) -> Any
Kerr metric in Boyer Lindquist (BL) coordinates.
Arguments
metric
: Kerr metriccoordinates
: Coordinates (t, r, θ, ϕ)
Krang.λ Function
λ(pix::Krang.AbstractPixel) -> Any
λ(pix::AbstractPixel)
Calculate the λ value for a given pixel.
Arguments
pix::AbstractPixel
: The pixel of a screen.
Returns
- The λ value of the pixel.
λ(_::Kerr, α, θo) -> Any
Energy reduced azimuthal angular momentum
Arguments
metric
: Kerrα
: Horizontal Bardeen screen coordinateθo
: Observer inclination
Krang.η Function
η(pix::Krang.AbstractPixel) -> Any
η(pix::AbstractPixel)
Calculate the η value for a given pixel.
Arguments
pix::AbstractPixel
: The pixel of a screen.
Returns
- The η value of the pixel.
η(metric::Kerr, α, β, θo) -> Any
Energy reduced Carter integral
Arguments
metric
: Kerrα
: Horizontal Bardeen screen coordinateβ
: Bardeen vertical coordinateθo
: Observer inclination
Radial Integrals
Krang.r_potential Function
r_potential(metric::Kerr{T}, η, λ, r) -> Any
Radial potential of spacetime
Arguments
metric
: Kerr{T} metricη
: Reduced Carter constantλ
: Reduced azimuthal angular momentumr
: Boyer Lindquist radius
Krang.get_radial_roots Function
get_radial_roots(metric::Kerr{T}, η, λ) -> NTuple{4, Any}
Returns roots of
Arguments
metric
: Kerr{T} metricη
: Reduced Carter constantλ
: Reduced azimuthal angular momentum
Krang.Ir Function
Ir(pix::Krang.AbstractPixel, νr::Bool, rs) -> Any
Returns the antiderivative r_potential(x)
for an implementation of
Arguments
pix
: Pixel informationνr
: Sign of radial velocity direction at emission. This is always positive for case 3 and case 4 geodesics.rs
: Emission radius
Angular Integrals
Krang.θ_potential Function
θ_potential(metric::Kerr{T}, η, λ, θ) -> Any
Theta potential of a Kerr black hole
Arguments
metric
: Kerr{T} metricη
: Reduced Carter constantλ
: Reduced azimuthal angular momentumθ
: Boyer Lindquist inclination
Krang.Gθ Function
Gθ(
pix::Krang.AbstractPixel,
θs,
isindir,
n
) -> Tuple{Any, Any, Any, Any, Any, Bool}
Returns the antiderivative θ_potential(x)
for an implementation of
Arguments
pix
: Pixel informationθs
: Emission inclinationisindir
: Is the path direct or indirect?n
: nth image ordered by minotime
Screen Coordinates
Krang.α Function
α(_::Kerr, λ, θo) -> Any
Horizontal Bardeen Screen Coordinate
Arguments
metric
: Kerrα
: Horizontal Bardeen screen coordinateθo
: Observer inclination
Krang.β Function
β(metric::Kerr, λ, η, θo) -> Any
Vertical Bardeen Screen Coordinate
Arguments
metric
: Kerrλ
: Energy reduced Azimuthal angular momentulη
: Energy reduced Carter integralθo
: Observer inclination
Krang.αboundary Function
αboundary(metric::Kerr, θs) -> Any
Defines a horizontal boundary on the assymptotic observer's screen that emission that from θs must fall within.
Arguments
metric
: Kerr metricθs
: Emission Inclination
Krang.βboundary Function
βboundary(metric::Kerr{T}, α, θo, θs) -> Any
Defines a vertical boundary on the assymptotic observer's screen that emission that from θs must fall within.
Arguments
metric
: Kerr{T} metricα
: Horizontal Bardeen screen coordinateθo
: Observer inclinationθs
: Emission Inclination
Local Frame transformations
Krang.p_bl_d Function
p_bl_d(
metric::Kerr{T},
r,
θ,
η,
λ,
νr::Bool,
νθ::Bool
) -> Any
Returns the momentum form in the Boyer-Lindquist basis.
Krang.jac_bl_u_zamo_d Function
jac_bl_u_zamo_d(metric::Kerr{T}, r, θ) -> Any
Jacobian which converts ZAMO vector to a Boyer-Lindquist basis
Krang.jac_zamo_u_bl_d Function
jac_zamo_u_bl_d(metric::Kerr{T}, r, θ) -> Any
Jacobian which converts Boyer-Lindquist vector to a ZAMO basis
Krang.jac_bl_d_zamo_u Function
jac_bl_d_zamo_u(metric::Kerr{T}, r, θ) -> Any
Jacobian which converts ZAMO covector to a Boyer-Lindquist basis
Krang.jac_zamo_d_bl_u Function
jac_zamo_d_bl_u(metric::Kerr{T}, r, θ) -> Any
Returns the Jacobian which converts a Boyer-Lindquist covector to ZAMO basis.
Krang.jac_fluid_u_zamo_d Function
jac_fluid_u_zamo_d(_::Kerr{T}, β, θ, φ) -> Any
Jacobian which expreases ZAMO vector in the fluid frame
Polarization
Krang.screen_polarization Function
screen_polarization(
metric::Kerr{T},
κ::Complex,
θ,
α,
β
) -> Tuple{Any, Any}
Returns the screen polarization associated with a killing spinor κ as seen seen by an asymptotic observer.
Krang.penrose_walker Function
penrose_walker(
metric::Kerr{T},
r,
θ,
p_u::AbstractVector,
f_u::AbstractVector
) -> Tuple{Any, Any}
Returns the Penrose walker constant for a photon with momentum p_u emitted from a fluid particle with momentum f_u.
Krang.synchrotronIntensity Function
synchrotronIntensity(
metric::Kerr{T},
α,
β,
ri,
θs,
θo,
magnetic_field::StaticArraysCore.SArray{Tuple{3}, T, 1, 3},
βfluid::StaticArraysCore.SArray{Tuple{3}, T, 1, 3},
νr::Bool,
θsign::Bool
) -> Tuple{Any, Any, Any}
Calculates the intensity of a photon emitted from a fluid particle with momentum f_u and observed by an asymptotic observer.
Krang.synchrotronPolarization Function
synchrotronPolarization(
metric::Kerr{T},
α,
β,
ri,
θs,
θo,
magnetic_field::StaticArraysCore.SArray{Tuple{3}, T, 1, 3},
βfluid::StaticArraysCore.SArray{Tuple{3}, T, 1, 3},
νr::Bool,
θsign::Bool
) -> NTuple{4, Any}
Calculates the polarization of a photon emitted from a fluid particle with momentum f_u and observed by an asymptotic observer.
Meshes, Geometries and Materials
Krang.MeshGeometry Type
Load a mesh from a file.
# Arguments
- `filename::String`: The path to the file containing the mesh.
# Returns
- A `Mesh` object representing the mesh.
Krang.ElectronSynchrotronPowerLawIntensity Type
struct ElectronSynchrotronPowerLawIntensity{N, T} <: Krang.AbstractMaterial
A struct representing the linear polarization intensity of synchrotron radiation from electrons following a power-law energy distribution. This model is based on the material described in https://doi.org/10.3847/1538-4357/abf117.
Fields
- `magnetic_field::SVector{3, T}`: The magnetic field vector components (x, y, z).
- `fluid_velocity::SVector{3, T}`: The fluid velocity vector components (speed, inclination angle, azimuthal angle).
- `spectral_index::T`: The spectral index of the electron energy distribution.
- `R::T`: The characteristic radius of the emissivity profile.
- `p1::T`: The first power-law index.
- `p2::T`: The second power-law index.
- `subimgs::NTuple{N, Int}`: The sub-images to ray trace.
Krang.ElectronSynchrotronPowerLawPolarization Type
struct ElectronSynchrotronPowerLawPolarization{N, T} <: Krang.AbstractMaterial
A struct representing the linear polarization of synchrotron radiation from electrons following a power-law energy distribution. This model is based on the material described in https://doi.org/10.3847/1538-4357/abf117.
Fields
- `magnetic_field::SVector{3, T}`: The magnetic field vector components (x, y, z).
- `fluid_velocity::SVector{3, T}`: The fluid velocity vector components (speed, inclination angle, azimuthal angle).
- `spectral_index::T`: The spectral index of the electron energy distribution.
- `R::T`: The characteristic radius of the emissivity profile.
- `p1::T`: The first power-law index.
- `p2::T`: The second power-law index.
- `subimgs::NTuple{N, Int}`: The sub-images to ray trace.
Pixel Related Functions
Krang.absGθo_Gθhat Function
absGθo_Gθhat(
pix::Krang.AbstractPixel
) -> Tuple{T, T} where T
absGθo_Gθhat(pix::AbstractPixel)
Calculate the absolute value of Gθo divided by Gθhat for a given pixel.
Arguments
pix::AbstractPixel
: The pixel of a screen.
Returns
- The absolute value of Gθo divided by Gθhat of the pixel.
Krang.I1_inf_m_I0_terms Function
I1_inf_m_I0_terms(pix::Krang.AbstractPixel) -> Any
I1_inf_m_I0_terms(pix::AbstractPixel)
Calculate the I1 infinity minus I0 terms for a given pixel.
Arguments
pix::AbstractPixel
: The pixel of a screen.
Returns
- The I1 infinity minus I0 terms of the pixel.
Krang.radial_inf_integrals_m_I0_terms Function
radial_inf_integrals_m_I0_terms(
pix::Krang.AbstractPixel
) -> NTuple{4, Any}
radial_inf_integrals_m_I0_terms(pix::AbstractPixel)
Calculate the radial infinity minus I0 terms for a given pixel.
Arguments
pix::AbstractPixel
: The pixel of a screen.
Returns
- The radial infinity minus I0 terms of the pixel.
Krang.inclination Function
inclination(pix::Krang.AbstractPixel) -> Any
inclination(pix::AbstractPixel)
Get the inclination angle (θo) of a given pixel.
Arguments
pix::AbstractPixel
: The pixel of a screen.
Returns
- The inclination angle (θo) of the pixel.
Krang.metric Function
metric(pix::Krang.AbstractPixel) -> Any
metric(pix::AbstractPixel)
Get the space time metric.
Arguments
pix::AbstractPixel
: The pixel of a screen.
Returns
- The space time metric
Krang.absGto_Gthat Function
absGto_Gthat(
pix::Krang.AbstractPixel
) -> Tuple{T, T} where T
absGto_Gthat(pix::AbstractPixel)
Calculate the absolute value of Gto divided by Gthat for a given pixel.
Arguments
pix::AbstractPixel
: The pixel of a screen.
Returns
- The absolute value of Gto divided by Gthat of the pixel.
Krang.screen_coordinate Function
screen_coordinate(
pix::Krang.AbstractPixel
) -> Tuple{T, T} where T
screen_coordinate(pix::AbstractPixel)
Get the screen coordinates of a given pixel.
Arguments
pix::AbstractPixel
: The pixel for which to get the screen coordinates.
Returns
- The screen coordinates of the pixel.
Krang.Ip_inf_m_I0_terms Function
Ip_inf_m_I0_terms(pix::Krang.AbstractPixel) -> Any
Ip_inf_m_I0_terms(pix::AbstractPixel)
Calculate the Ip infinity minus I0 terms for a given pixel.
Arguments
pix::AbstractPixel
: The pixel of a screen.
Returns
- The Ip infinity minus I0 terms of the pixel.
Krang.I2_inf_m_I0_terms Function
I2_inf_m_I0_terms(pix::Krang.AbstractPixel) -> Any
I2_inf_m_I0_terms(pix::AbstractPixel)
Calculate the I2 infinity minus I0 terms for a given pixel.
Arguments
pix::AbstractPixel
: The pixel of a screen.
Returns
- The I2 infinity minus I0 terms of the pixel.
Krang.roots Function
roots(
pix::Krang.AbstractPixel
) -> NTuple{4, Complex{T}} where T
roots(pix::AbstractPixel)
Calculate the radial roots for a given pixel.
Arguments
pix::AbstractPixel
: The pixel of a screen.
Returns
- The radial roots of the pixel.
Krang.Im_inf_m_I0_terms Function
Im_inf_m_I0_terms(pix::Krang.AbstractPixel) -> Any
Im_inf_m_I0_terms(pix::AbstractPixel)
Calculate the Im infinity minus I0 terms for a given pixel.
Arguments
pix::AbstractPixel
: The pixel of a screen.
Returns
- The Im infinity minus I0 terms of the pixel.
Krang.absGϕo_Gϕhat Function
absGϕo_Gϕhat(
pix::Krang.AbstractPixel
) -> Tuple{T, T} where T
absGϕo_Gϕhat(pix::AbstractPixel)
Calculate the absolute value of Gϕo divided by Gϕhat for a given pixel.
Arguments
pix::AbstractPixel
: The pixel of a screen.
Returns
- The absolute value of Gϕo divided by Gϕhat of the pixel.
Krang.I0_inf Function
I0_inf(pix::Krang.AbstractPixel) -> Any
I0_inf(pix::AbstractPixel)
Calculate the I0 infinity value for a given pixel.
Arguments
pix::AbstractPixel
: The pixel of a screen.
Returns
- The I0 infinity value of the pixel.
Krang.total_mino_time Function
total_mino_time(pix::Krang.AbstractPixel) -> Any
total_mino_time(pix::AbstractPixel)
Return the total possible Mino time for a ray associated with a pixel.
Arguments
pix::AbstractPixel
: The pixel of a screen.
Returns
- The total possible Mino time for a ray associated with the pixel.
total_mino_time(
metric::Kerr{T},
roots::NTuple{4, T} where T
) -> Any
Returns the maximum mino time that can be accrued along a ray.
Arguments
metric
: Kerr metricroots
: Roots of the radial potentialI0_inf
: Mino time at infinity
Misc
Krang._isreal2 Function
_isreal2(num::Complex{T}) -> Any
Checks if a complex number is real to some tolerance
Krang.regularized_Pi Function
regularized_Pi(n, ϕ, k) -> Any
Regularized elliptic integral of the third kind
Arguments
n
: Parameterϕ
: Argumentsk
: Parameter
Krang.radial_inf_integrals_case4 Function
radial_inf_integrals_case4(
metric::Kerr{T},
roots::NTuple{4, T} where T
) -> NTuple{4, Any}
Returns the radial integrals for the case where there are no real roots in the radial potential
Krang.It_w_I0_terms Function
It_w_I0_terms(
metric::Kerr{T},
rs,
τ,
roots::NTuple{4, T} where T,
λ,
νr
) -> Any
Returns the antiderivative
See r_potential(x)
for an implementation of
Arguments
metric
: Kerr{T} metricroots
: Radial rootsλ
: Reduced azimuthal angular momentumνr
: Radial emission direction (Only necessary for case 1&2 geodesics)
Krang.Ir_inf Function
Ir_inf(pix::Krang.AbstractPixel) -> Any
Ir_inf(pix::AbstractPixel)
Calculate the Ir infinity value for a given pixel.
Arguments
pix::AbstractPixel
: The pixel of a screen.
Returns
- The Ir infinity value of the pixel.
Ir_inf(metric::Kerr{T}, roots) -> Any
Returns the antiderivative r_potential(x)
for an implementation of
Arguments
metric
: Kerr{T} metricroots
: Roots of the radial potential
Krang.emission_azimuth Function
emission_azimuth(
pix::Krang.AbstractPixel,
θs,
rs,
τ,
νr,
isindir,
n
) -> Any
Emission azimuth for point at Mino time τ whose image appears at screen coordinate (α
, β
).
Arguments
pix
: Pixel informationθs
: Emission Inclinationrs
:Emission radiusτ
: Mino Timeνr
: Sign of radial velocity direction at emission. This is always positive for case 3 and case 4 geodesics.
Krang.ConeGeometry Type
struct ConeGeometry{T, A} <: Krang.AbstractGeometry
Cone Geometry with half opening angle opening_angle
.
Krang.Iϕ Function
Iϕ(pix::Krang.AbstractPixel, rs, τ, νr) -> Any
Returns the antiderivative r_potential(x)
for an implementation of
Arguments
pix
: SlowLightIntensityPixelrs
: Emission radiusτ
: Mino timeνr
: Sign of radial velocity direction at emission. This is always positive for case 3 and case 4 geodesics.
Krang.SlowLightIntensityCamera Type
struct SlowLightIntensityCamera{T, A} <: Krang.AbstractCamera
Camera that caches slow light raytracing information for an observer sitting at radial infinity. The frame of this observer is alligned with the Boyer-Lindquist frame.
Krang.Iϕ_w_I0_terms Function
Iϕ_w_I0_terms(metric::Kerr{T}, rs, τ, roots, νr, λ) -> Any
Returns the antiderivative
See r_potential(x)
for an implementation of
Arguments
metric
: Kerr{T} metricτ
: Minotimeroots
: Radial rootsνr
: Radial emission direction (Only necessary for case 1&2 geodesics)λ
: Reduced azimuthal angular momentum
Krang.SlowLightIntensityPixel Type
struct SlowLightIntensityPixel{T} <: Krang.AbstractPixel{T}
Intensity Pixel Type.
Krang.Iϕ_inf Function
Iϕ_inf(pix::Krang.AbstractPixel) -> Any
Iϕ_inf(pix::AbstractPixel)
Calculate the Iϕ infinity terms for a given pixel.
Arguments
pix::AbstractPixel
: The pixel of a screen.
Returns
- The Iϕ infinity terms of the pixel.
Iϕ_inf(metric::Kerr{T}, roots, λ) -> Any
Returns the antiderivative
See r_potential(x)
for an implementation of
Arguments
metric
: Kerr{T} metricroots
: Radial rootsλ
: Reduced azimuthal angular momentum
Krang.radial_inf_integrals_case3 Function
radial_inf_integrals_case3(
metric::Kerr{T},
roots::NTuple{4, T} where T
) -> NTuple{4, Any}
Returns the radial integrals for the case where there are two real roots in the radial potential
Krang.radial_w_I0_terms_integrals_case2 Function
radial_w_I0_terms_integrals_case2(
metric::Kerr{T},
rs,
roots::NTuple{4, T} where T,
τ,
νr
) -> Tuple
Returns the radial integrals for the case where there are four real roots in the radial potential, with roots outside the horizon.
Krang.SlowLightIntensityScreen Type
struct SlowLightIntensityScreen{T, A<:(AbstractMatrix)} <: Krang.AbstractScreen
Screen made of SlowLightIntensityPixel
s.
Krang.radial_w_I0_terms_integrals_case4 Function
radial_w_I0_terms_integrals_case4(
metric::Kerr{T},
rs,
roots::NTuple{4, T} where T,
τ
) -> NTuple{4, Any}
Returns the radial integrals for the case where there are no real roots in the radial potential
Krang.radial_integrals Function
radial_integrals(
pix::Krang.AbstractPixel,
rs,
τ,
νr
) -> NTuple{5, Any}
Return the radial integrals
pix
: SlowLightIntensityPixelrs
: Emission radiusτ
: Mino timeνr
: Sign of radial velocity direction at emission. This is always positive for case 3 and case 4 geodesics.
Krang.IntensityScreen Type
struct IntensityScreen{T, A<:(AbstractMatrix)} <: Krang.AbstractScreen
Screen made of IntensityPixel
s.
Krang.It Function
It(pix::Krang.AbstractPixel, rs, τ, νr) -> Any
Returns the antiderivative r_potential(x)
for an implementation of
Arguments
pix
: SlowLightIntensityPixelrs
: Emission radiusτ
: Mino timeνr
: Sign of radial velocity direction at emission. This is always positive for case 3 and case 4 geodesics.
Krang.IntensityPixel Type
struct IntensityPixel{T} <: Krang.AbstractPixel{T}
Intensity Pixel Type. Each Pixel is associated with a single ray, and caches some information about the ray.
Krang.radial_w_I0_terms_integrals_case3 Function
radial_w_I0_terms_integrals_case3(
metric::Kerr{T},
rs,
roots::NTuple{4, T} where T,
τ
) -> NTuple{4, Any}
Returns the radial integrals for the case where there are two real roots in the radial potential
Krang.IntensityCamera Type
struct IntensityCamera{T, A} <: Krang.AbstractCamera
Camera that caches fast light raytracing information for an observer sitting at radial infinity. The frame of this observer is alligned with the Boyer-Lindquist frame.
Krang.Ir_s Function
Ir_s(metric::Kerr{T}, rs, roots, νr) -> Any
Returns the antiderivative r_potential(x)
for an implementation of
Arguments
metric
: Kerr{T} metricrs
: Emission radiusroots
: Roots of the radial potentialνr
: Radial emission direction (Only necessary for case 1&2 geodesics)
Krang.radial_inf_integrals_case2 Function
radial_inf_integrals_case2(
metric::Kerr{T},
roots::NTuple{4, T} where T
) -> NTuple{4, Any}
Returns the radial integrals for the case where there are four real roots in the radial potential, with roots outside the horizon.
Krang.It_inf Function
It_inf(pix::Krang.AbstractPixel) -> Any
It_inf(pix::AbstractPixel)
Calculate the It infinity terms for a given pixel.
Arguments
pix::AbstractPixel
: The pixel of a screen.
Returns
- The It infinity terms of the pixel.
It_inf(
metric::Kerr{T},
roots::NTuple{4, T} where T,
λ
) -> Any
Returns the antiderivative
See r_potential(x)
for an implementation of
Arguments
metric
: Kerr{T} metricroots
: Radial rootsλ
: Reduced azimuthal angular momentum