-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add support for writing openPMD/ADIOS2 plotfiles #466
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clang-tidy made some suggestions
…uokka into BenWibking/openpmd-output
for more information, see https://pre-commit.ci
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clang-tidy made some suggestions
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clang-tidy made some suggestions
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clang-tidy made some suggestions
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clang-tidy made some suggestions
/azp run |
Azure Pipelines successfully started running 4 pipeline(s). |
It looks like the clang-tidy complaint about not being able to find the openPMD headers is the last issue to fix. |
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
/azp run |
Azure Pipelines successfully started running 4 pipeline(s). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- It seems like this is only implemented for cell-centered quantities. Did you intend to handle face-centered quantities in a different PR?
- I see an implementation of writing, but no implementation of reading. So how does this work with restarts? Or is this used only for plot files, with no implementation for checkpoints?
- I have one minor comment on one of the implementations, which is appended to that file.
Yes, this is only for cell-centered quantities. I will handle face-centered quantities in another PR as needed. There is no implementation of reading. This is intended only for plotfiles, which have to be written out with the highest frequency. The main goal of this PR is to enable using openPMD-based analysis tools, and get faster plotfile outputs "for free." Also, getting restarts to work with another format would be very error-prone and likely to result in a non-working restart for the first several attempts, so I'd prefer not do that. (I've replied to your comment in-line.) |
I've updated the PR description to note the limitations you pointed out above. |
On reading that is fine. On cc vs fc, that's also fine, but then there should probably be some sort of automation, or at least a warning, that this method is incompatible with fc quantities. For example, you could check if the number of fc quantities is > 0, and issue a warning or throw an error message at compile time if openPMD is on. |
Is outputting the cell-centered averages enough? Otherwise, I could add a warning in this case. |
I think it would be good to add a warning, since this means that this output option will behave differently than all the other ones, which do support fc quantities. Differences in behaviour should be flagged. |
Ok, now it should be right. |
Description
This adds support for writing ADIOS2 format plotfiles using openPMD-api (https://github.com/openPMD/openPMD-api). This is the file format used by WarpX for its large-scale runs, and it is the fastest option for large-scale I/O (~Terabytes or larger).
This adds support for cell-centered variables only. (However, it does include cell-centered averages of the face-centered variables, and all of the other derived variables.)
openPMD currently does not support ghost cells, so we exclude them when writing the plotfile in openPMD/ADIOS2 format.
There is no support for checkpoints or restarts with this format (nor is there in WarpX, or any other code that I'm aware of).
Related issues
N/A
Checklist
Before this pull request can be reviewed, all of these tasks should be completed. Denote completed tasks with an
x
inside the square brackets[ ]
in the Markdown source below:/azp run
.