Skip to content

Repository files navigation

PlasmaBO

DOI

Quickstart

solve returns all wave modes at once as eigenvalues of a matrix dispersion relation — no initial guess required. Define species, pick a solver (BOHH kinetic (Hermite-Hermite basis for arbitrary distributions), BOPBK product Bi-Kappa, BOFluid multi-fluid), and call:

using Pkg; Pkg.add("PlasmaBO")
using PlasmaBO

B0 = 100e-9                       # background field [T]
n, T = 8.7e6, 2.857e-3            # density [m^-3], temperature [eV]
species = (Maxwellian(:p, n, T), Maxwellian(:e, n, T)) # :p for protons, :e for electrons

# Single (kx, kz): returns Vector{ComplexF64} of all ω roots
kx, kz = 0.0, 1e-6
ωs = solve(species, B0, kx, kz)            # default: BOHH kinetic
ωs_fluid = solve(species, B0, kx, kz, BOFluid)

# Scan over |k| and propagation angle θ
ks = 10 .^ range(-7, -4, length = 50)
θs = deg2rad.(0:15:90)
sol = solve(species, B0, ks, θs, BOHH)     # sol.ωs[ik, iθ] :: Vector{ComplexF64}

ω = ωr + iγ: γ > 0 is an instability, γ < 0 is damping. Use Maxwellian / BiKappa for kinetic species; ChargedParticles.jl shorthands like Maxwellian("O-18 3+", n, T) work for arbitrary ions.

See documentation for worked examples: cold plasma (kinetic vs fluid), ring-beam, firehose, ion-beam, and dispersion-surface tracking.

Experiments

  • arbitrary_precision/ — BOHH/BOFluid/BOPBK assembly and solve at Float64, Double64, and BigFloat.

Elsewhere

  • hsxie/BO-Arbitrary: Extension of the kinetic electromagnetic magnetized dispersion relation solver PDRK/BO to arbitrary distributions (MATLAB)
    • liangwang0734/xenon: A matriX-based dispErsioN relatiON solver (Python). Very limited in functionality (only electrostatic for kinetic BiMaxwellian plasmas).
  • LinearMaxwellVlasov.jl: A Julia implementation of linear Maxwell-Vlasov solvers
  • danielver02/ALPS: The Arbitrary Linear Plasma Solver that solves the Vlasov-Maxwell dispersion relation in hot (even relativistic) magnetised plasma (Fortran)
  • pastfalk/LEOPARD: Linear Electromagnetic Oscillations in Plasmas with Arbitrary Rotationally-symmetric Distributions (Fortran)
  • Drakicy/MPDES: Magnetized Plasma Dispersion Equation Solver (MPDES) (MATLAB)

About

Plasma electromagnetic dispersion-relation solver, fast and simple.

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages