Plasma Physics · Interactive Research Laboratory

Two-Stream
Instability

Counter-propagating electron beams drive exponential electrostatic wave growth. Explore dispersion relations, growth rates, SMILEI PIC data, simulation box design, and live phase-space evolution — all interactive.

Non-Relativistic Eq.18 Relativistic Eq.19 Multi-Species Eq.20–21 SMILEI PIC Verified
▼ scroll to explore
Two-Stream Instability Observatory

Our goal — detect and study the two-stream instability (TSI) in real NASA spacecraft data, and validate our theoretical predictions (Equations 18–21) against direct measurements. This page has two parts: the Theory Laboratory (sections 01–07) with your exact interactive equations, SMILEI PIC data, and phase-space animation — and the MMS Observatory (sections 08+) with live MMS-1 data, theory validation, ML prediction, 6-month history, and unusual event detection.

Four signatures searched: electron holes (bipolar E∥ pulses), bump-on-tail df/dv > 0, TSI→Weibel causal chain, and Langmuir wave enhancement near f_pe.

electron beam → Langmuir waves grow (Eq.18–21) → wave trapping → electron holes
→ beam scattered ⊥ → T_perp > T_par → Weibel instability → B fluctuations → turbulence
Eq.18–21 (Shrivastav+ 2025) SMILEI PIC Validated NASA MMS-1 Live Data Updates Every 6 Hours ML-Enhanced Prediction
01

Physics Concepts

The Setup

Two beams of electrons travel in opposite directions at ±v₀. Each carries half the total density. A tiny density perturbation δn·cos(kx) seeds the instability.

n±(x) = n₀/2 · [1 + δn·cos(kx)]
📈

Why It Grows

When the resonance condition ω/k ≈ v₀ is met, particles and electric waves exchange energy coherently. Small perturbations amplify exponentially at rate γ.

E(t) ∝ e^(γt) → Im(ω) = γ > 0
🌀

Nonlinear Saturation

Growth stops when particles become trapped in wave potential wells — "cat's eye" vortices in x–pₓ phase space. Beam energy converts to wave energy, then heat.

t_sat ~ 3/γ · ln(1/δn)
⚡ Live Physics Insight
Adjust parameters in the Growth Lab — real-time physics interpretation appears here.
02

Growth Rate Calculator

ℹ Using natural units where c = 1. Lorentz factor γ₀ is automatically calculated as γ₀ = 1/√(1−v₀²). The growth rate γ is real (imaginary ω) when the dispersion bracket is negative.
Select Formula
0.30
1.00
1.00
03

Live Growth Rate Lab

Select Regime
Parameters — Drag Slider or Type Value
0.30
units of c
1.00
normalized units
1.00
ωₚ/c
5.0
upper k limit
Non-relativistic Single-species (Eq.18)
γ = √{ ½[2v₀²k² + ω²ₚ − √(8v₀²k²ω²ₚ + ω⁴ₚ)] }
STABILITY METER
STABLEMARGINALUNSTABLE
γ vs k — Growth Rate Curve (live)
04

Multi-Curve Comparison

Parameters & Overlay Options
0.60
1.00
3.0
SMILEI PIC Simulation Data — Growth Rate vs k
05

Simulation Box Designer

Parameters — Drag Sliders or Type Values
0.10
ω_pe / c
0.60
units of c
1e-6
δn amplitude
0.050
c / ω_pe
150
1 / ω_pe
changes physics shown
06

Phase Space Explorer

Animation Controls
0.30
1.00
0.050
3
SIMULATION TIME
t = 0.00 ω⁻¹ₚ
Phase: Initial two-stream configuration
x-pₓ Phase Space
t = 0
Phase Space Evolution Guide
t ≈ 0 (Linear phase)
Two sharp horizontal lines at px = ±v₀. Small density perturbation seeds the wave. Growth rate Im(γ) is constant — amplitude grows as e^(γt).
t ~ 1/γ (Trapping)
Particles begin to deviate from their beams. The wave potential wells capture particles — forming the characteristic cat's-eye vortex in phase space.
t ≫ 1/γ (Saturation)
Fully formed vortices fill phase space. Growth saturates. Beam energy has transferred to wave electrostatic energy and ultimately to particle heating.
07

