-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Problems with the thick disc transfer functions #160
Comments
Thanks to @wiktoriatarnopolska, we've identified the discrepency as coming from the inner regions, less than 5rg. That is, there is a flux deficit in the transfer functions at hard Setting the inner radius to 5 and outer to 500 shows good agreement. There is also an issue related to the binning method not trimming the outer edge of the disc correctly, but I will track that in a seperate issue. It just makes comparisons at small r (where the emissivity is comparatively big) a little tricky, as there is manifestly a flux difference. |
Outer red ring is 5rg, inner red is 2rg: clearly, there is no obscuration yet. The yellow band is the radius as calculated by a point function, as a sanity check: The inner black ring is not traced by the binning method. This means that technically the binning method is inaccurate at steep inclination, which is worth keeping in mind. |
We tried setting emissivity to 1, such that all radii are weighted equally. However, aliasing biases in the binning method rendered that line of inquiry pretty inert. However x 2, I have been trying instead setting steeper emissivites, à la Now, setting the inner radius to the isco reveals this: We see the transfer function has an entirely different flux profile from these regions. If we disable obscuration in the transfer function calculation entirely, we obtain this (red): There is obscuration at play here. |
Emissivity set to bins = collect(range(0.1, 1.5, 200))
m = KerrMetric(1.0, 0.998)
ssd = ShakuraSunyaev(m, eddington_ratio = 0.3)
remin = 5.0 # Gradus.isco(m) + 1e-2
remax = remin + 0.5
i = 45
x = SVector(0.0, 1000.0, deg2rad(i), 0.0)
tf30 = @time calculate_line_profile(m, x, ssd, bins; minrₑ = remin, maxrₑ = remax)
bn30 = @time calculate_line_profile_binned(m, x, ssd, bins; minrₑ = remin, maxrₑ = remax)
begin
p = plot(legend=:topleft, title = "$(Base.typename(typeof(m)).name) a=$(m.a)")
plot!(bins, tf30, label = "tf$i")
plot!(bins, bn30, label = "bn$i", linestyle = :dot)
p
end |
Bingo: function calc_plot_rad(remin)
@info remin
remax = remin + 0.1
i = 45
x = SVector(0.0, 1000.0, deg2rad(i), 0.0)
tf30 = @time calculate_line_profile(m, x, ssd, bins; minrₑ = remin, maxrₑ = remax)
bn30 = @time calculate_line_profile_binned(m, x, ssd, bins; minrₑ = remin, maxrₑ = remax)
tf30, bn30
end
tf, bn = calc_plot_rad(1.3) Found the excess flux: small g at small radii, here with emissivity set to 1. It's very odd though, since they both find the maximal |
We discovered the discrepancy is due to the transfer function method "seeing" emission radii that are supposedly hidden. By tweaking the I reworked the entire visibiliy detection algorithm to also the dot product between surface normal and final geodesic velocity, but even that introduces significant noise still: This isn't even a particularly low resolution calculation... |
Using this issue to track progress on clamping down why the transfer function integration and the regular binning method for calculating the line profiles disagree.
Crux of the problem:
Code to reproduce
The text was updated successfully, but these errors were encountered: