Package FlowVis

Java-Applikation für Bsp.2 der UE Visualisierung

 

 

Allgemeines zum Programm:

 

FlowVis ist eine Applikation zum Visualisierung von Strömungsfeldern. Um eine Strömungslinie zu errechnen, wird ein Ausgangspunkt genommen, und mittels Integrator (Euler, Runge-Kutta) der nächste Punkt auf der Strömungslinie errechnet. Der neue Punkt ist nun der Ausgangspunkt für die Berechnung eines weiteren Punktes. So wächst die Strömungslinie, bis sie entweder auf ein Hindernis stößt (Begrenzung, andere Strömungslinie) oder die maximale Integrationslänge erreicht hat. Die Strömungsvektoren des nächsten Punktes können dabei wahlweise mit der nearest neighbour-Methode oder mit bilinearer Interpolation berechnet werden.

Die Auswahl der Strömungslinien erfolgt entweder nach dem Zufallsprinzip, oder es wird der Algorithmus von Bruno Jobard und Wilfrid Lefer verwendet. Dabei werden erst alle Strömungslinien in einem bestimmten Abstand dSep von der aktuellen Strömungslinie integriert, bevor nacheinander eine von diesen Linien als neue aktuelle Strömungslinie bestimmt wird. dSep ist der minimalen Abstand, den ein sogenannter seedpoint (=Ausgangspunkt einer Strömung) von einer benachbarten Strömungslinie haben darf.

Die errechneten Strömungslinien können nun auf dem Bildschirm dargestellt werden. Dabei sind einige unterschiedliche Darstellungsmöglichkeiten vorhanden. Etwa kann der Handzeichnungs-Eindruck des entstehenden Bildes durch einen Tapering-Effekt verstärkt werden, oder bei dichten Strömungsfeldern eine Textur aufgebracht bzw. durch Zeichnen von Pfeilen eine Richtungsinformation gegeben werden. Außerdem ist es möglich, die Strömungslinien durch Pfeil-Icons statt mit Linien zu zeichnen.

Als weiteres Feature kann zusätzlich in den Daten mitgelieferte Information wie Druck auf verschiedene Art dargestellt werden. Um Details in der Strömung genauer zu sehen, zoomt man in den entsprechenden Bereich hinein.

Den Sourcecode, Sourcedoku gibt es als FlowVis.zip zum Downloaden, die Sourcedoku gibt es auch hier zum Anschauen.

 

Hinweise zur Installation für Win32:

 

Das verwendete Java ist jdk1.3.1_01. Für eine Neucompilation muß Java3D installiert sein.

Befindet sich das Verzeichnis FlowVis im aktuellen Verzeichnis, dann wird das Programm gestartet mit

java -Xmx256000k FlowVis/Gui

Angenommen, Geometriefile und Datenfile liegen in einem Verzeichnis daten, dann kann man das Programm auch mit dem Befehl

java -Xmx256000k FlowVis/Gui daten/c_block.gri daten/c_block.0000.dat

starten, wodurch Geometrie- und Datenfile sofort geladen werden. Kopiert man Geometrie- und Datenfile in ein Verzeichnis daten, kannt auch das Batch-File flow (im FlowVis.zip mitgeliefert) ausgeführt werden.

 

Hauptbildschirm der Anwendung

 

Bedienhinweise:

 

Zuerst muss das Geometriefile geladen werden, dann das dazu entsprechende Datenfile. Beides findet sich im Menü File. Dann kann im Menü Image mit recalc ein neues Bild gezeichnet werden.

Die aktuelle Strömungslinieninformation wird gespeichert und kann im Bild mit dem Titel current frame dargestellt werden. Berechnet man die Strömungslinieninformation neu, verwirft man dadurch die alte.

Für Detailansichten wird der Menüpunkt detail angewählt. Dann kann mit der Maus eine Bereich aufgezogen werden, der im Detail dargestellt wird. Um die Detailzeichnung auszuschalten drückt man noch einmal auf detail.

Die wichtigsten Punkte aus dem Drawing style-Menü und dem Line style-Menü kann man auch in den entsprechenden Toolbars auswählen.

 

Zu den einzelnen Hauptmenüpunkten:

 

Menü File

Meüpunkte zum Laden von Geometrie- und Datenfile, außerdem können Icons für die Glyphen-Zeichnung und der Darstellung der Vektor-Information geladen werden.

 

Menü Image

Beinhaltet Menüpunkte zum Neuberechnen und Zeichnen des Bildes

 

Menü Drawing style

