Analysis and post-processing

From Einstein Toolkit Documentation
Jump to: navigation, search

(page under construction)

This page collects information on existing tools which can be used to analyse data produced using the Einstein Toolkit. See also Visualization of simulation results.


Authors Ian Hinder and Barry Wardell
Licence GPLv3
Requirements Mathematica (proprietary)
Other info Documentation, unit tests (automatic on commit)

SimulationTools provides a functional interface to simulation data which deals transparently with merging output from different segments, and can read data from several different thorns, depending on what is available. The package supports reading Carpet HDF5 data and doing the required component-merging etc. so that you can do analysis on the resulting data in Mathematica. This supports 1D, 2D and 3D data, but is essentially dimension-agnostic. It has a component called SimulationOverview which displays a panel summarising a BBH simulation, including run speed and memory usage as a function of coordinate time, BH trajectories, separation, waveforms, etc. SimulationTools is coupled to a C++ replacement for the Mathematica HDF5 reader.

SimulationTools is available under the GPL and is developed on BitBucket, and would be a good candidate for including in the Einstein Toolkit at some point.

A more detailed overview of the features in SimulationTools is available.


Authors Wolfgang Kastaun
Licence GPLv3
Requirements Python 2.7, HDF5, PyTables, H5Py, NumPy, SciPy
Other info Wiki

This package contains modules to read and represent various CACTUS data formats in Python, and some utilities for data analysis. In detail,

  • simdir is an abstraction of one or more CACTUS output directories, allowing access to data of various type by variable name, and seamlessly combining data split over several directories.
  • cactus_grid_h5 reads 1,2 and 3D data from CACTUS hdf5 datasets.
  • cactus_grid_omni uses whatever data source it finds, e.g. cut a 3D file to get xy plane data
  • grid_data represents simple and mesh refinened datsets, common arithmetic operations on them, as well as interpolation.
  • cactus_scalars reads CACTUS 0D/Reductions ASCII files representing timeseries.
  • cactus_gwsignal reads GW data
  • cactus_multipoles reads multipole decomposition data (ASCII)
  • timeseries represents timeseries and provides resampling numerical differentiation.
  • fourier_util performs FFT on timeseries and searches for peaks.
  • unitconv performs unit conversion with focus on geometric units, including predefined CACTUS, PIZZA, and CGS systems.


Homepage yt project
Authors many
Licence BSD 3-clause license
Requirements all in one install script
Other info Documentation

Mostly a visualization toolkit with basic support to read Cactus data, however can do some data manipulation. The current version of the Einstein Toolkit frontend is available in Kacper Krowalik's fork of yt. It is a work in progress and highly experimental. Therefore many datasets will not be read in correctly. To attain it:

hg clone ssh://
cd yt
hg bookmark cactus
python build_ext -i

if this works, you installed yt. Now just add $(pwd) to your PYTHONPATH.

Some example scripts for using and extending yt (and using the Einstein Toolkit frontend) can be found here.


Authors Roberto De Pietri, Francesco Maione, Frank Löffler
Licence GPL
Requirements Python

PyCactus are tools currently primarily developed to read Carpet ASCII and HDF5 data (especially 0D/1D) for usage in python and plotting using matplotlib. Documentation is essentially non-existent at this point, but the scripts are not that long and for the most part should be understandable.


Homepage [1]
Authors Federico Guercilena
Licence GPLv3
Requirements Python 3, NumPy, Matplotlib, h5py, HDF5

A minimalist set of tools to read and plot Carpet data, with an equally minimalist set of dependencies, written in Python 3. The tools allow to read and plot 0D, Scalar, 1D data in ASCII format and 2D data in HDF5 format. The focus of these tools is to allow quickly looking at large data sets in a hassle-free way, without worrying too much about producing beautiful, publication ready figures. The main piece of software is the "rug" script, with four subcommands (rope, freeze, snake and window) to deal with various kinds of data. Quite a lot of documentation is available on the command line by typing: 'rug doc command' where command is one of the available command names.


Authors David Radice
Licence GPLv3
Requirements Python 2.7, NumPy, h5py

Simple, high-performance, Cactus/Carpet data reader for python-2.7.


Authors Christian Reisswig
Licence MIT
Requirements Python 2.7, NumPy

A simple set of GW analysis tools in python. Can be made to read Multipole date when using h5py for example in pyGWAnalysis/Examples/

t = dataset[:,0]
RePsi4 = dataset[:,1]
ImPsi4 = dataset[:,2]
WF[l][m] = WaveFunction(t, RePsi4, ImPsi4)
# WF[l][m].Load("rPsi4_l"+str(l)+"m"+str(m)+".dat")