Für die Verifikation von Berechnungsprogrammen ergeben sich damit auch drei
Gruppen von Fehlerquellen, die sich wechselseitig beeinflussen.
Diese Arbeit befasst sich mit der
Begrenzung eines Teils der mathematischen Modellierung, dem Turbulenzmodell,
das zur Stufe 1 gehört.
Um aber aus den Differenzen zwischen Messwerten und Berechnungsergebnissen
Schlüsse ableiten zu können, werden auch die Stufen 2 und 3
in dieser Arbeit einer eingehenden
Überprüfung unterzogen.
Bei der Überprüfung der datentechnischen Realisierung (Stufe 3)
stellt sich die Frage, ob alle
Komponenten9.1 richtig implementiert wurden.
Da sich Beispiele nicht dergestalt konstruieren lassen, dass jeweils nur eine
Komponente isoliert geprüft wird, wurde folgender Weg beschritten:
In zwei verschiedenen Beispielen leistet eine Komponente einmal einen Beitrag
zum Ergebnis, im anderen Beispiel ist sie nicht aktiv.
Daraus, dass beide numerischen Berechnungen mit den
Erwartungen9.2
an den Algorithmus übereinstimmen,
wird dann geschlossen, dass diese Komponente korrekt implementiert wurde.
Würde die Funktion der Software nur an einem Beispiel getestet,
bestünden die Möglichkeiten,
dass sich zwei Fehler aus unterschiedlichen Quellen gegenseitig aufheben,
dass fehlerhafte Teile der Software in dem Beispiel gar nicht aktiv werden und
dass sich Abweichungen von den Erwartungen nicht einzelnen Komponenten zuordnen
lassen.
Hier soll nicht der Eindruck erweckt werden, dass ein Weg gefunden
worden wäre, die Fehlerfreiheit von Software mathematisch exakt nachzuweisen.
Auch gelingt damit kein Nachweis völliger Lückenlosigkeit des Testschemas.
Das Vorgehen der Isolation einer Komponente mittels zweier Beispiele hat sich
aber in der Fehlerdetektierung bei der Programmentwicklung bewährt.
Der Umfang des Testprogramms und die Unterschiedlichkeit der Beispiele
schränken die datentechnischen Fehlermöglichkeiten weitgehend ein.
Die Eingabedatensätze für die Testfälle sowie das Berechnungsprogramm
sind über http://www.wyrwa.de verfügbar.
Im Überblick stellen sich die Testrechnungen wie folgt dar:
Die numerischen Eigenschaften des in dieser Arbeit codierten
Basis-Algorithmus,
siehe Kapitel 8, sind aus der Literatur weitgehend bekannt und
im wesentlichen vorhersagbar (Stufe 2). Die Testrechnungen
des Abschnitts 9.2 dienen daher zur Illustration dieser Eigenschaften
und zeigen Stärken und Schwächen des Verfahrens auf.
In dieser Arbeit ist der aus der Literatur u.a. [19]
bekannte Basis-Algorithmus um ein Turbulenzmodell erweitert worden.
In den partiellen Differentialgleichungen, die ein Turbulenzmodell ausmachen,
siehe Kapitel 7,
treten Terme auf, welche die lokale Änderung, Konvektion und Diffusion
der Turbulenzquantitäten beschreiben. Die numerische Behandlung
dieser Terme geschieht
mittels des Basis-Algorithmus, dessen Eigenschaften bekannt sind.
Die im Turbulenzmodell auftretenden nichtlinearen Quellen- und Senken-Terme
zwingen zu einer Erweiterung des numerische Algorithmus, wie in
Kapitel 8 beschrieben.
Der Vergleich der Testrechnungen des Abschnitts 9.3
mit analytischen Lösungen dient
zum einen dazu, die Genauigkeit des numerischen Algorithmus (Stufe 2)
herauszuarbeiten, zum anderen gilt es, die korrekte datentechnische
Realisierung (Stufe 3) zu belegen.
Desweiteren sind die Testfälle des Abschnitts 9.3 so ausgewählt
worden, dass Vergleiche mit Messungen möglich sind, die bereits Aufschlüsse
über die Vorhersagemöglichkeiten des Turbulenzmodells zulassen.
Die Testrechnungen des Abschnitts 9.4 dienen
der zentralen Fragestellung dieser Arbeit, nämlich der
Erkundung des Verhaltens des Turbulenzmodells in stabil dichtegeschichteten
Strömungen.
In den Testfällen des Abschnitts 9.5 werden die Transportraten
suspendierter Sedimente berechnet, die zum Vergleich der Genauigkeit der
verschiedenen empirischen Modelle benötigt werden.