openPMD / openPMD-api

:floppy_disk: C++ & Python API for Scientific I/O
https://openpmd-api.readthedocs.io
GNU Lesser General Public License v3.0
134 stars 51 forks source link

Possible extra `/` in data path #1487

Closed roelof-groenewald closed 11 months ago

roelof-groenewald commented 11 months ago

Describe the bug We are trying to load data generated with WarpX into VisIt but getting an error saying:

/data/506/fields//B/z: Invalid size for the current dataset (943200 10485760)

To Reproduce I can provide a WarpX input script if desired but I expect that won't be necessary.

Expected behavior Data file to load successfully into VisIt.

Software Environment

roelof-groenewald commented 11 months ago

cc @ax3l.

ax3l commented 11 months ago

@franzpoeschel I think @roelof-groenewald is using the vanilla ADIOS2 reader in VisIt and it seems to struggle with the double // that we seem to accidentally append?

Could this be from joining with the meshesPath (which usually ends in a / according to the standard)?

franzpoeschel commented 11 months ago

Assuming you have output of the form simData_0.bp simData_100.bp simData_200.bp ..., can you please show the output of:

> bpls simData_506.bp
> openpmd-ls simData_%T.bp
> openpmd-ls simData_506.bp
roelof-groenewald commented 11 months ago

To clarify, these problems are happening when trying to open .h5 files in VisIt.

We overwrote the old data with an attempt at a fresh run but we still get the same problem:

viewer: There was an error opening /data/760/fields//B/z: Invalid size for the current dataset (746496 7864320)

Here are the requested output for that file:

> h5ls -r openpmd_000760.h5
/                        Group
/data                    Group
/data/760                Group
/data/760/fields         Group
/data/760/fields/B       Group
/data/760/fields/B/x     Dataset {144, 72, 72}
/data/760/fields/B/y     Dataset {144, 72, 72}
/data/760/fields/B/z     Dataset {144, 72, 72}
/data/760/fields/E       Group
/data/760/fields/E/x     Dataset {144, 72, 72}
/data/760/fields/E/y     Dataset {144, 72, 72}
/data/760/fields/E/z     Dataset {144, 72, 72}
> openpmd-ls openpmd_000760.h5 
openPMD series: openpmd_000760
openPMD standard: 1.1.0
openPMD extensions: 1

data author: unknown
data created: 2023-07-27 12:40:26 -0700
data backend: HDF5
generating machine: unknown
generating software: WarpX (version: Unknown)
generating software dependencies: unknown

number of iterations: 1 (fileBased)
  all iterations: 760 

number of meshes: 2
  all meshes:
    B
    E

number of particle species: 0
> openpmd-ls openpmd_%T.h5 
openPMD series: openpmd_%T
openPMD standard: 1.1.0
openPMD extensions: 1

data author: unknown
data created: 2023-07-27 12:09:42 -0700
data backend: HDF5
generating machine: unknown
generating software: WarpX (version: Unknown)
generating software dependencies: unknown

number of iterations: 6485 (fileBased)
franzpoeschel commented 11 months ago

Ah, I assumed ADIOS2 because HDF5 is natively hierarchical, meaning that a duplicate slash cannot occur in a dataset since that's just not how they are represented. The output that you show above seems to confirm that. From what I see, the dataset itself is not the root of this issue. Together with the fact that I never saw an error message like that in the openPMD-api, this looks more like a VisIt issue to me.

roelof-groenewald commented 11 months ago

Thanks for looking at it. We'll turn our attention to VisIt then and I'll connect with @ax3l to try and understand the difference in our situation with that of others that are successfully using VisIt to visualize WarpX results.