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
16 stars 2 forks source link
astrophysics black-holes general-relativity geodesic grrt julia physics radiative-transfer ray-tracing raytracing relativistic-ray-tracing

BRImage

Gradus.jl

Docs

DOI

Docs

Docs

Spacetime generic, general relativistic ray-tracing (GRRT) in Julia. See our documentation for more details and usage.

This package is in development and subject to rapid breaking changes, with documentation updates lagging behind features.

About

Gradus.jl is a suite of tools related to tracing geodesics and calculating observational signatures. Gradus.jl requires only a specification of the non-zero metric components of a chosen spacetime in order to solve the geodesic equation and compute a wide variety of trajectories and orbits. Various algorithms for calculating physical quantities are implemented generically, so they may be used with different classes of spacetime with minimal implementation.

Currently, Gradus.jl can be used for any static, axis-symmetric spacetime to calculate:

The library is written to make adding new features as effortless as possible. See Examples for more. Many new features are currently being developed as our research advances.

Gradus.jl uses DifferentialEquations.jl and ForwardDiff.jl as the backend for integrating and solving the geodesic equation for arbitrary metrics, and vendors the DifferentialEquations.jl solver and callback system, making Gradus.jl easy to extend for new problems. Gradus.jl currently supports multi-CPU integration and analysis, with GPU support on the horizon.

Usage

We assume you already have Julia >1.6.

All non-General dependencies for Gradus.jl are in the AstroRegistry which can be added to Julia with:

julia>] registry add https://github.com/astro-group-bristol/AstroRegistry

NB: the Julia General Registry is required to install Gradus, however this should be configured by default with any Julia installation.

Gradus.jl can then be fetched easily:

julia>] add Gradus
julia> using Gradus

See GettingStarted for setting up your first traces.

See also


Astrophysics Group Bristol