Hi Berend, > On 14 Sep 2021, at 12:23, Matthew Knepley <[email protected]> wrote: > > On Tue, Sep 14, 2021 at 5:15 AM Berend van Wachem <[email protected]> > wrote: > Dear PETSc-team, > > We are trying to save and load distributed DMPlex and its associated > physical fields (created with DMCreateGlobalVector) (Uvelocity, > VVelocity, ...) in HDF5_XDMF format. To achieve this, we do the following: > > 1) save in the same xdmf.h5 file: > DMView( DM , H5_XDMF_Viewer ); > VecView( UVelocity, H5_XDMF_Viewer ); > > 2) load the dm: > DMPlexCreateFromfile(PETSC_COMM_WORLD, Filename, PETSC_TRUE, DM); > > 3) load the physical field: > VecLoad( UVelocity, H5_XDMF_Viewer ); > > There are no errors in the execution, but the loaded DM is distributed > differently to the original one, which results in the incorrect > placement of the values of the physical fields (UVelocity etc.) in the > domain. > > This approach is used to restart the simulation with the last saved DM. > Is there something we are missing, or there exists alternative routes to > this goal? Can we somehow get the IS of the redistribution, so we can > re-distribute the vector data as well? > > Many thanks, best regards, > > Hi Berend, > > We are in the midst of rewriting this. We want to support saving multiple > meshes, with fields attached to each, > and preserving the discretization (section) information, and allowing us to > load up on a different number of > processes. We plan to be done by October. Vaclav and I are doing this in > collaboration with Koki Sagiyama, > David Ham, and Lawrence Mitchell from the Firedrake team.
The core load/save cycle functionality is now in PETSc main. So if you're using main rather than a release, you can get access to it now. This section of the manual shows an example of how to do things https://petsc.org/main/docs/manual/dmplex/#saving-and-loading-data-with-hdf5 Let us know if things aren't clear! Thanks, Lawrence
