Implementierung neuer Probleme


Allgemein

Bei der Implementierung eines neuen Problems sollte man sich aus den bereits implementierten Problemen ein ähnliches heraussuchen und die notwendigen Programmänderungen in entsprechender Weise durchführen. Die folgende Übersicht zeigt, in welchen Programmen problemabhängig die Einfügungen vorzunehmen sind:

Programm Problem            

Umströmung Durchströmung Freie Randwerte Energietransport

main.c haken
boundary.c haken haken haken haken
flag.c + cars.c + valves.c + drachen.c haken haken haken haken
init.c haken haken haken haken
surface.c haken
turbulence.c
uvp.c
visual.c

Die Programme cars.c, valves.c und drachen.c sind Einfügungen in flag.c. In Ihnen sind jeweils mehrere Auto- bzw. Ventilprobleme sowie der Flugdrachen zusammengefasst. In den letzten drei Programmen sind keine Änderungen erforderlich. Mehr oder weniger aufwendig ist die Beschreibung der Hinderniszellen in flag.c. Sie kann bei einfacher Geometrie mittels weniger mathematischer Funktionen wie Kreise und Strecken erfolgen. Bei komplizierter Geometrie ist die Aneinanderreihung mehrerer Polynome zu empfehlen, was im Folgenden an einem Beispiel verdeutlicht werden soll.


Beispiel "ventil"

Ausgangspunkt der   Konturberechnung   ist die Vorlage eines Ventilquerschnittes beliebiger Größe. Er bildet den Hintergrund von einem "Picture Object" des Programmes XFIG. Die Kontur des Ventilquerschnittes wird mit einem Polygon nachgezeichnet. Ein Rechteck um das Bild begrenzt das Ventil. Die abgespeicherte fig-Datei enthält dann u.a. die x,y-Koordinaten des Polygons und des Rechtecks, die im Folgenden weiterverarbeitet werden zu Konturdaten für die Programme GNUPLOT und DISLIN. Dazu dient das Programm   kontur.c   bzw. kontur.f   im Verzeichnis "Tools". Dessen Eingabe-File enthält die x,y-Koordinaten der Polygone, die voneinander durch den Steuerparameter "sep" abgegrenzt werden. Weitere Parameter des Programmes sind das spätere Berechnungsgebiet xlength / ylength, die einhüllenden Rechteck - Koordinaten sowie die Platzierung des Rechtecks im Berechnungsgebiet. Der Ausgabe-File enthält die skalierten Konturdaten, die mit GNUPLOT darstellbar sind, und die in Form einer DATA-Anweisungen für die Konturbeschreibung in das DISLIN-Programm eingefügt werden können.

Mit dem Programm   flagg.c   bzw. flagg.f   im Verzeichnis "Tools" werden die Konturstrecken für die Berechnung der Hinderniszellen im Programm flag.c ermittelt. Der Eingabe-File enthält die aufeinanderfolgenden Konturpunkte, der Ausgabe-File die Geradengleichungen zwischen jeweils zwei Punkten als y=f(x) und als x=f(y). Mittels IF-Anweisungen in flag.c werden schließlich die Fluid- von den Hinderniszellen abgegrenzt. Die berechnete FLAG-Verteilung sollte bei den ersten Programmläufen auf Richtigkeit überprüft werden. Je nach Konturform und Gitterteilung kommt es vor, dass "unerlaubte Hinderniszellen" berechnet werden. In solchen Fällen kann die FLAG-Verteilung manuell korrigiert werden, d.h. einzeln hervorstehende Hinderniszellen in Fluidzellen umwandeln bzw. eine Hinderniszelle dazufügen. Für das gewählte Beispiel veranschaulicht die FLAG-Verteilung mit den weissen Fluidzellen und den schwarzen Hinderniszellen die möglichen Konfliktstellen, an denen "unerlaubte Hinderniszellen" vorkommen können; die Zahlen bezeichnen die laufende Zellnummerierung.

Im Programm boundary.c sind für das gewählte Beispiel die Einströmprofile anzugeben. Es handelt sich dabei um die Geschwindigkeiten, die Turbulenzenergie und deren Dissipationsrate. Sie sind hier immer von links oder von unten als Rechteckprofile mit den dimensionslosen Einströmwerten vereinbart; parabolische Profile etc. wären ebenso möglich. Im Programm init.c ist abschließend noch das neue Problem für das Gesamtprogramm bekannt zu machen.



Vorwort   |   Inhaltsverzeichnis