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

Reply via email to