SimulationTools for Mathematica
15th August 2013
We present “SimulationTools for Mathematica” (http://simulationtools.org/), available as free software under the GNU General Public License. SimulationTools is a Mathematica application for analysing data from numerical simulations. It has a modular design applicable to general grid-based numerical simulations, and contains specific support for the Cactus code, with a focus on the field of Numerical Relativity and the Einstein Toolkit.
SimulationTools provides a functional, programmable interface to simulation data. A highly-optimised HDF5 module can be used for reading HDF5 data from production simulations, including 1D, 2D and 3D grid data produced by the Carpet code. Simulation details such as filenames, file formats, and details of parallel I/O are hidden from the user.
Numeric data with attached coordinate information is manipulated using new data types. Many useful new functions are defined on these types, and most built-in numerical Mathematica functions such as +, -, *, /, Abs, Sin, Log and Max can be used transparently. There is also support for testing numerical convergence, with automatic resampling onto a common grid if desired.
SimulationTools has generic functionality useful for analysis of many types of data, as well as explicit support for codes including Cactus, Carpet, Llama, SimFactory and many other components of the Einstein Toolkit. It provides an overview of the state of a simulation, including speed, memory usage, and physics (e.g. trajectories and waveforms from a binary system). The design is modular, and support for output from other codes can be added.
Specific functionality for Numerical Relativity is available. Gravitational waveforms can be read from simulations using natural function semantics, and the waveforms can be manipulated, for example converting between Psi4 and strain and extrapolation to infinity. An abstraction for “binary systems” provides a convenient interface to the trajectories of members of a binary system tracked with codes from the Einstein Toolkit. Support for reading black hole masses and spins is also included. Data in the Numerical Relativity Data Format (as used in the NINJA and NR-AR projects) can be read using the same functions that are used for normal simulation data.
More details are available on the SimulationTools website (http://simulationtools.org), including an extensive feature summary, a list of capabilities and online documentation (http://simulationtools.org/Documentation/English/Tutorials/SimulationTools.html). Tutorials and reference documentation are also available within the standard Mathematica documentation system. Code quality is maintained to a high standard with ~400 unit tests.
SimulationTools has been in production use for over 5 years and has been used at several research institutions worldwide. We invite you to try out the code (http://simulationtools.org/download), join the mailing list (http://simulationtools.org/mailman/listinfo/users) and freely use SimulationTools for your research.
Ian Hinder and Barry Wardell