RelativisticDynamics.jl documentation

Welcome to the documentation for RelativisticDynamics.jl, a relativistic orbital dynamics model for simulating spinning objects in curved spacetime.

Overview

RelativisticDynamics.jl is a numerical model for determining the spin-orbital dynamics of a spinning body, such as a pulsar, on a background Kerr spacetime. The code solves a set of ODEs numerically. These equations are based on the original works of Mathisson 1937, Papapetrou 1951 and Dixon 1964. Consequently these equations are known as the MPD equations. More recent works can be found in Mashoon & Singh 2006, Singh 2005, Singh, Wu & Sarty 2014 and Li,Wu & Singh 2019. Additional interesting discussion on the motion of extended bodies in GR can be found in Costa & Natário, 2015

Manual Outline

Please see the following pages of the documentation for more details

Features

As well as accurately describing the relativistic spin-orbital evolution of a spinning body in a curved spacetime RelativisticDynamics.jl is written in a way so as to be fully flexible in the number format. This enables the model to run not only at various levels of native precision (e.g. half/single/double) but also use custom number formats (e.g. Stochastic Rounding). Moreover, RelativisticDynamics.jl is generally differentiable using Zygote.jl, allowing for the input parameters to be tuned with respect to some user-defined loss function.

Installation

RelativisticDynamics.jl is registered in the Julia Registry. To install RelativisticDynamics.jl and its associated dependencies just:

(@v1.7) pkg> add RelativisticDynamics

which will automatically install the latest release.

Direct installation from the git branch is also possible:

(@v1.7) pkg> add https://github.com/tomkimpson/RelativisticDynamics.jl#branch_name

Acknowledgements

This work solving the MPD equations was originally motivated through interesting discussions with Kinwah Wu. The port to a modern, precision-flexible model in Julia was heavily inspired by Milan Klöwer. Huge thanks to both.

Contributions are always welcome - just open a pull request