=== I/O === For input and output purposes, the `HDF5 `_ file format is used throughout. To organize the data for output, the contents of a state to be stored are split up into different datasets that correspond, to all the asymptotic classes of the vertex in each channel, the self-energy, the frequency grids used, as well as the most important parameters of the calculation. The output file is then on a high level organized in terms of '':math:`\Lambda` layers'', the idea being that each layer enables access to a different state stored inside the same file. This enables the output of, e.g., the results of a full mfRG flow into a single file, where each '':math:`\Lambda` layer index'' corresponds to a different value of the regulator. Alternatively, this structure can be used to store the results of all the iterations done during a solution of the parquet equations separately. Of course, one can equally well use just a single layer to store the end result of a computation, such as a converged solution of the parquet equations or the result of a PT2 computation. .. doxygenfunction:: write_state_to_hdf(const H5std_string FILE_NAME, double Lambda_i, const int Lambda_size, const State& state_in, const bool verbose=true, const bool is_converged=false) .. doxygenfunction:: add_state_to_hdf(const H5std_string FILE_NAME, int Lambda_it, const State& state_in, const bool is_converged=false, const bool verbose=true) .. doxygenfunction:: read_state_from_hdf(const H5std_string& filename, int Lambda_it)