See attached file.The test is really simple. The HDF5 file contains two (equal) datasets/vectors:
- One dataset u in the root of the file "/" - One dataset v in the group "/FIELDS"The example program tries to load two vectors, u and v, from the file. The PetscViewerHDF5PushGroup is set to "/FIELDS" for both. It will first try to load u, then v.
If everything works, it SHOULD FAIL on loading u, since this vector is not stored in the correct location in the HDF5 file. PETSc should search in "/FIELDS" for this vector, not "/". It should however SUCCEED in loading "v", since this is located correctly.
In my latest version of PETSc from Git, this is inverted. The program SUCCEED in loading u, and FAIL in loading v. Something is wrong...
BTW: Is there an error in DM ex4? Is the vector u destroyed properly? Håkon On 14. nov. 2014 05:19, Barry Smith wrote:
Sorry no one answered this before, I had assumed someone who knew something about HDF5 would answer but instead looks like I have to. Could you please send a simple example code (and data file) that reproduces the problem. I looked at the code and (in theory) it should handle the group ok. Again sorry for the long delay in anyone answering. BarryOn Nov 6, 2014, at 2:24 AM, Håkon Strandenes <[email protected]> wrote: Hi, I am trying to load a dataset from a HDF5 file and into a vector in PETSc. For that purpose I use VecView etc in the following way: PetscViewerHDF5Open(PETSC_COMM_WORLD, "input.h5", FILE_MODE_READ, &H5viewer); PetscViewerHDF5PushGroup(H5viewer, "/FIELDS"); VecLoad(gSol, H5viewer); PetscViewerDestroy(&H5viewer); And yes, I also check the return variables for errors, I have just omitted them from this example to make it easier to read. My problem is: If I place a dataset, with the correct name and dimensions, in the group "/FIELDS" in my input.h5, PETSc can't find it and won't load it. If I place the same dataset in the root of my HDF5 file, the dataset is loaded and everything works, even with PetscViewerHDF5PushGroup set to "/FIELDS"... Does actually VecLoad obey the group set by PetscViewerHDF5PushGroup? Best regards, Håkon Strandenes
VecLoadTest.tar.gz
Description: application/gzip
