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.
Aufgabe vollständig gelöst
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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)
- The condition itself, published in 1928 — eighteen years before anyone integrated a forecast, and about hyperbolic equations rather than about weather: R. Courant, K. Friedrichs and H. Lewy, "Über die partiellen Differenzengleichungen der mathematischen Physik." Mathematische Annalen 100(1), 1928, pp. 32-74. DOI 10.1007/BF01448839
- The first numerical forecast that worked, and the paper that had to choose a grid and a time step to make it work: J. G. Charney, R. Fjørtoft and J. von Neumann, "Numerical Integration of the Barotropic Vorticity Equation." Tellus 2(4), 1950, pp. 237-254. DOI 10.3402/tellusa.v2i4.8607
- Richardson's 1922 attempt, which is where the subject starts and where the arithmetic first bit — his six-hour forecast of pressure change came out 145 hPa, against a real change of almost nothing: L. F. Richardson, Weather Prediction by Numerical Process. Cambridge University Press, 1922.
- Where the stability analysis of these two schemes is done properly, including why a second-order centred difference is unconditionally unstable for pure advection: D. R. Durran, Numerical Methods for Fluid Dynamics: With Applications to Geophysics, 2nd edition. Springer, 2010.