Simulations were mostly carried out on a single NVIDIA A100-SXM4-80GB GPU, with the exception of the solutal Stefan problem and the 3D grain growth simulations.
The solutal Stefan problem was calculated on a single core of an AMD EPYC 7713 CPU, as it was simply a 1D problem.
The 3D grain growth simulations were calculated on 4 GPUs.

Due to the data size, the raw data for the 3D grain growth simulations is not included.

The JSON metadata file should be mostly self-explanatory.
The top-level contains general data about the simulation as well as the top-level integrator; information includes e.g. local GPU count (GPUs per node) and how many MPI processes were spawned (nprocs); note that only up to min(nprocs, local gpu count) GPUs are actually employed.
Below this integrator-specific information is stored; for adaptive integrator, the relevant parameters as described in the paper are listed as well.
Some information about the adaptive process may be stored either in a statistical variant or fully (with full data referring to external files of the format 3xFP64 = time, step, error).
Base integrators eventually have a counter for the number of times they integrated their RHS; for coupled integrators, this is currently the same, but e.g. with a split or partitioned integrator this would be different.

For parsing and usage, we basically transpose the tree structure which is easy to generate from the employed class hierarchy; see THandler in helpers.py for details.
The resulting meta for a single integrator can be queried for any datum in the subtree leading to it as it still has a handle to this subtree.