Parameter Playground

Saved Runs
No runs saved yet. Use "Save Run" in Live Growth Lab.
Comparison Plot
08

FAQ + Physical Intuition

Why does the instability happen at all?
Two beams create a free energy reservoir. When wave phase velocity ω/k ≈ v₀, particles and waves exchange energy resonantly. Slow particles get accelerated; faster ones decelerate — net energy flows from beams to wave amplitude, driving exponential growth.
Why is there a k_max (peak growth wavenumber)?
Low k: resonance far from plasma frequency → weak coupling. High k: 2v₀²k² term dominates bracket → bracket becomes positive → real ω → stable oscillation, no growth. Peak growth at optimal k_max where resonance coupling is strongest before stabilization. This peak shifts to lower k as v₀ increases.
How does relativity suppress growth?
The Lorentz factor γ₀³ appears in the denominator of ωₚ² terms. At high v₀, γ₀→large, so effective plasma frequency ωₚ/γ₀^(3/2) → small. At v₀→c: γ₀→∞, growth rate→0. Relativistic inertia stabilizes the beam.
What are the "cat's eyes" in phase space?
When wave amplitude is large, particles trapped in potential wells execute closed orbits in (x, pₓ) — these look like elliptical cat's eyes. Trapping width Δpₓ ~ √(eE/k). When trapping occurs, linear theory fails and growth saturates.
Multi-species vs single-species — what changes?
Single-species: ions are frozen (infinite mass). Multi-species: mobile ions add an extra ωₚ² term, effectively doubling the ωₚ coefficient in the dispersion. This slightly increases growth rates and shifts k cutoffs. Ion dynamics become important at late times — beam filamentation and ion-acoustic coupling.
What does the "bracket" condition mean?
γ = √{½·bracket}. bracket < 0 → √(negative) → imaginary ω → Im(ω)=γ>0 → exponential growth. bracket > 0 → real ω → stable oscillation. The k_cutoff is exactly where bracket = 0.
How do SMILEI parameters map to this theory?
grid_length = 2π/k (exactly one wavelength, xnumber=1 ✓)
cell_length = Δx ≪ λ_Debye (typically 0.01–0.05)
timestep = 0.0095 (CFL: Δt < Δx/c)
solve_poisson = True: critical — without this Ex=0 at t=0, instability never seeds
Simulate to T ~ 5/γ to capture linear + nonlinear phases
Two-stream vs Weibel instability?
Two-stream drives electrostatic (longitudinal) waves — Ex grows, from charge bunching. Weibel instability is electromagnetic (transverse) — grows from momentum anisotropy, generating magnetic filaments. Weibel dominates in oblique geometries or high transverse temperature. Both can coexist and thermalize beams.
08

MMS Live Observatory

Loading... | | MMS L2 data ~90 day latency
Awaiting first data fetch...
Run the GitHub Actions workflow to populate live data.
All Measured Parameters
ParameterValueMeaning for TSI
Detection Summary
Magnetic Field |B| — Time Series (FGM, 8 sps)

B magnitude in nT, subsampled for display. Fluctuations δB/B₀ represent the turbulent component. Spectral index α is fitted from the PSD in the inertial range 0.01–2 Hz. Kolmogorov (1941) predicts α = −5/3; Iroshnikov-Kraichnan (1965) predicts α = −3/2.

B Components Bx, By, Bz (GSE)

Field direction reveals magnetospheric region. Rapid rotations = boundary crossings.

Magnetic Power Spectral Density E(f)

Log-log PSD. Amber = Kolmogorov −5/3. Purple = IK −3/2. Steeper slope = kinetic dissipation.

09

Theory Validation — Eq.18–21 vs MMS

⚡ Theory vs Observation
Loading theory validation...
Input Parameters (from MMS → into Eq.18–21)

The measured electron bulk speed V_e becomes v₀ = V_e/c. The resonant wavenumber k_res = ω_pe/v₀ (beam-wave resonance: k·v₀ = ω_pe). Growth rates are computed across k = 0.1×k_res to 3×k_res and compared to the measured plasma state.

All 4 Equations Overlaid — γ(k) at Measured v₀

