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

Status codes #60

Closed fjebaker closed 1 year ago

fjebaker commented 1 year ago

Due to recent changes in the SciML ecosystem, return codes are now enums instead of symbols, which means we can't piggy-back custom return codes anymore. Consequently, have to keep track of them using an (allocated :cry:) parameter structure, which is updated during calls to terminate!.

The performance hit of this is fairly small, about 1 allocation per geodesic, but given we already have GC issues, this might prove a little annoying.

A few things we can maybe do to cope with that

In theory there is no need for the integrator to allocate anything, given we are only interested in the initial and final 8-vectors (pos + vel), so perhaps we can go digging as see if there's anything we can do on that front as well.