SmileiPIC / Smilei

Particle-in-cell code for plasma simulation
https://smileipic.github.io/Smilei
344 stars 121 forks source link

Adjusting gridGlobalOffset and temporal offset #708

Open sjgrimm opened 7 months ago

sjgrimm commented 7 months ago

Hello,

I would like to be able to set the dimensions of the simulation box at arbitrary values for x,y,z (e.g. xmin = -40um, xmax = 40um, ...) and also start the simulation at different times (e.g. t=-100fs). This would allow the users to always keep a point of interest (e.g. laser focus) at the same position (e.g. (0,0,0) with time of laser irradiation at 0fs).

I think that this should be relatively easy to implement, as all parameters are already there in order to satisfy the openPMD standard. Additionally, the moving window already kind of uses this feature.

Thank you for your assistance!

sjgrimm commented 7 months ago

Or is there a way to manually change values in the hdf5 via a command in the namelist? Then I could use this as a workaround and manually set the desired values for gridGlobalOffset and the temporal offset.

mccoys commented 7 months ago

This can be done at post-processing time using happi: https://smileipic.github.io/Smilei/Use/post-processing.html#other-arguments-for-diagnostics arguments xoffset, yoffset

OwenSlevert commented 7 months ago

I have the same problem. It would be really helpful, if it could be implemented before starting the simulation.

mccoys commented 7 months ago

Why do you need it at the beginning if it can be changed afterwards?

sjgrimm commented 7 months ago

I am interested in a solution that works before post-processing. The proposed solution with happi goes against all efforts of the openpmd standard. Therefore, I would highly appreciate if you could add this feature (or propose some kind of workaround that works before post-processing).

sjgrimm commented 7 months ago

I want to be able to use the same tools for visualisation for all my simulations (also independent of the code they were compiled with). Thats what the openpmd standard is for... https://github.com/openPMD/openPMD-standard

beck-llr commented 7 months ago

One could argue that defining an arbitrary offset should be done during post-processing and not pre-determined and definitive because you might want to change your mind and be able to use different offset for the same data.

So maybe a request on the side of the viewer you are using to implement xoffset and yoffset as in Happi would be relevant ?