Growth rate curves from Eq.18–21 using the MMS-measured beam velocity. The red dashed vertical line marks k_res = ω_pe/v₀ (resonance condition). If γ_max > 0, the instability is theoretically active under current conditions.

10

Electron Holes — TSI Saturation Evidence

📖 Why electron holes prove TSI happened
When TSI Langmuir waves reach amplitude φ ~ T_e/e, they trap electrons in wave potential wells. These trapped populations form phase-space vortices called electron holes — positive potential structures travelling at beam speed. They are the direct nonlinear saturation product of the instability. MMS EDP (Electric Double Probe) resolves them as bipolar parallel electric field pulses lasting ~0.1–500 ms. Each detected hole is a fossil of a Langmuir wave that saturated. The 2025 log shows 59 electron holes in one 6-hour window — this is extremely high activity.

Graham et al. (2016) GRL; Steinvall et al. (2021) GRL; Bernstein et al. (1957) PRL
Bipolar E∥ detection algorithm
Threshold: |E∥| > 3 × median(|E∥|) AND |E∥| > 0.5 mV/m
Duration: 0.1 ms < Δt < 500 ms (bipolar crossing both sides of threshold)
Size: L_hole / λ_D ≈ 3–20 (Debye-scale structures)
Speed: v_hole ≈ v_beam ≈ 100–1000 km/s
🔍
Awaiting data...
Parallel E-field E∥ = Ez (EDP, 32 sps)

Bipolar pulses (positive spike then negative, or reverse) are electron hole signatures. Amber dashed lines = ±detection threshold.

Total |E| Field Magnitude (EDP)

Full E magnitude. Large spikes coinciding with bipolar events confirm hole passage. Background level tracks general wave activity (Langmuir, whistler, ion acoustic).

Detected Event Table
11

Beam & Velocity Distribution Slope

📖 Bump-on-tail and the 2025 debate
Classical TSI requires ∂f/∂v > 0 at v_phase = ω_pe/k. Our proxy: r = v_beam/v_thermal. If r ≫ 1, a bump-on-tail is expected and df/dv > 0 is likely. If r ≈ 1, a truncated distribution (Jebaraj et al. 2025, A&A) may be responsible instead. The 2025 log shows Ve = 488 km/s — this is a strong beam.
Awaiting data...
Electron Bulk Speed |V_e| vs Time (FPI-DES)

Pink dashed line = 300 km/s beam threshold. High speed = directional beam = TSI driver present. The 2025 measurement shows Ve = 488 km/s — well above threshold.

Electron Density n_e & Plasma Frequency f_pe

Green = n_e (left axis). Blue = f_pe = 8980×√(n_e) in kHz (right axis). Higher f_pe → faster TSI growth. The 2025 data shows Ne = 7.53 cm⁻³, f_pe = 86.7 kHz.

Resonance Summary
QuantityValueInterpretation
12

TSI → Weibel Energy Chain

📖 The causal chain (not yet observationally confirmed)
PIC simulations predict: beam → Langmuir waves → electron scattering ⊥ → T_perp > T_par → Weibel drives B from zero. We test by cross-correlating V_e(t) and [T⊥/T∥](t+τ). A positive peak at τ > 0 means anisotropy follows the beam event. Confirming this in MMS data would be publishable.

Note: the 2025 data shows Tratio = 0.85 (T_par > T_perp), suggesting firehose conditions rather than Weibel. This is interesting — beam is present but anisotropy is in the wrong direction.
🔗
Awaiting data...
T_perp and T_par vs Time (FPI-DES)

Blue = T_par (parallel). Amber = T_perp (perpendicular). When T_perp persistently > T_par, Weibel is driven. When T_par > T_perp, firehose instability is possible.

T_perp/T_par Ratio vs Time

Purple = ratio. Red dashed = stability boundary (ratio = 1). Above 1 = Weibel active. Below 1 = firehose possible (as seen in 2025 data with ratio ~0.85).

Cross-Correlation C(τ): V_e vs T⊥/T∥ — Causal Chain Test

Peak at positive lag τ > 0 → anisotropy follows beam (correct causal order for TSI→Weibel). Peak at τ = 0 → coincident. Peak at τ < 0 → anisotropy preceded beam (reverse causality). Detection threshold: C = 0.2 (amber dashed).

