Add ParticleDump and FieldDump (openPMD plugin) to PICMI #5505
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 PR adds rudimentary support for output via the openPMD plugin.
Available capabilities:
ParticleDump(species)
with native speciesFieldDump(fieldname)
with native fieldsOpenPMDConfig
except forrange
(andbackend_config
untested)Missing capabilities:
DerivedFieldDump
from particlesRangeSpec
for modelling rangesFilter
species_all
,fields_all
.Some explanations:
.toml
file for each instance of the openPMD plugin that PIConGPU is supposed to use. This is straightforward to achieve but is not quite aligned with the pypicongpu approach to rendering:pypicongpu.json
by being directly located inside of the.toml
files. This means a two-step approach would be necessary to get the full information from thepypicongpu.json
: 1. Parsepypicongpu.json
and 2. extract the corresponding.toml
file's name and parse that as well. If parsingpypicongpu.json
is relevant to your workflow, there are two options:pypicongpu.json
file that's not necessary for rendering the templates but just meant to inform the user after the fact. I typically don't fancy this kind of solution.picmi/simulation.py
which gathers all diagnostics getting dumped into the same file(s) into one instance of the openPMD plugin.CAUTION: The handling of
range
s is still inconsistent (because it's not yet implemented). Should you manage to somehow pass arange
through the different layers (not sure if anything's hindering you), anOpenPMDConfig
instance that's identical up torange
would be treated as different. This implies that there would be twoOpenPMDWriter
instances in PIConGPU writing to the same file. I'll take care of this oncerange
is properly fleshed out.