Der laminare Konvektionsterm ergibt sich nach (5.2) zu
![]()
Mit der diskreten, zeitlichen Ableitung (5.8)
ergibt sich daraus für den Gitterpunkt (i,j,k):
![]()
Aufgelöst nach der gesuchten Temperatur zum Zeitpunkt
![]()
stellt dies eine Taylor-Entwicklung bis zur ersten Ordnung in
x-Richtung dar. Ein Vergleich mit (5.10) liefert den
Zusammenhang
![]()
Die Temperatur zum Zeitpunkt
am Punkt (i,j,k)
ergibt sich somit aus der Temperatur zum Zeitpunkt t am Punkt
. Die Verschiebung
ist dabei keine
ganze Zahl mehr. Sie ergibt sich aus der Strecke, welche die
Strömung während eines Zeitschrittes
zurücklegt.
Dies bedeutet anschaulich, da\3 durch die Strömung eine
Koordinatentransformation innerhalb des Simulationsvolumens
stattfindet. Im Falle einer tiefenunabhängigen Strömung (m =
0) verschiebt sich das gesamte Simulationsvolumen, pro
Zeitschritt, um einen konstanten Betrag. Für eine
Scherströmung
wird zusätzlich eine Scherung
erzeugt, wobei übereinanderliegende Schichten gegeneinander
verschoben werden.
Das Stabilitätskriterium an die Implementierung von (5.46)
ergibt sich aus der Voraussetzung, da\3 durch Konvektion nicht
mehr Wärme pro Zeitschritt eine Box verlassen darf, als vor dem
Zeitschritt in ihr enthalten war ([Courant et al., 28]). Da der
Wärmeinhalt einer Box vollständig verschwindet, wenn die
Geschwindigkeit so hoch ist, da\3 ein Gitterpunkt über den
nächsten Gitterpunkt hinausgetragen wird, mu\3 die Verschiebung
(5.46) kleiner als die Gitterkonstante
bleiben:
![]()
Für die Grö\3e des Zeitschrittes, die durch die Diffusion
festgelegt wird (5.36), ist Bedingung (5.47)
für Geschwindigkeiten bis zu 600cms
erfüllt.
Die Interpretation des laminaren Konvektionstermes als Koordinatentransformation führt direkt zu einer effizienten Implementierung. Die prinzipielle Vorgehensweise dabei ist, da\3 die Simulation eines Zeitschrittes in zwei Schritte zerlegt wird. In einem ersten Schritt wird das Simulationsvolumen gemä\3 der Koordinatentransformation (5.46) verschoben. Da die Verschiebung im allgemeinen auf Zwischengitterpunkte führt, mu\3 die Temperaturverteilung anschlie\3end auf das regelmä\3ige Gitter interpoliert werden. In einem zweiten Schritt wird auf dem transformierten Gitter die Temperaturänderung durch Diffusion zwischen benachbarten Gitterpunkten berechnet und die Temperaturänderungen durch Quellen, Senken und Turbulenz zu jedem Punkt addiert.
zweischr

Abbildung: Schematische Darstellung des implementierten
Zweischrittverfahrens. In einem ersten Schritt wird die
laminare Konvektion durch subpixelgenaues Verschieben der
einzelnen Schichten berücksichtigt. Punkte, die dadurch aus dem
rechten Rand herausfallen, werden am linken Rand eingefügt
(periodische Randbedingungen). In einem zweiten Schritt wird
auf dem gescherten Simulationsvolumen die Diffusion zwischen
Nachbarpunkten berechnet.
Die Aufteilung der Transportgleichung in einen diffusiven und einen konvektiven Anteil wird allgemein als Charakteristikenverfahren bezeichnet ([Fachat, 95], [Kinzelbach, 92]). Eine zusammenfassende Darstellung findet sich in [Abott, 66]. Das verwendete Zweischrittverfahren ist ein modifiziertes Rückwärtscharakteristikenverfahren, das die Kenntnis des Geschwindigkeitsfeldes ausnutzt, um aus der Temperaturverteilung zu einem früheren Zeitpunkt, die verschobene Verteilung zu einem späteren Zeitpunkt zu berechnen. Zur Lösung des diffusiven Teils der Transportgleichung wird in einem zweiten Schritt das bereits beschriebene Verfahren verwendet.
Zur Implementierung der Verschiebung mit anschlie\3ender Interpolation wird der heurisko-Operator Shift() benutzt. Das dreidimensionale Simulationsvolumen wird in z-Richtung durchgescannt. Die zweidimensionale, horizontale Temperaturverteilung wird in jedem Tiefenschritt in einem temporären Bild in x-Richtung zweifach nebeneinander kopiert. Dadurch wird die Bildinformation zyklisch über den Rand des Bildes hinaus ergänzt. Die Verschiebung wird vorab in einem Bildvektor in z-Richtung abgespeichert. Der Wert dieses Vektors an der Position z wird dem Operator Shift() übergeben, um die Bildinformation aus der verschobenen Position in das Simulationsvolumen zurückzukopieren. Abbildung 5.3 zeigt eine schematische Darstellung des zyklischen Verschiebens.
shift

Abbildung: Schematische Darstellung des subpixelgenauen Verschiebens
mit zyklischen Randbedingungen.
Da der Shift()-Operator bei nicht-ganzzahligen Verschiebunge eine subpixelgenaue Verschiebung durchführt, wird automatisch die Interpolation auf das regelmä\3ige Gitter durchgeführt. Durch die Wahl eines optionalen Parameters kann die Art der Interpolation (linear, quadratisch, B-Spline) gewählt werden. Durch das Verdoppeln des Bildes wird die Bildinformation zyklisch ergänzt und verhindert, da\3 der Shift()-Operator auf leere Gitterpunkte zugreift. Der kommentierte heurisko-Workspace findet sich in Anhang B.1 (Operator shift()).