
Welcome to aurel’s documentation!
Aurel is an open source Python package for numerical relativity analysis. Designed with ease of use in mind, it will automatically calculate any relativistic term your heart desires.
(As long as it is in the list of available entities, see descriptions.)
In addition, this package also provides tools for advanced numerical computations, including:
finite difference schemes for 3D grids,
tools for tensor calculations,
tools to import data from Einstein Toolkit simulations.
Installation
Install FFTW, depending on your operating system,
on Ubuntu/Debian you can run:
sudo apt install libfftw3-dev
on macOS you can run:
brew install fftw
orsudo port install fftw-3
depending on your package manager.
This is needed for the spinsfast package.
Install aurel using pip:
pip install aurel
all other required packages will be installed automatically.
Getting started
Start your Python session on a jupyter notebook or in a Python script and import the AurelCore class:
import aurel
# Define your grid parameters
param = {
'Nx': 64, 'Ny': 64, 'Nz': 64,
'xmin': -1.0, 'ymin': -1.0, 'zmin': -1.0,
'dx': 0.03125, 'dy': 0.03125, 'dz': 0.03125,
}
# Initialize the finite difference class
fd = aurel.FiniteDifference(param)
# Initialize the AurelCore class
rel = aurel.AurelCore(fd)
At this point you need to provide the spacetime metric, extrinsic curvature and matter fields, see Required quantities. These are passed as numpy arrays to aurel in the following way:
# Define the xx component of the spacetime metric
rel.data['gxx'] = np.ones((param['Nx'], param['Ny'], param['Nz']))
and so on for the other components and required quantities. In this example \(g_{xx} = 1\), but you can pass any numpy array; it can be of numerical relativity simulation data, or an array generated from an analytical expression.
Assumptions are made for other core quantities, if these are not valid they should be overwritten at this point, see Assumed quantities.
With everything defined, you can call any entity listed in the descriptions list. Just call it as:
rel["name_of_the_entity"]
Aurel will automatically do its best to calculate any relativistic term you ask for.
For further examples on how to use aurel see:
the Example notebook, for an in depth description with tips and tricks,
the tov_ET notebook, for an example of how to load in data from an Einstein Toolkit simulation.
Links
GitHub page: https://github.com/robynlm/aurel
PyPI page: https://pypi.org/project/aurel/
Contact the author at : r.l.munoz@sussex.ac.uk