aurel: A Python package for automatic relativistic calculations

aurel: A Python package for automatic relativistic calculations
Notice: This research summary and analysis were automatically generated using AI technology. For absolute accuracy, please refer to the [Original Paper Viewer] below or the Original ArXiv Source.

\texttt{aurel} is an open-source Python package designed to \emph{au}tomatically calculate \emph{rel}ativistic quantities. It uses an efficient, flexible and user-friendly caching and dependency-tracking system, ideal for managing the highly nonlinear nature of general relativity. The package supports both symbolic and numerical calculations. The symbolic part extends \texttt{SymPy} with additional tensorial calculations. The numerical part computes a wide range of tensorial quantities, such as curvature, matter kinematics and much more, directly from any spacetime and matter data arrays using finite-difference methods. Inputs can be either generated from analytical expressions or imported from Numerical Relativity (NR) simulations, with helper functions provided to read in data from standard NR codes. Given the increasing use of NR, \texttt{aurel} offers a timely post-processing tool to support the popularisation of this field.


💡 Research Summary

The paper presents aurel, an open‑source Python library designed to automate the calculation of relativistic quantities in both symbolic and numerical contexts. The authors identify a growing need in the general‑relativity (GR) and numerical‑relativity (NR) communities for a unified, code‑agnostic post‑processing framework that reduces repetitive, error‑prone implementation of tensorial diagnostics. Existing tools either focus on symbolic tensor algebra (e.g., GraviPy, EinsteinPy, PyGRO, OGRePy) or on solving Einstein’s field equations within specific NR codes (Einstein Toolkit, GRChombo, ExaGRyPE). None provide a seamless bridge between symbolic manipulation, high‑order finite‑difference numerics, and flexible data ingestion from diverse NR outputs.

Architecture. aurel consists of two complementary modules:

  1. Au​relC/eSymbo​lic – built on SymPy, it extends the symbolic engine with tensor index handling, covariant/contravariant differentiation, Lie derivatives, and automatic generation of derived expressions (e.g., Ricci, Weyl scalars).
  2. AurelCore – a NumPy‑based engine that implements high‑order finite‑difference schemes (2nd, 4th, 6th, 8th order) with periodic, symmetric, or one‑sided boundary conditions. It heavily exploits numpy.einsum for memory‑efficient tensor contractions.

Automatic Dependency Resolution. The core innovation is a lazy‑evaluation, memoised‑property pattern. Each physical quantity is defined as a method that may depend on other quantities. When a user accesses a dictionary‑style key such as `rel


Comments & Academic Discussion

Loading comments...

Leave a Comment