#ifndef SRC_HDF_RESTART_HDF_HH #define SRC_HDF_RESTART_HDF_HH #include <dune/fufem/hdf5/file.hh> #include <dune/fufem/hdf5/sequenceio.hh> template <class ProgramState> class RestartBodyIO { public: RestartBodyIO(HDF5::Grouplike& group, const size_t vertexCount, const size_t id); void write(const ProgramState& programState); void read(size_t timeStep, ProgramState& programState); private: const size_t id_; HDF5::SequenceIO<2> displacementWriter_; HDF5::SequenceIO<2> velocityWriter_; HDF5::SequenceIO<2> accelerationWriter_; HDF5::SequenceIO<1> stateWriter_; HDF5::SequenceIO<1> weightedNormalStressWriter_; }; template <class ProgramState> class RestartIO { public: RestartIO(HDF5::Grouplike& group, const std::vector<size_t>& vertexCounts); ~RestartIO(); void write(const ProgramState& programState); void read(size_t timeStep, ProgramState& programState); private: std::vector<RestartBodyIO<ProgramState>* > bodyIO_; HDF5::SequenceIO<0> relativeTimeWriter_; HDF5::SequenceIO<0> relativeTimeIncrementWriter_; }; #endif