---
title: "Onde di Alfvén in una dimensione"
url: "https://edoardo.anteprime.edoardogabrielli.com/it/progetti/onde-di-alfven-1d"
lang: "it"
updated: "2026-11-01"
---

# Onde di Alfvén in una dimensione

> Codice Fortran che risolve l'evoluzione non lineare delle onde di Alfvén in una dimensione, con una relazione in LaTeX.

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à](https://edoardo.anteprime.edoardogabrielli.com/media/originals/2026/11/254a421006ea4c818722a4f6d334e1c2/elsasser1d-evoluzione.webp)

## Come funziona

### 1. 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. 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. 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à](https://edoardo.anteprime.edoardogabrielli.com/media/originals/2026/11/254a421006ea4c818722a4f6d334e1c2/elsasser1d-evoluzione.webp)

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.

[Codice su GitHub](https://github.com/dodogabrie/Elsasser1D)

[← Tutti i progetti](https://edoardo.anteprime.edoardogabrielli.com/it/progetti)