13

Langmuir Wave Proxy

🌊
Awaiting data...
Electric Field PSD (EDP) — Langmuir Enhancement Near f_pe

Log-log PSD. Amber vertical = f_pe. Enhanced power near f_pe = Langmuir waves active. Note: f_pe ~86 kHz in 2025 data is above EDP slow-survey Nyquist (~16 Hz) — proxy only.

Magnetic B-field PSD with Theory References

Measured spectral index α vs Kolmogorov (−5/3) and IK (−3/2). The 2025 measurement gives α = −1.796 — slightly steeper than IK, suggesting enhanced sub-ion scale dissipation consistent with kinetic Alfvén wave damping.

14

Physics-Informed Scoring — TSI Probability Estimator

🤖 How the ML model works
We use a physics-informed logistic regression with 5 features derived directly from MMS measurements. The model weights are set based on theoretical expectations from our dispersion equations rather than trained on labelled data (which does not yet exist in sufficient quantity for MMS TSI events).

The 5 features and their physical motivation:

f₁ = v_beam/v_thermal — the bump-on-tail proxy. TSI grows when this is >> 1. Weight derived from how rapidly γ increases with v₀ in Eq.18.
f₂ = |α + 5/3|⁻¹ — inverse deviation from Kolmogorov slope. Active TSI injects energy that steepens the spectrum.
f₃ = n_holes / 10 — normalised electron hole count. Each hole is a direct saturation signature.
f₄ = max(A, 0) — positive temperature anisotropy only. TSI→Weibel chain builds T_perp > T_par.
f₅ = f_pe / 100 kHz — normalised plasma frequency. Higher density → faster growth → more likely to observe TSI products.

Output: P(TSI active) = σ(w₁f₁ + w₂f₂ + w₃f₃ + w₄f₄ + w₅f₅ + b) where σ is the sigmoid function. The probability is compared to the rule-based TSI score from section 08 for cross-validation.
TSI PROBABILITY — ML ESTIMATE
0% QUIET25% POSSIBLE50% PROBABLE75%+100% ACTIVE
Feature Contributions

Each bar shows how strongly that feature contributes to the TSI prediction. Full bar = maximum theoretical value. The weighted sum determines the final probability.

ML Probability vs Rule-Based Score

Cross-validation: if ML probability and rule-based score agree, we have higher confidence. If they disagree, it reveals which features are driving the discrepancy.

Feature Importance (Weighted Contributions)

Radar chart showing the 5 feature contributions to the current prediction. Larger area = more features pointing toward active TSI.

15

6-Month Historical Record

About the database

Each workflow run appends one record. The database stores up to 720 records (~180 days). Because MMS data has ~90 day latency, the history covers approximately 90–270 days before today. These plots reveal how plasma conditions evolve as MMS-1 orbits through different magnetospheric regions — plasmasphere, plasma sheet, magnetosheath, reconnection sites.

Magnetic Field |B| over Time

Large values = inner magnetosphere; small = magnetotail or boundary layers.

Turbulence Spectral Index α

Amber dashed = Kolmogorov −5/3. Purple dashed = IK −3/2. Steeper = kinetic dissipation.

Electron Bulk Speed V_e — Beam Monitor

Values above 300 km/s (pink dashed) = beam present = TSI conditions.

Temperature Anisotropy A = T⊥/T∥ − 1

Above dashed line = Weibel drive. Below = firehose. Track how often anisotropy follows beam events.

Electron Holes Per 6-Hour Window

High counts = active TSI saturation. Correlate with V_e spikes to test causality.

ML Probability + Rule Score Over Time

Both estimates plotted for cross-validation. Agreement = high confidence. Divergence reveals feature importance.

16

Unusual Events Log

How events are classified
6 categories are automatically detected each 6-hour window: HIGH_B_FIELD (B_max > 3σ or >500 nT), ELECTRON_HOLE_BURST (≥10 holes), HIGH_ANISOTROPY (A > 0.3), ELECTRON_BEAM (V_e > 300 km/s), TSI_WEIBEL_CHAIN (both active simultaneously), STEEP_SPECTRUM (α < −2.5). Each event has measured values and a plain-language scientific explanation.
Events accumulate over time. First events appear after the initial workflow run.