-
Notifications
You must be signed in to change notification settings - Fork 195
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
OpenPMD output capabilities #2
Labels
component: diagnostics
all types of outputs
component: openPMD
openPMD I/O
enhancement
New feature or request
Comments
Most of the features mentioned in this issue are implemented. I added a new issue #428 for the particle filters. |
1 task
clarkse
pushed a commit
to clarkse/WarpX
that referenced
this issue
Jan 6, 2024
* continued transition to RK4 in B-field time integration in hybrid-PIC algorithm * RK-integration over all levels
RemiLehe
pushed a commit
that referenced
this issue
Jan 22, 2024
…4461) * add external current support to the hybrid-PIC solver * add RZ support for `FiniteDifferenceSolver::CalculateCurrentAmpere` * allow an initial Bz field to be set in RZ * code cleanup and addition of CI test * revert unwanted changes * WIP transition to use RK4 in B-field time integration in hybrid-PIC algorithm Co-authored-by: Avigdor Veksler <aveksler@tae.com> * fix some clang-tidy issues * Complete BfieldEvolveRK (#2) * continued transition to RK4 in B-field time integration in hybrid-PIC algorithm * RK-integration over all levels * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * update some of the CI tests * more CI test updates * Various code cleanups * more updates to CI tests and checksum benchmarks * more updates to CI tests and checksum benchmarks; remove commented code * update documentation * fix 1 for RZ CI test after merging of #4464 * Avoid using `const` with `Real` passed by value Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * reduce default number of substeps to 10 * formatting fix --------- Co-authored-by: Avigdor Veksler <aveksler@tae.com> Co-authored-by: Avigdor Veksler <124003120+aveksler1@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
Pierre-Bartoli
referenced
this issue
in Pierre-Bartoli/WarpX
Feb 7, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
component: diagnostics
all types of outputs
component: openPMD
openPMD I/O
enhancement
New feature or request
When running large simulations, writing the data into
plotfiles
is extremely fast, but reading the data, either particle data or grid data, can be time-consuming. One reason is that the data is spread in multiple boxes, to be able to account for mesh refinement. For many application, even when the simulation runs with mesh refinement, it would be useful to have a lower-resolution output using the OpenPMD standard, and if possible the hdf5 format, that would be easier and faster to read.Furthermore,
plotfiles
can be massive as all grid quantities and all particles of all species are written to disk. Having the possibility to chose the data written toplotfiles
would also be helpful.At the end of a simulation, two folders would be created:
plotfiles
anddiags
(this name is arbitrary). Here are the details of what this issue proposes for each of these output:plotfiles output
Currently, all grid data and all particle data are dumped, so that
plotfiles
contain grid quantitiesEx
,Ey
,Ez
,Bx
,By
,Bz
,jx
,jy
,jz
and particle quantitiesparticle_Ex
,particle_Ey
,particle_Ez
,particle_Bx
,particle_By
,particle_Bz
,particle_momentum_x
,particle_momentum_y
,particle_momentum_z
,particle_position_x
,particle_position_y
,particle_position_z
,particle_cpu
,particle_id
,particle_xold
,particle_yold
,particle_zold
,particle_uxold
,particle_uyold
,particle_uzold
andparticle_weight
for all species. It would be useful if the user could specifies the species to dump and which particle and field quantities to dump, e.g. withOutput compliant with the OpenPMD standard
The simulation directory would contain a second output directory, say
diags
, that contains a smaller amount of pre-processed OpenPMD-compliant output. Two types of output are considered below for a 3d simulation: sub-sampled arbitrary-dimension grid data and filtered particle data. The user would specify the name of each diagnostics withso that a user could define several
grid_diagnostics
objects, etc. Here is a more detailed description of each of these:grid_diagnostics
The user specifies the fields and the output number of points as well as the boundaries of the data to dump, for instance
for a 3d grid or
for a 1d line. The same syntax would also allow 2d slices.
Particle filters
The user specifies the species and can chose a simple filter, for instance
Note that the specific options to enter in an input file are still to be determined, as they should comply with the PICMI standard, so the choice proposed above is not permanent.
The user may want to dump small data with high frequency (for instance retrieving a line-out at every time), which will probably require buffering in order not to ruin the simulation performances.
Future improvements
grid_diagnostics
to return data on a grid of arbitrary dimension that is not aligned with the simulation box. For instance, a user may want to return theEx
field on a line that goes through (0, 0, 0) with direction (1, 0, 1).grid_diagnostics
to return data on a set of points that are not aligned, for instance on a sphere or the arc of a circle.The text was updated successfully, but these errors were encountered: