Krang api
Krang.AbstractCamera
Krang.AbstractGeometry
Krang.AbstractMaterial
Krang.AbstractMetric
Krang.AbstractPixel
Krang.AbstractScreen
Krang.ConeGeometry
Krang.ElectronSynchrotronPowerLawPolarization
Krang.IntensityCamera
Krang.IntensityPixel
Krang.IntensityScreen
Krang.Kerr
Krang.Mesh
Krang.SlowLightIntensityCamera
Krang.SlowLightIntensityPixel
Krang.SlowLightIntensityScreen
Krang.UnionGeometry
Krang.Gθ
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.emission_azimuth
Krang.emission_coordinates
Krang.emission_coordinates_fast_light
Krang.emission_inclination
Krang.emission_radius
Krang.get_radial_roots
Krang.horizon
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_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_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.screen_polarization
Krang.synchrotronIntensity
Krang.synchrotronPolarization
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, 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) -> 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 blackhole.
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
λ(_::Kerr, α, θo) -> Any
Energy reduced azimuthal angular momentum
Arguments
metric
: Kerrα
: Horizontal Bardeen screen coordinateθo
: Observer inclination
Krang.η Function
η(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 blackhole
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 assmyptotic 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 assmyptotic 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
Polarization Functions
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
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 assymptotic 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,
magfield::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,
magfield::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.
Raytracing API Related Functions
Krang.ElectronSynchrotronPowerLawPolarization Type
struct ElectronSynchrotronPowerLawPolarization <: Krang.AbstractMaterial
Linear polarization material from https://doi.org/10.3847/1538-4357/abf117
Krang.UnionGeometry Type
struct UnionGeometry{G1, G2} <: Krang.AbstractGeometry
Geometry that is comprised of the union of two geometries.
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(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
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(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 Intensity Pixels.
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 Intensity Pixels.
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
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(
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