LLNL / ExaConstit

A crystal plasticity FEM code that runs on the GPU
BSD 3-Clause "New" or "Revised" License
46 stars 13 forks source link

Add support for restart files #7

Open rcarson3 opened 4 years ago

rcarson3 commented 4 years ago

For large simulations, the ability to restart the simulations is vital.

We need to be able to save out the mesh, velocity field, current time step, end-time step state variables, and end-time step stress state. All the other data can be recovered from our initial data files. In order to do this we'll need to help expand some of the MFEM data collections for this purpose. Currently, the various data collections do not support saving out or loading QuadratureFunction data which is needed for the state variable and stress states.

Conduit and ADIOS2 data collections might be our best bet to get these fields implemented.

rcarson3 commented 4 years ago

One possible way to support this now would be potentially to save the quadrature data off using an L2 FiniteElementSpace GridFunction of the same order as the QuadratureFunction using the SidreDataCollections. This assumes that when things are saved off that the L2 data isn't projected back to the nodal points but instead stays at the quadrature values. The one thing would be when things are reloaded we may not be able to guarantee that the QuadratureSpace will be correctly restored when things are reloaded.

rcarson3 commented 3 years ago

So this should be really easy once PR# https://github.com/LLNL/axom/pull/433 is pulled in. Afterwards, we just have to load back-up the desired cycle for the user, and we'll be off to the races :) Also, the PR there actually supports QF themselves, so we know everything is at quadrature points for our state variables. Although, we might have to wait on a subsequent PR that I'll write within MFEM as well for everything to be in-place.