Krang api
Krang.AbstractCameraKrang.AbstractGeometryKrang.AbstractMaterialKrang.AbstractMetricKrang.AbstractPixelKrang.AbstractScreenKrang.ConeGeometryKrang.ElectronSynchrotronPowerLawIntensityKrang.ElectronSynchrotronPowerLawPolarizationKrang.IntensityCameraKrang.IntensityPixelKrang.IntensityScreenKrang.KerrKrang.MeshKrang.MeshGeometryKrang.SlowLightIntensityCameraKrang.SlowLightIntensityPixelKrang.SlowLightIntensityScreenKrang.GθKrang.I0_infKrang.I1_inf_m_I0_termsKrang.I2_inf_m_I0_termsKrang.Im_inf_m_I0_termsKrang.Ip_inf_m_I0_termsKrang.IrKrang.Ir_infKrang.Ir_sKrang.ItKrang.It_infKrang.It_w_I0_termsKrang.IϕKrang.Iϕ_infKrang.Iϕ_w_I0_termsKrang._isreal2Krang.absGto_GthatKrang.absGθo_GθhatKrang.absGϕo_GϕhatKrang.emission_azimuthKrang.emission_coordinatesKrang.emission_coordinates_fast_lightKrang.emission_inclinationKrang.emission_radiusKrang.get_radial_rootsKrang.horizonKrang.inclinationKrang.jac_bl_d_zamo_uKrang.jac_bl_u_zamo_dKrang.jac_fluid_u_zamo_dKrang.jac_zamo_d_bl_uKrang.jac_zamo_u_bl_dKrang.metricKrang.metric_ddKrang.metric_uuKrang.mino_timeKrang.p_bl_dKrang.penrose_walkerKrang.r_potentialKrang.radial_inf_integrals_case2Krang.radial_inf_integrals_case3Krang.radial_inf_integrals_case4Krang.radial_inf_integrals_m_I0_termsKrang.radial_integralsKrang.radial_w_I0_terms_integrals_case2Krang.radial_w_I0_terms_integrals_case3Krang.radial_w_I0_terms_integrals_case4Krang.regularized_PiKrang.rootsKrang.screen_coordinateKrang.screen_polarizationKrang.synchrotronIntensityKrang.synchrotronPolarizationKrang.total_mino_timeKrang.αKrang.αboundaryKrang.βKrang.βboundaryKrang.ηKrang.θ_potentialKrang.λ
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, 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, 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}Raytrace 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) -> AnyMino 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) -> AnyMino 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.AbstractMetricKerr 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...) -> AnyReturns the inverse metric in some representation (usually as an nxn matrix).
metric_uu(metric::Kerr{T}, r, θ) -> AnyInverse Kerr metric in Boyer Lindquist (BL) coordinates.
metric_uu(metric::Kerr{T}, coordinates) -> AnyInverse Kerr metric in Boyer Lindquist (BL) coordinates.
Arguments
metric: Kerr metriccoordinates: Coordinates (t, r, θ, ϕ)
Krang.metric_dd Function
metric_dd(metric::Krang.AbstractMetric, args...) -> AnyReturns the metric in some representation (usually as an nxn matrix).
metric_dd(metric::Kerr{T}, r, θ) -> AnyKerr metric in Boyer Lindquist (BL) coordinates.
metric_dd(metric::Kerr{T}, coordinates) -> AnyKerr 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) -> AnyEnergy 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) -> AnyEnergy 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) -> AnyRadial 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) -> AnyReturns 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}, η, λ, θ) -> AnyTheta 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) -> AnyHorizontal Bardeen Screen Coordinate
Arguments
metric: Kerrα: Horizontal Bardeen screen coordinateθo: Observer inclination
Krang.β Function
β(metric::Kerr, λ, η, θo) -> AnyVertical 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) -> AnyDefines 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) -> AnyDefines 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
) -> AnyReturns the momentum form in the Boyer-Lindquist basis.Krang.jac_bl_u_zamo_d Function
jac_bl_u_zamo_d(metric::Kerr{T}, r, θ) -> AnyJacobian 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, θ) -> AnyJacobian 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, θ) -> AnyJacobian 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, θ) -> AnyReturns 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}, β, θ, φ) -> AnyJacobian 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.AbstractMaterialA 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 raytrace.Krang.ElectronSynchrotronPowerLawPolarization Type
struct ElectronSynchrotronPowerLawPolarization{N, T} <: Krang.AbstractMaterialA 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 raytrace.Pixel Related Functions
Krang.absGθo_Gθhat Function
absGθo_Gθhat(
pix::Krang.AbstractPixel
) -> Tuple{T, T} where TabsGθ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) -> AnyI1_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) -> Anyinclination(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) -> Anymetric(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 TabsGto_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 Tscreen_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) -> AnyIp_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) -> AnyI2_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 Troots(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) -> AnyIm_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 TabsGϕ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) -> AnyI0_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) -> Anytotal_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
) -> AnyReturns 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}) -> AnyChecks if a complex number is real to some tolerance
Krang.regularized_Pi Function
regularized_Pi(n, ϕ, k) -> AnyRegularized 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
) -> AnyReturns 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) -> AnyIr_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) -> AnyReturns 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
) -> AnyEmission 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.AbstractGeometryCone Geometry with half opening angle opening_angle.
Krang.Iϕ Function
Iϕ(pix::Krang.AbstractPixel, rs, τ, νr) -> AnyReturns 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.AbstractCameraCamera 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, λ) -> AnyReturns 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) -> AnyIϕ_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, λ) -> AnyReturns 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
) -> TupleReturns 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.AbstractScreenScreen made of SlowLightIntensityPixels.
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.AbstractScreenScreen made of IntensityPixels.
Krang.It Function
It(pix::Krang.AbstractPixel, rs, τ, νr) -> AnyReturns 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.AbstractCameraCamera 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) -> AnyReturns 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) -> AnyIt_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,
λ
) -> AnyReturns the antiderivative
See r_potential(x) for an implementation of
Arguments
metric: Kerr{T} metricroots: Radial rootsλ: Reduced azimuthal angular momentum