Wetter auf einem Gitter

Eine Vorhersage ist ein Feld auf einem Gitter, das von einer Uhr vorangetrieben wird. Spielst du diese beiden gegeneinander aus, liefert dir ein physikalisch völlig korrektes Modell Zahlen, die keine Atmosphäre der Welt aushalten würde.

Interaktive Simulation wird geladen...

Lektion

Die Theorie — Wetter auf einem Gitter

Ein Vorhersagemodell erfasst die Atmosphäre als Zahlen auf einem Gitter und bewegt sie in Zeitschritten vorwärts. Das Einfachste, was es tut, ist Advektion: Wind trägt ein Muster weiter, ∂u/∂t + c ∂u/∂x = 0. Diese Seite löst das auf einem Ring mit einem Umfang von 160 km. Diese Wahl ist entscheidend, denn Advektion hat eine exakte Lösung. Nach einer Zeit t ist das Feld lediglich das um c·t verschobene Anfangsfeld, mehr nicht. Deshalb wird jeder hier gemeldete Fehler an der Realität gemessen und nicht an einem noch feineren Durchlauf. Die Courant-Zahl ν = c·Δt/Δx gibt an, wie viele Zellen der Wind in einem Schritt überquert. Die CFL-Bedingung ν ≤ 1 ist die Regel, an die sich die expliziten Verfahren hier halten oder an der sie scheitern. Courant, Friedrichs und Lewy veröffentlichten sie 1928, achtzehn Jahre bevor irgendjemand eine numerische Vorhersage rechnete.

Was die einzelnen Symbole bedeuten

c
die Windgeschwindigkeit in m/s. Hier konstant; in einem echten Modell ist sie Teil der Lösung und keine bloße Einstellung
Δx
der Gitterabstand, also 160 km geteilt durch die Anzahl der Zellen
Δt
der Zeitschritt in Sekunden
ν
die Courant-Zahl, c·Δt/Δx. Alles auf dieser Seite dreht sich darum, ob sie über oder unter 1 liegt
N
Zellen um den Ring, von 10 bis 400
Setzt voraus
Eine Gleichung, eine Dimension, eine Windgeschwindigkeit und ein Ring ohne Ränder. Da die exakte Lösung bekannt ist, stammt der gemeldete Fehler ausschließlich vom Verfahren selbst. Es wird außerdem ein explizites Verfahren vorausgesetzt, bei dem jeder neue Wert nur aus alten Werten berechnet wird. Genau um diese Annahme geht es bei der CFL-Bedingung im Kern, und sie ist jene, der sich ein echtes Modell teilweise entzieht.
Versagt, wenn
Bei fast allem, womit es ein Wetterzentrum zu tun hat. Ein echtes Modell rechnet mit mehreren Wellengeschwindigkeiten gleichzeitig, und die schnellste ist der Schall mit etwa 340 m/s. Die CFL-Bedingung für Schallwellen einzuhalten, die niemand vorhersagen will, würde einen Zeitschritt erzwingen, der dreißigmal kleiner ist, als das Wetter es erfordert. Deshalb arbeiten operationelle Modelle semi-implizit und behandeln diese Wellen separat. Der Wind ist auch nicht konstant, also muss ν den stärksten Wind auf dem gesamten Gitter aushalten und nicht nur einen Durchschnittswert. Ein Modell mit begrenztem Gebiet hat Ränder, und wie man damit umgeht, ist ein eigenes Forschungsfeld. Ein implizites Verfahren entgeht dem CFL-Limit vollständig, zahlt dafür aber den Preis, bei jedem Schritt ein Gleichungssystem lösen zu müssen, anstatt nur ein Array zu durchlaufen.

Die Uhr wird vom Gitter vorgegeben, nicht von der Gleichung 🖖

Klick auf Genau auf der Kante und dann auf Feineres Gitter, gleicher Takt. Gleicher Wind, gleicher Zeitschritt, gleiche Gleichung; die Zellen schrumpfen von 1 km auf 667 m und sonst ändert sich nichts. Der erste Durchlauf ist exakt. Der zweite überschreitet bei Schritt 44 das Zehnfache seines Anfangsmaximums und erreicht 1,8 × 10³⁰. Die dritte Zeile der Tabelle verrät warum: Der Wind legt in einem Schritt von 100 s 1,000 km zurück. Solange eine Zelle mindestens so breit ist, stammt die darin eintreffende Luft von irgendwo zwischen der Zelle und ihrem luvseitigen Nachbarn. Der neue Wert ist also eine Mischung aus diesen beiden. Genau das macht das Upwind-Verfahren. Machst du die Zelle schmaler als das, kommt die eintreffende Luft von weiter hinten als der Nachbar, den das Verfahren abfragt. Das Gewicht für den eigenen Wert der Zelle, 1 − ν, wird negativ. Ein negatives Gewicht bildet keinen Mittelwert. Es verstärkt. ν = c·Δt/Δx ≤ 1 ist dieser Satz in Symbolen. Ein Gitter zu verfeinern, verbessert die Physik und gefährdet die Arithmetik, und die Gleichungen sagen darüber nichts aus.

Die Grenze zu überschreiten, bricht eine Vorhersage nicht ab. Es legt nur fest, dass sie scheitert. 🖖

Das zweite Panel variiert die Courant-Zahl und zählt die Schritte, bis das Feld sich verzehnfacht. Bei 1,05 dauert das 330 Schritte; bei 1,2 sind es 93; bei 2,0 nur 19. Knapp über der Grenze, bei 1,01, braucht es 1.588 Schritte – mehr als die ersten drei Voreinstellungen zusammen ausführen. In diesen frühen Schritten sieht nichts falsch aus. Das Wachstum ist exponentiell, und exponentielles Wachstum ist unsichtbar, bis es das plötzlich nicht mehr ist. Ein Meteorologe, der den Output liest, hat die Rechenzeit bereits verbraucht. Die Courant-Zahl lässt sich aus drei Zahlen ablesen, bevor der Durchlauf überhaupt beginnt. Genau dort liest ein operationelles Zentrum sie auch ab.

Die genaueste Einstellung ist die am Rande des Scheiterns 🖖

Bei genau ν = 1 ist das Upwind-Verfahren nicht nur genau. Es ist exakt: Der Fehler gegenüber dem wahren Ergebnis beträgt 5,4 × 10⁻²² und das Wetterphänomen behält 100,0 % seiner Höhe. Denn eine Courant-Zahl von 1 macht jeden Schritt zu einer sauberen Verschiebung um eine Zelle, und eine Verschiebung ist alles, was Advektion je war. Jeder kleinere Wert verschmiert das Phänomen auf Nachbarn, die der Wind noch nicht erreicht hatte. Über dieselben 11,11 simulierten Stunden auf demselben 1-km-Gitter behält ν = 0,99 noch 94,3 %, ν = 0,90 noch 66,7 %, ν = 0,50 noch 37,1 % und ν = 0,25 noch 31,0 %. Aus Sicherheitsgründen vom Grenzwert abzurücken, ist die denkbar einfachste Art, ein Wetterphänomen zu verlieren. Und das offensichtliche Gegenmittel ist schlimmer als die Krankheit: Klick auf Das bessere Verfahren und sieh zu, wie eine Methode, deren Abbruchfehler eine Größenordnung kleiner ist als der des Upwind-Verfahrens, in Schritt 39 bei der halben Courant-Grenze explodiert.

