astro-group-bristol / Gradus.jl

Extensible spacetime agnostic general relativistic ray-tracing (GRRT).
https://astro-group-bristol.github.io/Gradus.jl/dev/
GNU General Public License v3.0
18 stars 2 forks source link

Another attempt at some transfer function fixes #170

Closed fjebaker closed 1 year ago

fjebaker commented 1 year ago

I actually had a really cool idea for this one:

$$ \left\lvert \frac{\partial r }{ \partial r_\text{e}} \right\rvert = \lvert \sin\theta \rvert^{-1}, $$

and then

$$ \left\lvert \frac{\partial(\alpha, \ \beta)}{\partial(r\text{e}, \ g^\ast)} \right\rvert = \left\lvert \frac{\partial(\alpha, \ \beta)}{\partial(r, \ g^\ast)} \right\rvert \left\lvert \frac{\partial r }{ \partial r\text{e}} \right\rvert. $$

Cool huh? Especially since in general $\delta r > \delta r_\text{e}$.

Well, $\lvert \partial h / \partial r_\text{e} \rvert$ can be evaluated with AD from the cross section function, and then we can do

$$ \left\lvert \frac{\partial(\alpha, \ \beta)}{\partial(r_\text{e}, \ g^\ast)} \right\rvert = \left\lvert \frac{\partial(\alpha, \ \beta)}{\partial(h, \ g^\ast)} \right\rvert \left\lvert \frac{\partial h}{ \partial r} \right\rvert, $$

which works really well at those fiddly small radii, since now $\delta h >> \delta r_\text{e}$, and the Jacobian integrator tolerances can be set to something more or less sensible again.

Performance of the transfer functions really needs to be added to a benchmark suite to make sure this kind of stuff doesn't cause regressions.

codecov-commenter commented 1 year ago

Codecov Report

Patch coverage: 87.87% and project coverage change: +0.08% :tada:

Comparison is base (b2f1060) 68.79% compared to head (9019743) 68.87%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #170 +/- ## ========================================== + Coverage 68.79% 68.87% +0.08% ========================================== Files 66 66 Lines 2753 2773 +20 ========================================== + Hits 1894 1910 +16 - Misses 859 863 +4 ``` | [Files Changed](https://app.codecov.io/gh/astro-group-bristol/Gradus.jl/pull/170?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=astro-group-bristol) | Coverage Δ | | |---|---|---| | [src/tracing/precision-solvers.jl](https://app.codecov.io/gh/astro-group-bristol/Gradus.jl/pull/170?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=astro-group-bristol#diff-c3JjL3RyYWNpbmcvcHJlY2lzaW9uLXNvbHZlcnMuamw=) | `68.10% <63.63%> (-1.35%)` | :arrow_down: | | [...ransfer-functions/cunningham-transfer-functions.jl](https://app.codecov.io/gh/astro-group-bristol/Gradus.jl/pull/170?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=astro-group-bristol#diff-c3JjL3RyYW5zZmVyLWZ1bmN0aW9ucy9jdW5uaW5naGFtLXRyYW5zZmVyLWZ1bmN0aW9ucy5qbA==) | `97.40% <100.00%> (+0.05%)` | :arrow_up: | | [src/transfer-functions/integration.jl](https://app.codecov.io/gh/astro-group-bristol/Gradus.jl/pull/170?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=astro-group-bristol#diff-c3JjL3RyYW5zZmVyLWZ1bmN0aW9ucy9pbnRlZ3JhdGlvbi5qbA==) | `94.47% <100.00%> (+0.32%)` | :arrow_up: |

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.