Should I save the data in both XDMF and HDF5 if I would like to re-read and visualize the results as well? Or the hdf5 file coupled with the xdmf file is appropriate for re-reading? I am asking because the documentation says: "XDMF is not suitable for checkpointing as it may decimate some data."
Yes. Hdf5 can restore a Function, for checkpointing. Xdmf will save complete information only for DG0 and CG1 spaces, otherwise it interpolates. Even if you use CG1 or DG0, there is no mechansim to read a Function from XDMF.