VOSP is an open-source Vlasov–Poisson solver developed in Rust and Tauri, designed with an emphasis on numerical correctness, physical generality, and accessibility. The solver supports multiple plasma species, configurable collision operators, and is particularly suited for simulating complex chemistry within a kinetic plasma framework.
Pre-built binaries are available under the Releases tab on GitHub, in the Assets section.
| Platform | File |
|---|---|
| Debian-based Linux | vogui_0.1.0_amd64.deb |
| Linux (AppImage) | vogui_0.1.0_amd64.AppImage |
| Windows | vogui_0.1.0_x64-setup.exe |
The solver window provides control over the physical and numerical parameters of the simulation.
The data window enables real-time and post-hoc visualisation of simulation outputs.
The solver is the central object of VOSP. It is configured through the following parameters:
| Parameter | Description |
|---|---|
DT |
Simulation time step |
End Time |
The simulation runs until the physical time reaches this value |
LX |
Spatial domain length |
NX |
Number of grid points along the spatial axis |
NV |
Number of grid points along the velocity axis |
Lambda |
Ratio of simulation length to the Debye length |
Save Every N Iterations |
Frequency at which the electric potential and species data are written to an HDF5 file |
Each plasma species is represented as an Element object. New species are added via the Add Element button and are automatically registered with the solver. The configurable parameters for each species are as follows:
| Parameter | Description |
|---|---|
Element Name |
Identifier used to reference this species within the solver |
Left / Right Boundary Condition |
Boundary conditions applied at each end of the spatial domain |
Initial Condition |
Initial phase-space distribution function |
Velocity Domain Length (Lv) |
Half-width of the velocity domain; the velocity space spans |
Charge Number (Z) |
Species charge in units of the elementary charge |
Mass Ratio |
Species mass relative to the electron mass |
VOSP solves the Vlasov–Poisson system. For a species
where
The phase space is
Operator splitting — referred to in the plasma physics literature as time splitting — decomposes the full Vlasov equation into a sequence of simpler sub-problems solved successively within each time step:
-
Spatial advection:
$\partial_t f_s = -v , \partial_x f_s$ -
Velocity advection:
$\partial_t f_s = -\frac{q_s}{m_s} E , \partial_v f_s$ -
Collision step: application of
$\hat{C}_{s,s'}$
This decomposition introduces a time discretisation error of order
Each advection sub-step is solved using a Semi-Lagrangian (SL) method. Since
Given a grid point
VOSP uses a CWENO-3.2 (Compact Weighted Essentially Non-Oscillatory) polynomial reconstruction, which provides third-order accuracy in smooth regions while suppressing the Gibbs phenomenon near discontinuities.
A key advantage of the SL method is that it is unconditionally stable with respect to the CFL condition, which is critical for Vlasov simulations where large disparities in thermal velocities between species would otherwise impose prohibitively small time steps.
Note: Although the scheme is CFL-unconditional, the time discretisation error remains
$\mathcal{O}(\Delta t^2)$ . Users should therefore select$\Delta t$ according to the required accuracy rather than stability constraints.


