Skip to content

ClementPiDufour/VOSPGUI

Repository files navigation

VOSP

VOSP — Vlasov Open Source Project

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.

Getting Started

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

Graphical Interface

Solver Configuration Window

The solver window provides control over the physical and numerical parameters of the simulation.

Solver Window

Data Visualisation Window

The data window enables real-time and post-hoc visualisation of simulation outputs.

Data Window


Solver Parameters

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

Species (Elements)

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 $f_s(x, v, t=0)$
Velocity Domain Length (Lv) Half-width of the velocity domain; the velocity space spans $[-L_v, +L_v]$
Charge Number (Z) Species charge in units of the elementary charge
Mass Ratio Species mass relative to the electron mass $(m_e / m_i)$

Numerical Methods

Governing Equations

VOSP solves the Vlasov–Poisson system. For a species $s$, the system reads:

$$ \begin{cases} \partial_t f_s + v , \partial_x f_s + \dfrac{q_s}{m_s} E , \partial_v f_s = \displaystyle\sum_{s'} \hat{C}_{s,s'} \[10pt] \lambda^2 , \Delta \phi = -\displaystyle\sum_s q_s n_s \end{cases} $$

where $f_s(x, v, t)$ is the distribution function of species $s$, $E$ is the self-consistent electric field, $\phi$ is the electrostatic potential, $n_s$ is the number density, and $\hat{C}_{s,s'}$ denotes the collision operator between species $s$ and $s'$.

The phase space is $(x, v)$-dimensional. In its current version, VOSP operates in the 1D-1V configuration (one spatial dimension, one velocity dimension).

Operator Splitting

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:

  1. Spatial advection: $\partial_t f_s = -v , \partial_x f_s$
  2. Velocity advection: $\partial_t f_s = -\frac{q_s}{m_s} E , \partial_v f_s$
  3. Collision step: application of $\hat{C}_{s,s'}$

This decomposition introduces a time discretisation error of order $\mathcal{O}(\Delta t^2)$. Higher-order splitting schemes exist but are not currently implemented. The primary advantage of operator splitting lies in its modularity: each sub-step can be treated with a method tailored to its structure, and new collision operators can be incorporated without modifying the advection scheme.

Semi-Lagrangian Method

Each advection sub-step is solved using a Semi-Lagrangian (SL) method. Since $v$ and $E$ are constant along the $x$- and $v$-axes respectively within each sub-step, the advection equations admit exact characteristics. The solution satisfies:

$$ f_s(x, v, t) = f_s(x - v ,\Delta t,; v,; t - \Delta t) $$

Given a grid point $(x_i, v_j)$ at time $t$, the SL method traces the characteristic backwards to the foot $(x_i - v_j \Delta t, v_j)$ at time $t - \Delta t$, and reconstructs $f_s$ at that point by interpolation from the known grid values.

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.

About

Vlasov Open Source Solver (VOSP) with a graphical user interface

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors