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.

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 le due si incrocerebbero senza disturbarsi, con i termini non lineari si deformano a vicenda. Volevo vedere come, risolvendo le equazioni a mano.

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

    I 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 si ripidisce e compaiono gradini: serve il filtro.
  • 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.

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