Difference between revisions of "Analysis and post-processing"

From Einstein Toolkit Documentation
Jump to: navigation, search
(Kuibit)
(Expand kuibit table with more links to useful resources)
Line 16: Line 16:
 
| Ian Hinder and Barry Wardell
 
| Ian Hinder and Barry Wardell
 
|-
 
|-
! Licence
+
! License
 
| GPLv3
 
| GPLv3
 
|-
 
|-
Line 42: Line 42:
 
| Wolfgang Kastaun
 
| Wolfgang Kastaun
 
|-
 
|-
! Licence
+
! License
 
| GPLv3
 
| GPLv3
 
|-
 
|-
Line 77: Line 77:
 
| [http://yt-project.org/about.html many]
 
| [http://yt-project.org/about.html many]
 
|-
 
|-
! Licence
+
! License
 
| BSD 3-clause license
 
| BSD 3-clause license
 
|-
 
|-
Line 108: Line 108:
 
| Roberto De Pietri, Francesco Maione, Frank Löffler
 
| Roberto De Pietri, Francesco Maione, Frank Löffler
 
|-
 
|-
! Licence
+
! License
 
| GPL
 
| GPL
 
|-
 
|-
Line 127: Line 127:
 
| Federico Guercilena
 
| Federico Guercilena
 
|-
 
|-
! Licence
+
! License
 
| GPLv3
 
| GPLv3
 
|-
 
|-
Line 149: Line 149:
 
| David Radice
 
| David Radice
 
|-
 
|-
! Licence
+
! License
 
| GPLv3
 
| GPLv3
 
|-
 
|-
Line 168: Line 168:
 
| Christian Reisswig
 
| Christian Reisswig
 
|-
 
|-
! Licence
+
! License
 
| MIT
 
| MIT
 
|-
 
|-
Line 194: Line 194:
 
| Daniel Johnson, E. A. Huerta, Roland Haas
 
| Daniel Johnson, E. A. Huerta, Roland Haas
 
|-
 
|-
! Licence
+
! License
 
| NCSA
 
| NCSA
 
|-
 
|-
Line 218: Line 218:
 
| Jonas Lippuner, Luke Roberts  
 
| Jonas Lippuner, Luke Roberts  
 
|-
 
|-
! Licence
+
! License
 
| BSD 3-Clause License
 
| BSD 3-Clause License
 
|-
 
|-
Line 228: Line 228:
 
== Kuibit ==
 
== Kuibit ==
  
kuibit is a Python library to analyze simulations performed with the Einstein Toolkit largely inspired by PostCactus. kuibit can read simulation data and represent it with high-level classes.  
+
kuibit is a Python library to analyze simulations performed with the Einstein Toolkit largely inspired by Wolfgang Kastaun's PostCactus. kuibit can read simulation data and represent it with high-level classes.  
  
Partial list of features:
+
Partial list of features (for a full list, see documentation):
  
 
* Read and organize simulation data. Checkpoints and restarts are handled transparently.
 
* Read and organize simulation data. Checkpoints and restarts are handled transparently.
Line 246: Line 246:
 
{| class="wikitable" style="text-align:left;"
 
{| class="wikitable" style="text-align:left;"
 
! Homepage
 
! Homepage
| [https://github.com/Sbozzolo/kuibit https://github.com/Sbozzolo/kuibit]
+
| [https://github.comSbozzolo/kuibit https://github.com/Sbozzolo/kuibit]
 
|-
 
|-
 
! Authors
 
! Authors
 
| Gabriele Bozzola
 
| Gabriele Bozzola
 
|-
 
|-
! Licence
+
! License
 
| GPLv3
 
| GPLv3
 
|-
 
|-
 
!Requirements
 
!Requirements
| Python, packages listed in [https://github.com/Sbozzolo/kuibit/blob/master/poetry.lock poetry.lock]
+
| Python 3.6, packages listed in [https://github.com/Sbozzolo/kuibit/blob/master/poetry.lock poetry.lock]
 +
|-
 +
! Documentation
 +
| [https://sbozzolo.github.io/kuibit/ Documentation], [https://sbozzolo.github.io/kuibit/#examples Tutorials], [https://github.com/Sbozzolo/kuibit/tree/experimental/examples Examples]
 +
|-
 +
!Other Info
 +
| Available on [https://pypi.org/project/kuibit/ PyPI], same design as PostCactus in Wolfgang Kastaun's [https://github.com/wokast/PyCactus PyCactus], [https://github.com/Sbozzolo/kuibit/actions Unit tests] (automatic on commit)
 
|-
 
|-
 
|}
 
|}

Revision as of 17:14, 25 January 2021

(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.

SimulationTools

datavisualisation.png
Homepage simulationtools.org
Authors Ian Hinder and Barry Wardell
License 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.

PostCactus

Homepage https://github.com/wokast/PyCactus
Authors Wolfgang Kastaun
License GPLv3
Requirements Python 2.7, HDF5, 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.

yt

Homepage yt project
Authors many
License 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://hg@bitbucket.org/xarthisius/yt
cd yt
hg bookmark cactus
python setup.py 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.

PyCactus

Homepage https://bitbucket.org/knarrff/pycactus
Authors Roberto De Pietri, Francesco Maione, Frank Löffler
License 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.

rugutils

Homepage https://bitbucket.org/fguercilena/rugutils not working realastro fork of Guercilena's code
Authors Federico Guercilena
License 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.

scidata

Homepage https://bitbucket.org/dradice/scidata
Authors David Radice
License GPLv3
Requirements Python 2.7, NumPy, h5py

Simple, high-performance, Cactus/Carpet data reader for python-2.7. It serves as the underpinning of pyGraph.

pyGWAnalysis

Homepage https://svn.einsteintoolkit.org/pyGWAnalysis/
Authors Christian Reisswig
License 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/integrate-modes-ffi.py:

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")

POWER

Homepage https://git.ncsa.illinois.edu/elihu/Gravitational_Waveform_Extractor/
Authors Daniel Johnson, E. A. Huerta, Roland Haas
License NCSA
Requirements Python 2.7, NumPy,h5py

A simple set of GW analysis tools in python that computes strain from Psi4 using fixed-frequency integration and extrapolates to scrI+. Can be made to read Multipole date when using h5py.

./power.py simulations/J0040_N40

SkyNet

SkyNet is a general-purpose nuclear reaction network that was specifically designed for r-process nucleosynthesis calculations, but SkyNet is also applicable to other astrophysical scenarios.

Homepage https://jonaslippuner.com/research/skynet/
Authors Jonas Lippuner, Luke Roberts
License BSD 3-Clause License
Requirements cmake, hdf5, gsl, boost

Kuibit

kuibit is a Python library to analyze simulations performed with the Einstein Toolkit largely inspired by Wolfgang Kastaun's PostCactus. kuibit can read simulation data and represent it with high-level classes.

Partial list of features (for a full list, see documentation):

  • Read and organize simulation data. Checkpoints and restarts are handled transparently.
  • Work with scalar data as produced by CarpetASCII).
  • Analyze the multipolar decompositions output by Multipoles .
  • Analyze gravitational waves extracted with the Newman-Penrose formalism computing, among the other things, strains, overlaps, energy lost.
  • Work with the power spectral densities of known detectors.
  • Represent and manipulate time series. Examples of functions available for time series: integrate, derive, resample, to_FrequencySeries (Fourier transform).
  • Represent and manipulate frequency series, like Fourier transforms of time series. Inverse Fourier transform is available.
  • Manipulate and analyze gravitational-waves. For example, compute energies, mismatches, or extrapolate waves to infinity.
  • Work with 1D, 2D, and 3D grid functions as output by CarpetIOHDF5 or CarpetIOASCII.
  • Work with horizon data from as output by QuasiLocalMeasures and AHFinderDirect.
  • Handle unit conversion, in particular from geometrized to physical.
Homepage https://github.com/Sbozzolo/kuibit
Authors Gabriele Bozzola
License GPLv3
Requirements Python 3.6, packages listed in poetry.lock
Documentation Documentation, Tutorials, Examples
Other Info Available on PyPI, same design as PostCactus in Wolfgang Kastaun's PyCactus, Unit tests (automatic on commit)