This PR adds support for checkpoint/restart. deal.II uses SolutionTransfer for the serialization and so, the new code is very similar to the code to transfer data when the mesh is refined. I haven't tested the case where the chekpoint and the restart use different number of processors but when testing with more than 1 processor, the partitioning is different. This is because when we first create a mesh we use a cell-based partitioning whereas after the first refinement we use a dof-based partitioning. This gives me some confidence that it works as expected. Note that deal.II creates several files during serialization and that I also create a file to store the current time step number and the current time.
This PR adds support for checkpoint/restart. deal.II uses SolutionTransfer for the serialization and so, the new code is very similar to the code to transfer data when the mesh is refined. I haven't tested the case where the chekpoint and the restart use different number of processors but when testing with more than 1 processor, the partitioning is different. This is because when we first create a mesh we use a cell-based partitioning whereas after the first refinement we use a dof-based partitioning. This gives me some confidence that it works as expected. Note that deal.II creates several files during serialization and that I also create a file to store the current time step number and the current time.