Beinhaltet verschiedene Menüpunkte für die Darstellung der berechneten Strömungs-Information auf dem Bildschirm.

drawing style: Strömungslinien können mit Linien- oder Glyphen dargestellt werden.

additional info: soll zusätzliche Information (Druck, Verwirbelung rechtwinklig zum Slice) dargestellt werden

textur function: Auswahl der Texturfunktion(sinus-f, modulo-f), die auf Strömungslinie aufgetragen wird(nur Linien-Modus)

additional info representation: Darstellungsform von zusätzlicher Information  (Schwellwert-Methode, farbkodiert)

period of textur function: Anzahl von Punkten in der Streamline, nach der sich Texturfunktion wiederholt

glyph size

pressure window: Dialog zum Einstellen des Schwellwert-Fensters für Druck-Information

perp. vorticity window: Dialog zum Einstellen des Schwellwert-Fensters für Verwirbelung rechtwinklig zum Slice

zoom factor: Vergrößerungsfaktor der Daten

update frequency: Anzahl von Strömungslinien, nach deren Berechnung das Bild aufgefrischt wird

rotate 90deg: Stellt Bild um 90 Grad gedreht  dar

vector plot: Zeichnet Vektorinformation mit Glyphen

enable detail: Macht die Darstellung von Details in dem Strömungsfeld möglich. durch Aufziehen eines Fensters im Bild mit der Maus kann der entsprechende Bereich vergrößert dargestellt werden. Um die Detailzeichnung auszuschalten drückt man noch einmal auf enable detail.

 

Menü Line style

Verschiene Einstellung für die Darstellung der Strömungslinien im Linien-Modus

add texture: zeichnet Textur auf die Strömungslinien

add arrow: zeichnet Pfeile auf die Strömungslinien

add tapering: verwendet Tapering-Effekt beim Linienzeichnen

add pressure: Druckinformation auf der Strömungslinie

line color

line width

 

Menü Algorithm Options

Verschiedene Optionen, die den Ablauf des Algorithmus beeinflussen.

integrator operator: Es kann zwischen Euler-Integrator und Runge-Kutta-Integrator gewählt werden

streamline selection method: Zufallsmethode oder Auswahl der Strömungslinien nahe bei existierenden Strömungslinien

choose start point: Zufallsmethode oder Mittelpunkt von Bildschirm als Startpunkt

vector interpolation: nearest neighbour, bilinear standard (ohne explizite Vektorlängen-Interpolation), binear(+vector length)

delta d: Genauigkeit, in der der Integrator die Streamline berechnet ( sollte größer dSep sein, um korrekte Bilder zu ermöglichen)

separating distance: Dialog zum Einstellen der Distanz zu einer anderen Strömungslinie, an der eine neue Strömungslinie begonnen wird(dSep) und der Distanz, an der die Integration einer Strömungslinie als zu nahe an einer anderen Strömungslinie abgebrochen wird(dTest)

random alg. it-depth: Anzahl der Strömungslinien, nach deren Berechnung der Algorithmus abgebrochen wird(nur Zufallsmethode)

streamline it-depth: Anzahl der Schritte, die eine Strömungslinie maximal integriert wird.

 

Beispielbilder:

 

In Beispiel 1 werden die Strömungslinien durch Pfeile und im Hintergrund die Druck-Information farbkodiert dargestellt

Beispiel 2 ist eine Detailansicht mit Druckinformation und sinus-Texturfunktion

Beispiel 3 ist eine Detailansicht von Verwirbelungen rechts von dem die Strömung teilenden Hindernis

Beispiel 4 ist eine Detailansicht der Verwirbelungen an einer Grenze zwischen Druck und Unterdruck

Beispiel 5 ist eine extreme Vergrößerung (9251x) eines Wirbels

Beispiel 6  verwendet Icon-Pfeile und zeigt die Verwirbelungen rechtwinkelig zum Slice mit einer Schwellwert-Darstellung

Beispiel 7 stellt die Strömungslinien als Pfeile und die Druckinformation mit Schwellwert-Zeichnung dar

Beispiel 8 zeigt die Strömungslinien als Icons und die Vektorinformation mit anderen Icons

Beispiel 9 zeigt Verwirbelungen in der Nähe des Hindernisses mit Verwirbelung rechtwinklig zum Slice als color code

Beispiel 10 zeigt den ganzen Fluß um 90 Grad gedreht mit modulo-Textur

Beispiel 11

Beispiel 12 zeigt schöne Wirbel mit aufgetragener sinus-Textur

Beispiel 14

Beispiel 15

Oliver Mattausch, Matrikelnummer 9506124