Kinetic model
VlasovAmpereOneSpecies
Vlasov-Ampère system for a single kinetic species in an electric field.
Overview
with Ampère's law for the electric field evolution. It includes the effect of a static background magnetic field and solves the initial Poisson equation to satisfy Gauss's law at . The model uses a particle-in-cell (PIC) method with finite element exterior calculus (FEEC) for the electromagnetic fields.
All field variables are perturbations around a reference equilibrium distribution. The model enables studies of kinetic instabilities, particle-wave interactions, and nonlinear plasma physics without assuming a fluid approximation.
Use cases
- studying kinetic instabilities in collisionless plasmas
- particle-wave interactions and nonlinear plasma physics
- initial value problems with prescribed equilibrium distributions
- benchmark problems for kinetic-field coupling schemes
- verification of PIC methods in simplified geometries
Governing equations
PDEs solved by model:
Vlasov equation:
Ampère's law:
Initial Poisson equation: At , solve weakly for the electric potential :
Normalization
Dimensionless parameters:
where
For electrons: , .
Discretization
struphy.propagators.push_eta.PushEtastruphy.propagators.push_vxb.PushVxB(ifwith_B0is True)struphy.propagators.vlasov_ampere_coupling.VlasovAmpereCoupling
Diagnostics
The following scalars are tracked during simulation:
- Electric field energy:
- Kinetic energy:
- Total energy:
Example
from struphy.models import VlasovAmpereOneSpecies
model = VlasovAmpereOneSpecies()
# Access fields
model.em_fields.e_field
model.em_fields.phi
model.kinetic_ions.var
# Access tracked scalar quantities
model.scalars["electric_energy"]
model.scalars["kinetic_energy"] model.scalars["total_energy"]