Onde di Alfvén in una dimensione

Un codice Fortran che simula come l'interazione non lineare deforma le onde di Alfvén in un plasma, con una relazione in LaTeX. L'ho fatto da solo in un mese, tra agosto e settembre 2022.

Stack: Fortran (gfortran), Python e Matplotlib, LaTeX.

Il problema

Le onde di Alfvén sono onde della magnetoidrodinamica. Nelle variabili di Elsässer, Z+ e Z-, sono due onde che viaggiano in versi opposti: se l'equazione fosse lineare si incrocerebbero senza disturbarsi; con i termini non lineari si deformano a vicenda. Volevo vedere come, scrivendo io stesso il codice che risolve le equazioni.

Evoluzione di Z+ e Z- in cinque istanti, con e senza non linearità

Come funziona

  1. 01

    Lo schema

    Differenze finite compatte con un filtro di Lele; le derivate richiedono di risolvere sistemi tridiagonali e pentadiagonali. Circa 525 righe di Fortran in moduli separati.

  2. 02

    La relazione

    Deriva le equazioni nelle variabili di Elsässer e discute i risultati (titolo: «Effetti non lineari sulle onde di Alfvén in una dimensione»).

  3. 03

    Compilazione e grafici

    Compilazione con gfortran e Makefile; i grafici sono fatti in Python con Matplotlib.

Evoluzione di Z+ e Z- in cinque istanti, con e senza non linearità
Z+ (sopra) e Z- (sotto) in cinque istanti; tratteggiata la soluzione lineare. A t = 3,48 il profilo diventa più ripido e compaiono gradini: serve il filtro.
Animazione della densità di corrente e dello spettro di energia nel vortice di Orszag-Tang
Orszag-Tang a 512×512: densità di corrente j (a sinistra) ed E(k) (a destra), fino a t = 4.

Estensione 2D (2026). Nel 2026 ho esteso il codice a due dimensioni con l'aiuto di Claude Code. Ho tenuto il metodo del 1D: derivate compatte e filtro di Lele, applicati una direzione alla volta su griglia periodica, e lo stesso Runge-Kutta di ordine 4. Le variabili sono le vorticità di Elsässer di Z+ e Z-. L'unica parte non compatta è il solver di Poisson, spettrale. Griglia 512×512, viscosità 5·10-4. Stesso codice, due condizioni iniziali: con Orszag-Tang si formano lamine di corrente, con uno strato di taglio (campo magnetico debole B0 = 0,1 lungo il flusso) i vortici di Kelvin-Helmholtz. A questa risoluzione lo spettro segue approssimativamente k-3/2 solo in un breve intervallo: non è una cascata turbolenta sviluppata.

Animazione dell'instabilità di Kelvin-Helmholtz con linee del campo magnetico
Strato di taglio con campo magnetico debole lungo il flusso: vorticità e linee di campo, fino a t = 6. Il dominio è mostrato due volte in x.
  • Cosa ho fatto io

    Tutto: il codice, la relazione e i grafici. 21 commit.

  • Limiti

    È codice di studio, non un'applicazione. Non ho confrontato i risultati con altri codici.