[WIP] Convert openPMD frontend to use openPMD-api #4848
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a work in progress to change the openPMD frontend to be able to read in all openPMD markup files regardless of backend and add mesh refinement capabilities.
PR Summary
This work-in-progress PR addresses issue #4757 by using the backend-agnostic openPMD-api as the IO module instead of the previous h5py.
TODO
Add sorted particles to the particle grid in which they are located, for the short term this will only work for ADIOS2, file-based iteration encoded datasets with the particlePatches.
Ensure that HDF5 behavior is preserved if not improved.
record_component.available_chunks()
only contains one chunk and all levels cover the entire domain. We might have to trim/mask higher level data so that only level 0 data exists on the entire domain, and each subsequent level covers only the refined region.Still haven't looked at string handing for file path patterns. Would be great to load a dataset series from file-based iteration-encoded diagnostics. Right now yt uses
[0-9]
ordd???/dd???
ordiag_name_???
while openpmd-api uses%T
or%06T
for example.Testing has mostly been done using 2d WarpX simulations, where the axes are 'x' and 'z' which causes problems with axis labeling and the orientation of plots, and thus the annotation of particles onto SlicePlots. Work is being done to use the openpmd
axis_labels
(and later fortran capability withdata_order
?) to correctly align axes as written.Eventually get to doing yt tests
PR Checklist