- exact energy conservation;
- absence of numerical dispersion.
The solvers provide a way to either suppress or eliminate numerical artefacts (instabilities, heating, numerical Cherenkov radiation, etc.) permitting larger space and time steps, as well as lower number of particles per cell. Because of reduced computational demands, the solvers can be found useful for quick tests of ideas, as well as for scanning parameter spaces. For a description of the underlying methods see Reference or a presentation at PIF24.
To get started, it should for most cases be sufficient to install gcc
, openmp
and fftw3
; for details and information on compilation via CMake see installation instructions):
pip install pipic
The basic layout of a simulation includes five elements:
- creating a container with cells with given parameters
- adding particles of all necessary types
- setting initial electromagnetic field
- defining output (via loops over particles and grid values of field)
- advance and read the state of the defined physical system
We demonstrate the use of these elements in the tutorial. A complete list of supported interfaces can be found here. The development of extensions is detailed and exemplified here.
- options for energy correction routine in
ec
andec2
(seedocs/guides/INTERFACES.md
) extension
for initializing arbitrary tightly focused pulses, e.g. dipole waves (focused_pulse
)
extensions
for QED-PIC simulations (qed_volokitin2023
,qed_gonoskov2015
)extension
for ensemble down-sampling (downsampler_gonoskov2022
)
See all releases here.
A. Gonoskov, Explicit energy-conserving modification of relativistic PIC method, J. Comput. Phys., 502, 112820; arXiv:2302.01893 (2024).