Kinetic model

VlasovMaxwellOneSpecies

Vlasov-Maxwell equations for one kinetic species.

Overview

VlasovMaxwellOneSpecies is the fully electromagnetic one-species PIC

model in Struphy. It evolves particles and fields self-consistently and supports an optional control-variate formulation for the field coupling.

Use cases

This model is appropriate for:
  • self-consistent electromagnetic kinetic simulations
  • one-species PIC benchmarks
  • wave-particle interaction studies with evolving magnetic fields
  • verification of the full Vlasov-Maxwell splitting

Governing equations

PDEs solved by model:

Vlasov equation:

Ampère's law:

Faraday's law:

where and for electrons.

At initial time the weak Poisson equation is solved once to weakly satisfy Gauss' law,

Moreover, it is assumed that

where is the static equilibrium magnetic field.

Normalization

The model uses the light speed as reference velocity:

The species parameters are and .

Discretization

Time integration is performed by the following propagators (in sequence):
  1. struphy.propagators.maxwell_weak_ampere.MaxwellWeakAmpere
  2. struphy.propagators.push_eta.PushEta
  3. struphy.propagators.push_vxb.PushVxB
  4. struphy.propagators.vlasov_ampere_coupling.VlasovAmpereCoupling

Diagnostics

The following scalars are tracked during simulation:

  • Electric field energy: en_E
  • Magnetic field energy: en_B
  • Particle kinetic energy: en_f
  • Total energy: en_tot
  • Optional Gauss-law diagnostic: gauss_error

Example

Create and initialize a Vlasov-Maxwell model:

from struphy.models import VlasovMaxwellOneSpecies

model = VlasovMaxwellOneSpecies()
model.em_fields.e_field
model.em_fields.b_field
model.kinetic_ions.var