Multiblock domain temporal (XDMF/HDF5) animation error

Dear all,

I am trying to create an animation using temporal data from a CFD simulation which is stored in a HDF5 file (created using version 1.10.4) and I am getting the following error when I try to animate a contour:

HDF5-DIAG: Error detected in HDF5 (1.8.13) thread 0:
 H5Dread(): selection+offset not within extent
         major: Dataspace
         minor: Out of range
 vtkXdmfReader (0x82993a0): Failed to read attribute data

The steps that lead to this error are (here I am using Paraview 5.6, but have also tested versions 5.5.2 and 5.4.1):

  1. Load an HDF5 with multiple blocks of different sizes using the XDMF(2) reader. The HDF5 contains point data. Further details about the hdf5 structure are provided below. The multiple sizes is critical here. When all blocks have the same size, then no error occurs.
  2. Create a Contour (for this case Paraview defaults to the ‘u’ field with a default value. This is not critical to showcase the problem).
  3. Clicking the play/animate button (right facing green triangle button) starts to animate but produces the above error while trying to load any further step.

Data that I am loading:

  • tsig.h5 HDF5 with 5 temporal steps and 4 spatial blocks. Of the spatial blocks, these have 2 different sizes, that is, blocks 1 and 2 have a size of (50,30,33) and blocks 3 and for have a size of (75,27,33). In this HDF5 file there are only stored point data values, no geometry information is here stored. (External link due to size (23MB) )
  • tsig-grid.h5 (2.7 MB) HDF5 with geometric information, namely XYZ coordinates.
  • tsig.xdmf (29.0 KB) XDMF file loaded into paraview. The structure is as follows:
    There is a temporal collection (top group) and each (time)step consists of a spatial collection. Grid topology is a 3DSMesh and coordinates are stored in XYZ format.

Note that, if in step (2) instead of creating a contour, I just choose as representation “Surface” and then click play (step (3) ), the animation is performed correctly. Thus, I seems that the data is loaded correctly (or at least the surface data).

A further test that I performed was to create XDMFs which grouped blocks of the same size, tsig-blocks1_2.xdmf (15.0 KB) and tsig-blocks3_4.xdmf (15.0 KB).

When I open these two xdmf individually and apply a filter to each of them, then the animation works. However, if I apply a “Group Datasets” filter and then I apply a “Contour” filter, the error appears again. Note that only the “xdmf” files changed, not the “h5” files.

Analogoursly, if I apply a “Extract Subset” filter and select an extend smaller than the size of the smallest block and then apply a contour filter, the animation works.

A further comment, although I am always referring to using the “Contour” filter. I tried to used the “Calculator” filter and I am getting the same error. Thus, I do not think that it is strictly a problem with the “Contour” filter.

On a final note, I did notice that the error thrown by Paraview stated HDF5 version 1.8 and I stated that I had used version 1.10 (I can also add that I created the h5 file using h5py with the hdf5 library compiled for parallel usage). I do not believe this version difference to be the source of the problem because, as stated, I can load the blocks correctly and animate them if I do not use any filter.

Having stated this, I believe there may be a bug/error in how the blocks sizes are transferred to the filters when an animation is performed.
I would like to ask if someone else is experiencing or has experienced a similar problem.

Additionally, although I think my xdmf/h5 set-up is correct, if you spot any issues with these files, I am more than happy to learn about them.

Thank you for your help.