ComputationalRadiationPhysics / picongpu

Performance-Portable Particle-in-Cell Simulations for the Exascale Era :sparkles:
https://picongpu.readthedocs.io
Other
710 stars 218 forks source link

Time-dependent openPMD field output range #4211

Open pordyna opened 2 years ago

pordyna commented 2 years ago

Since recently, one can set a range of cells that the openPMD plugin will include in its output. It would be useful to be able to make this range time-dependent.

I'm integrating simulation fields (electron density) over a simulation axis to create 2D maps that can be used to calculate SAXS scattering via FFT. This integration should be done over time and space, since one wants to integrate the density as a probing pulse sees it while it is moving through the plasma. For that, from each time-step, one just needs a thin density slice. But, one needs it from many iterations, and the position of this slice is moving with time. With such a changing range, one would not need to write the complete volume on each iteration.

It was discussed offline with @sbastrakov @psychocoderHPC that this could be done by providing a file with two columns. The first column contains iterations at which the range changes, the second one the new ranges. It was suggested that we could switch between a constant range as it is done now and using the file by prefixing the run-time parameter with @ when passing a file name (like we already do it for the .json configuration).

steindev commented 2 years ago

Please make sure that what you need is not a duplicate of the shadowgraphy feature currently developed by @finnolec.

pordyna commented 2 years ago

@steindev Oh I think Finn is actually propagating an extra laser with the PIC algorithm for that (s not possible for X-rays)? This is supposed to be just a way of doing a simplified analysis for SAXS without the -xrayScattering plugin (which I found to be extremely slow in 3D) or the Monte-Carlo approach from my master's.

steindev commented 2 years ago

Well, in principle you can propagate any (or no extra) field through the simulation and record it with the shadowgraphy plugin. The problem in your case just probably is the fact that you will need a very high resolution to correctly calculate propagation of the X-ray pulse through the volume.