Aufgabe vollständig gelöst

  1. Das Modell mit 4 km braucht 40 Minuten. Was kosten 500 m? 7 Schritte

    Ein Vorhersagemodell mit 4 km Gitterweite berechnet sein Gebiet in 40 Minuten Rechenzeit. Du wirst gefragt, was dieselbe Vorhersage bei 500 m kosten würde. Rechne das aus, bevor du weiterliest, und achte darauf, welchen der drei Faktoren du nicht erwartet hättest. Klick auf Genau an der Grenze, um das Werkzeug auf die Zeile für 1 km in der Tabelle zu setzen.

    Öffne diese Aufgabe im Tool

    1. Fang mit den Zellen an. Den Abstand zu halbieren, verdoppelt die Anzahl entlang jeder Seite. Ein Vorhersagegebiet hat zwei horizontale Dimensionen, eine Halbierung führt also zu viermal so vielen Zellen: 4 km ergeben 40 × 40, während 2 km 80 × 80 bedeuten.

    2. Nun zum Faktor, der die Leute überrascht. Über den Zeitschritt kannst du nicht frei verfügen. Die CFL-Bedingung bindet ihn an den Gitterabstand, eine Halbierung von Δx halbiert also auch das größtmögliche erlaubte Δt. Bei einem Wind von 10 m/s und ν = 0,9 erlaubt ein Gitter von 4 km einen Zeitschritt von 360 s, ein Gitter von 2 km erlaubt 180 s. Die Schritte für einen simulierten Tag steigen von 240 auf 480.

    3. Multipliziere sie. Viermal so viele Zellen und doppelt so viele Schritte ergeben die achtfache Rechenarbeit für eine einzige Halbierung: 384.000 Zellaktualisierungen pro Tag bei 4 km gegenüber 3.072.000 bei 2 km. Die letzte Spalte der Tabelle zeigt in jeder Zeile 8,00. Das ist der exakte Faktor, keine Schätzung.

    4. Von 4 km auf 500 m sind es drei Halbierungen, der Faktor lautet also 8³ = 512. Die Tabelle stimmt von vorne bis hinten überein: 384.000 Aktualisierungen pro Tag bei 4 km, 196.608.000 bei 500 m.

    5. Aus den 40 Minuten werden 40 × 512 = 20.480 Minuten, was zwei Wochen für einen einzigen Wettertag entspricht. Das ist die Antwort darauf, warum ein Vorhersagegitter genau die Größe hat, die es hat, und nicht so fein ist, wie man es sich wünschen würde. Und es erklärt, warum ein Rechenzentrum, das die doppelte Auflösung anstrebt, eine achtmal so starke Maschine kaufen muss.

    6. Diese Schätzung ist ehrlich, was ihre Grenzen angeht. Sie geht davon aus, dass sich die Rechenarbeit pro Zellaktualisierung nicht ändert. Das stimmt für einen Advektionsterm in etwa und wird zunehmend optimistisch, je komplexer die Physik wird. Sie nimmt an, dass ν bei 0,9 bleibt, was kein echtes Modell versprechen kann. Denn ν muss dem stärksten Wind auf dem Gitter standhalten, und ein Jetstream hält keine Rücksprache mit dem Modellentwickler.

    7. Wo diese Seite aufhört: Ein Wetterzentrum, das mit dieser Arithmetik konfrontiert ist, zahlt diesen Preis nicht einfach blind. Ein Teil des Faktors wird durch ein semi-implizites Verfahren zurückgewonnen. Das umgeht die CFL-Bedingung für die schnellen Wellen, was allerdings bei jedem Schritt die Lösung eines Gleichungssystems erfordert. Ein weiterer Teil wird eingespart, indem man hohe Auflösung nur dort einsetzt, wo sie benötigt wird – etwa in einem verschachtelten oder variablen Gitter. Beides ist real, nichts davon ist umsonst, und diese Seite berechnet keines von beiden.

    Antwort

    512-mal so viel Arbeit, also grob zwei Wochen für einen einzigen Vorhersagetag. Viermal so viele Zellen und doppelt so viele Schritte pro Halbierung, drei Halbierungen, 8³ = 512. Der Faktor, den niemand erwartet, ist der dritte: Die Courant-Bedingung verbraucht deinen Zeitschritt.

Lernpfad

Wie eine Wettervorhersage entsteht

Quellen (4)