Added the BoyerLindquist + Refraction metric from Chainakun et al. (2022) with the AD backend.
There exists an issue with this 2nd order approach, namely that a direct discontinuity between the region of n > 1 and n = 1 means the AD has no gradient to compute, and the trajectories lose energy. To avoid this, I added an interpolated region which uses an arctan function to very closly mimic the shape of a step function, and provide a steep gradient along the corona membrane. This method keeps energy constant, and seems to yield good results.
Colouring by radial coordinate, a=1, n=1.1
m = KerrRefractiveAD(M=1.0, a=0.998, n=1.1, corona_radius=20.0)
Added the BoyerLindquist + Refraction metric from Chainakun et al. (2022) with the AD backend.
There exists an issue with this 2nd order approach, namely that a direct discontinuity between the region of n > 1 and n = 1 means the AD has no gradient to compute, and the trajectories lose energy. To avoid this, I added an interpolated region which uses an arctan function to very closly mimic the shape of a step function, and provide a steep gradient along the corona membrane. This method keeps energy constant, and seems to yield good results.
Colouring by radial coordinate, a=1, n=1.1
which may be rendered as usual:
For a=1, n=0.95: