openPMD / openPMD-api

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

documentation: openPMD-api reader is broken in Paraview 5.13.0, 5.13.1 #1686

Open BenWibking opened 1 month ago

BenWibking commented 1 month ago

Describe the bug Opening *.pmd files that use the openPMD AMR naming convention _lvl with the native openPMD-api reader plugin in Paraview 5.13.0 and 5.13.1 shows no cells and no particles. This should be documented, so that users know to use earlier versions instead.

To Reproduce Open this dataset in Paraview 5.13.0 or 5.13.1: https://discourse.paraview.org/uploads/short-url/qFdC3H0UVz38isMkCWe0lgrS0ev.gz

Expected behavior It should show the data.

Software Environment

Additional context Paraview Discourse: https://discourse.paraview.org/t/no-fields-are-rendered-after-opening-openpmd-file/15533/1

franzpoeschel commented 3 weeks ago

I used Paraview 5.13.0 to visualize an openPMD dataset last week and it showed the data (cells as well as particles). This looks like the bug does not affect all datasets, I can confirm that the mesh from your dataset is apparently not rendered. Did you use another dataset to confirm the same problem for particles? The dataset that you linked has no particles. I don't really know the openPMD plugin for Paraview and Axel is on leave until January. I can try giving this a stab, but probably not before next week, and no guarantee in success.

BenWibking commented 3 weeks ago

Hmm, that's interesting. Our datasets currently don't have particles, so I didn't test that.

BenWibking commented 2 weeks ago

@franzpoeschel Apparently, the Paraview OpenPMD reader was modified to skip all fields that contain _lvl, so it broke the ability to read outputs from our code.

From https://discourse.paraview.org/t/no-fields-are-rendered-after-opening-openpmd-file/15533/6:

Issue identified: Since we did not fully support AMR grids using the openPMD reader, in the last iteration of updates we skipped all arrays whose variable names contain _lvl. This was done because the openPMD reader crashed when there were arrays with different shapes becase of different levels of refinement. As a side effect, the feature the data that was previously possible to load will break. If you’re interested I can send a python drop-in replacement to get around the issue until we implement full AMR support in the near future.

cc @pgrete