openPMD-api
openPMD-api copied to clipboard
:floppy_disk: C++ & Python API for Scientific I/O
Not relevant for next release * **Until now:** Simulations specify their metadata in-code via API calls * **With this PR:** In some workflows (e.g. experiments) there is no omniscient simulation,...
Based on (and to a large part compatible with) the old ADIOS2 schema 0, this PR removes schema 2021, using instead the `allowModification` parameter of the `DefineAttribute()` call in ADIOS2...
Situation: Using ADIOS2 steps in openPMD was always a bit challenging due to slightly incompatible IO workflows. Traditionally in openPMD, we parse a Series upon opening it and users expect...
Reading failures should ideally affect only the innermost scope possible. When one record component fails parsing due to whatever error, the neighboring record components should remain readable. When one iteration...
Background: Until now, our Streaming API [assumes](https://github.com/openPMD/openPMD-api/blob/15a98c7605f353fae4fa7e8f2209de650e3f8f5a/src/ReadIterations.cpp#L94) that each ADIOS step corresponds with exactly one openPMD iteration and that those iterations are found in ascending order. Once we expose the...
Idea: Instead of `rc.storeChunk(shareRaw(ptr), …)`, have users write `rc.storeChunkRaw(ptr, …)` which is a bit more transparent in what is happening. Partially resolves #1216 by introducing a clearer API that distinguishes...
When appending to an existing group/variable-based Series, don't define top-level attributes again (except `basePath` and `openPMD`, these are needed internally and ADIOS2 doesn't care as long as they are duplicate...
Currently, we have `Attribute::get()` that throws a `std::runtime_error()` if no conversion is possible. Adding `Attribute::getOptional()` is helpful to check if a conversion is possible without having to resort to catching...
See https://github.com/openPMD/openPMD-api/issues/1216 for an explanation. The approach in this PR is to use `unique_ptr`s instead of relying on the refcount of `shared_ptr`s to make this optimization more explicit to the...
~~Based on [topic-available-chunks](https://github.com/franzpoeschel/openPMD-api/tree/topic-available-chunks), see #802.~~ Based on #1043 Adds strategies for guiding applications to efficient parallel chunk loading patterns. Idea: PR #802 lets reading applications inquire the chunks that are...