- Diplomarbeit - dem Fachbereich Informatik. Universität Dortmund. Matthias Miemczyk. vorgelegt von. 20. November 2007

Größe: px
Ab Seite anzeigen:

Download "- Diplomarbeit - dem Fachbereich Informatik. Universität Dortmund. Matthias Miemczyk. vorgelegt von. 20. November 2007"

Transkript

1 Hexaeder-Gittergenerierung durch Kombination von Gitterdeformations-, Randadaptions- und Fictitious-Boundary -Techniken zur Strömungssimulation um komplexe dreidimensionale Objekte - Diplomarbeit - dem Fachbereich Informatik der Universität Dortmund vorgelegt von Matthias Miemczyk 20. November 2007 Erstgutachter : Prof. Dr. H. Müller Zweitgutachter : Prof. Dr. S. Turek Universität Dortmund Universität Dortmund Fachbereich Informatik Fachbereich Mathematik Lehrstuhl für Graphische System Lehrstuhl für Angewandte Mathematik D Dortmund D Dortmund

2 II

3 Inhaltsverzeichnis III Inhaltsverzeichnis Abbildungsverzeichnis Tabellenverzeichnis VI IX 1 Einleitung Einführung und Motivation Ziele der Diplomarbeit Struktur der Arbeit Grundlagen Computational Fluid Dynamics Das mathematische Modell Diskretisierung Mehrgitterverfahren Strahlverfolgung INGRID3D Qualitätskriterien für Gitter Glättungsoperatoren für Gitter Objektrepräsentation Voronoi-Diagramme Externe Software Punktklassifizierung Schnittzahltest Octree bzw. Quadtree Spezialisierte Datenstruktur Aufbau Anwendung für Punktklassifizierung Analyse der Effizienz Heuristiken zur Optimierung Erweiterung auf die dritte Dimension Distanzberechnung Naiver Ansatz Fast Marching Funktionsweise Korrektheit Effizienz

4 IV Inhaltsverzeichnis Erweiterung auf die dritte Dimension Projektionstechniken Allgemein Kantenprojektion Projektionsrichtung Algorithmus INGRID3DDEFORM Simulationsverlauf Visualisierung Zusatzfunktionen Resultate Testobjekte Testobjekt 1 und Testobjekt 3 und Testobjekt 5 und Punktklassifizierung Testobjekt Testobjekt Testobjekt Zusammenfassung Distanzberechnung mit Fast Marching Testobjekt Testobjekt Zusammenfassung Gitterdeformation Distanzgenauigkeit Mehrgitterdeformation Testfälle Projektion zur Randanpassung Funktionsweise Projektion und Gitterdeformation Komplexe Objekte DFG-Benchmark Bewertung Eingesetzte Methoden INGRID3DDEFORM Erweiterte Visualisierung für die DFG Ausblick Optimierungen Erweiterte Möglichkeiten zur Verbesserung der Gittererzeugung Danksagung 95

5 Inhaltsverzeichnis V A Anhang 97 A.1 Tabellen für Punktklassifizierung A.2 Tabellen für Distanzberechnung Quellenverzeichnis 103

6 VI Inhaltsverzeichnis

7 Abbildungsverzeichnis VII Abbildungsverzeichnis 2.1 Typisches Szenario eines Windkanals mit definierten Randbedingungen Zwei unterschiedliche Auflösungen eines Gebietes durch ein Gitter Gitterdeformation mit unterschiedlichen Parametern ɛ Darstellung einer Gitterhierarchie bestehend aus drei Ebenen mit der Fictitious- Boundary Methode Eine festgelegte Reihenfolge der Knoten eines Hexaeders bestimmt die Orientierung seiner Seitenflächen Von FEATFLOW geforderte Orientierung der acht neuen Hexaeder nach der Unterteilung Bestimmung der Reihenfolge dreier Knoten gegen den Uhrzeigersinn Mit Hilfe von INGRID3D erstellte exakt Randangepasste Approximation eines Objekts Darstellung zweier Objekte als Oberflächentriangulationen Voronoi-Diagramm zu einer zufälligen Punktmenge Darstellung des Schnittzahltests Darstellung eines Quadtrees Punktklassifizierung mit Hilfe eines Quadtree Punktklassifizierung mit Hilfe des Spezialbaumes Auswirkung der Reihenfolge der Achsen beim Aufbau der Datenstruktur für seine Effizienz bei der Punktklassifizierung Heuristik zur Steigerung der Effizienz während der Unterteilung der letzten Achse Erweiterung des Spezialbaumes auf die dritte Dimension Darstellung der initialen Bänder für die Fast Marching Methode Zwei Zeitpunkte in der Verbreitungsphase der Fast Marching Methode Beispiele für die Fehler, die in der Distanzberechnung mit der Fast Marching Methode entstehen können Ausbreitung der Information eines Referenzpunktes innerhalb seiner Voronoi-Region Uneindeutigkeit der Projektion mit kürzesten Abständen Idee zur Bestimmung der Projektionsrichtung an Hand von Kanten Durch Kanten bestimmte Richtung für die Projektion von Knoten auf die Objektoberfläche Darstellung verschiedener Projektionsmöglichkeiten Nicht erkannte für die Projektion geeignete Knoten der heuristischen Projektion Aufbau von INGRID3DDEFORM Zeichenoptionen für Gitterknoten in der Nähe der Objektoberfläche Zeichenoptionen für Hexaederseitenflächen, die das Objekt approximieren

8 VIII Abbildungsverzeichnis 6.4 Zeichenoptionen für Hexaederseitenflächen, die sich innerhalb des Objekts befinden Visualisierung eines Geschwindigkeitsfeldes mit drei verschieden orientierten Gitterschichten Visualisierung der Monitorfunktion für eine Kugel mit unterschiedlicher Skalierung Testobjekt 1 und Testobjekt 3 und Testobjekt 5 und Initiale Gitter zur Untersuchung der Punktklassifizierung mithilfe des Spezialbaumes Ungünstiges Objekt für den Aufbau des Spezialbaumes Entwicklung des Speicherverbrauchs beim Aufbau des Spezialbaumes mit unterschiedlichen Abbruchbedingungen in MB Entwicklung der durchschnittlichen Laufzeit der Punktklassifizierung pro Gitterknoten mit unterschiedlichen Abbruchbedingungen für den Spezialbaum Grafik für die Initialphase der Fast Marching Methode Grafik für die Verbreitungsphase der Fast Marching Methode Vergleich zwischen FM-Gitter und A-Gitter nach einem Deformationsschritt Vergleich der Gitterdeformation zwischen FM-Gitter und A-Gitter über die Abweichung der Knoten Testfall 2. Eingitterdeformation an das Golfmodell auf der feinsten Hierarchieebene Testfall 2. Mehrgitterdeformation an das Golfmodell mit einem Gitterdeformationsschritt pro Hierarchieebene Validierung der Projektionstechniken am Beispiel des Würfels und einem regulär unterteilten Gitter Problematik der Projektionstechniken bei der Gitterdeformation am Beispiel des Würfels Problematik der Projektionstechniken bei der Gitterdeformation am Beispiel der Kugel Darstellung der Projektionstechniken an komplexen Objekten Gebietsdefinition für den DFG-Benchmark Drei Gitter für den DFG-Benchmark in der Nähe des Zylinders Vergleich der Strömungsgeschwindigkeiten im DFG-Benchmark Vergleich des Druckfeldes im DFG-Benchmark Strömungssimulation für das Golfmodell im Benchmarkkanal Strömungssimulation für das Golfmodell im Benchmarkkanal Bild für den DFG Kalender Beispiel für Gitterdeformation und Projektion mit Maximum-Metrik als Monitorfunktion Darstellung des berechneten Druckfeldes für das Modell einer Ragattasegelyacht Darstellung des berechneten Geschwindigkeitsfeldes für das Modell einer Ragattasegelyacht Darstellung einer Gitterschicht im Inneren des Modells einer Ragattasegelyacht

9 Tabellenverzeichnis IX Tabellenverzeichnis 7.1 Aufbau der Spezialdatenstruktur für Testobjekt 1 (Kugel, Dreiecke) und vier unterschiedliche Abbruchheuristiken Test zur Punktklassifizierung mit Testobjekt 1 (Kugel, Dreiecke), der maximalen Gitterhierarchieebene und vier unterschiedlichen Abbruchheuristiken Aufbau der Spezialdatenstruktur für Testobjekt 2 (Würfel, Dreiecke) und vier unterschiedliche Abbruchheuristiken Test zur Punktklassifizierung mit Testobjekt 2 (Würfel, Dreiecke), der maximalen Gitterhierarchieebene und vier unterschiedlichen Abbruchheuristiken Aufbau der Spezialdatenstruktur für Testobjekt 6 (Manta/Taucher, Dreiecke) und vier unterschiedliche Abbruchheuristiken Test zur Punktklassifizierung mit Testobjekt 6 (Manta/Taucher, Dreiecke), der maximalen Gitterhierarchieebene und vier unterschiedlichen Abbruchheuristiken Distanzberechnung für Testobjekt 3 an Hand einer deformierten und einer regulär unterteilten Gitterhierarchie Distanzberechnung für Testobjekt 4 an Hand einer deformierten und einer regulär unterteilten Gitterhierarchie Vergleich der Gitterdeformation zwischen FM- und A-Gitter Vergleich der resultierenden Qualitätsmaße zwischen der Eingitterdeformation auf der feinsten Hierarchieebene und der Mehrgitterdeformation Testwerte zur Funktionsweise der verschiedenen Projektionstechniken mit regulär unterteiltem Gitter und dem Würfelobjekt Testwerte zum Einfluss der unterschiedlichen Skalierung der Monitorfunktion auf die anschließende Projektion Testwerte zum Einfluss der unterschiedlichen Skalierung der Monitorfunktion auf die anschließende Projektion Testwerte zum Einfluss der unterschiedlichen Skalierung der Monitorfunktion auf die anschließende Projektion Zusammenfassung der Laufzeiten für das Golfmodell im Benchmarkkanal und einem aus Hexaedern bestehendem Grobgitter A.1 Test zur Punktklassifizierung mit Testobjekt 1 (Kugel Dreiecke), vier Gitterhierarchieebenen und vier unterschiedlichen Abbruchheuristiken A.2 Test zur Punktklassifizierung mit Testobjekt 2 (Würfel Dreiecke), vier Gitterhierarchieebenen und vier unterschiedlichen Abbruchheuristiken A.3 Test zur Punktklassifizierung mit Testobjekt 6 (Manta/Taucher Dreiecke), vier Gitterhierarchieebenen und vier unterschiedlichen Abbruchheuristiken

10 X Tabellenverzeichnis A.4 Distanzberechnung für Testobjekt 3, an Hand einer deformierten und einer regulär unterteilten Gitterhierarchie

11 1 Kapitel 1 Einleitung 1.1 Einführung und Motivation Strömungsvorgänge von Flüssigkeiten und Gasen treten in der Natur in vielfältiger Form auf. Sie existieren bei der Entstehung von Wind und Meeresströmungen, bei Strömungen um verschiedenste Arten von Fahrzeugen oder auch bei Verbrennungsvorgängen innerhalb von Motoren. Um Strömungen zu simulieren, existieren zwei grundsätzliche Verfahren: das Experiment und die rechnergestützte Simulation. Bei der experimentellen Strömungssimulation wird ein reales Modell, meist eine verkleinerte Variante des Originals, in einem Kanal platziert. Dort wird das Modell von einer Flüssigkeit oder einem Gas umströmt und die entstehende Strömung wird visualisiert und ausgewertet. Diese Art der Simulation ist technisch sehr aufwendig und sehr kostspielig. Durch die steigende Rechenleistung moderner Computer hat das Gebiet der numerischen (rechnergestützten) Strömungssimulation (engl. Computational Fluid Dynamics, kurz CFD) stärkere Beachtung gefunden, bietet jedoch ebenfalls eine gewisse Problematik. Es ist bei dem heutigen Stand der Technik leider nicht möglich, eine fehlerfreie Simulation für komplexe Probleme zu erstellen. In einem Aufsatz beschreiben Johnson u. a. [2005] die Entwicklung von Strömungssimulationen bei der Firma Boeing über einen Zeitraum von 30 Jahren. Demnach kann die Zahl der Unbekannten für eine direkte Lösung von Gleichungssystemen, die eine Strömungssimulation beschreiben, eine Größe von bis zu erreichen. Diese Zahl übersteigt die Rechenleistung heutiger Computer bei Weitem. Auf Grund dieser hohen Komplexität müssen Fehler in der Simulation eingeräumt werden, sofern auf die Simulation nicht verzichtet werden soll. Das Ziel jeder Simulation ist es die entstehenden Fehler so gering wie möglich zu halten und dennoch in angemessener Zeit brauchbare Ergebnisse zu liefern. Trotz anfänglicher Schwierigkeiten hat sich die rechnergestützte Simulation als eine zum Experiment gleichwertige Entwicklungsmethode etabliert. In dieser Arbeit wird der Schwerpunkt auf die Betrachtung von Strömungsvorgängen in einem Kanal gelegt. Ein Softwarepaket zur Lösung solcher Strömungsvorgänge ist das im Rahmen dieser Arbeit verwendete FEATFLOW (siehe [Becker u. Turek 1999]). Grundsätzlich bestehen die numerischen Simulationen aus folgenden vier Phasen: 1. Modellbildung Die physikalischen Eigenschaften der zu untersuchenden Flüssigkeiten oder Gase werden durch eine Reihe mathematischer Gleichungen beschrieben. Eine Möglichkeit für eine solche Beschreibung bieten die Navier-Stokes Gleichungen, die in dieser Diplomarbeit ver-

12 2 1. Einleitung wendet werden. Sie bilden ein System partieller Differentialgleichungen, in das die physikalischen Erhaltungssätze für Impuls und Masse integriert sind. 2. Diskretisierung Die Simulation findet in einem begrenztem Gebiet statt. Um eine Bearbeitung der Probleme mit dem Computer zu ermöglichen, wird das Gebiet in eine endliche Anzahl von Teilgebieten zerlegt, welche in ihrer Gesamtheit ein Gitter beschreiben. Mit Hilfe dieses Gitters erzeugt die Diskretisierung ein Gleichungssystem, mit welchem eine approximierte Lösung der Strömungssimulation berechnet werden kann. 3. Berechnung Die Lösung der Gleichungssysteme mit einem geeigneten Lösungsverfahren liefert eine große Menge diskreter Rohdaten. 4. Aufbereitung Die errechneten Daten werden mit Hilfe verschiedener Visualisierungstechniken aufbereitet und somit in eine interpretierbare Form gebracht. Sind diese vier Phasen erfolgreich durchlaufen, so kann entschieden werden, ob das Ergebnis den gewünschten Anforderungen entspricht. Die Güte der Lösung hängt unter anderem von der Feinheit des Gitters ab. Die Rechnung mit Hilfe des Gitters ist dabei umso genauer, je besser das Gebiet durch das Gitter aufgelöst wird, also je mehr Knoten es an den wichtigen Stellen beinhaltet. Diese Arbeit ist hauptsächlich im Bereich der Diskretisierung einzuordnen. Ein geeignetes Gitter für komplexe Geometrien zu erstellen, ist sehr aufwändig. Die Zeit, die dafür benötigt wird, beträgt ein vielfaches der Zeit für eine tatsächliche Simulation, was einen Nachteil der rechnergestützten Simulation darstellt und gleichzeitig die Motivation für die Entwicklung einer Software zur automatisierten Gittererstellung bietet. Um ein geeignetes Gitter zu erstellen, muss im ersten Schritt das zu umströmende Objekt bestimmt werden. In der Industrie entsteht der Entwurf von Prototypen hauptsächlich am Computer, welche daher in den meisten Fällen übernommen werden können. Ein Prototyp, bzw. ein Objekt, kann dabei aus verschiedenen Formen von Daten bereitgestellt werden, zum Beispiel als Oberflächenbeschreibung mit Hilfe von nicht-uniformen rationalen B-Splines (NURBS), oder auch in Form von Oberflächentriangulierungen. Dabei bietet eine Triangulierung den Vorteil, dass sie sich aus allen anderen Oberflächenbeschreibungen überführen lässt. Zum Erstellen eines geeigneten Gitters existieren mehrere Varianten. In einer Variante beschreiben exakt randangepasste Gitter das Objekt mit den Seitenflächen einzelner Gitterelemente, die mit ihren Knoten direkt auf dem Objekt liegen. Dazu wird ein Gitter erstellt, welches im Bereich innerhalb des Objekts keine Elemente enthält. Diese Variante bietet ein genaues Gitter, ist jedoch für eine automatisierte Gittererstellung sehr problematisch (siehe [Göddeke 2004] und [Bachmann u. a. 2006]). Eine zweite Variante ist die Fictitious-Boundary Methode und wurde von Turek u. a. [2003] in das FEATFLOW-Paket integriert. Sie basiert auf einem Vollgitter, welches auch im Inneren des Objekts Elemente besitzt. Dabei beschreiben diejenigen Seitenflächen die Geometrie, die sich komplett innerhalb des Objektes befinden. Diese Methode stellt eine gröbere Approximation des Objektes dar als eine exakt randangepasste, ist jedoch für eine automatisierte Gittererstellung besser geeignet. Bei beiden Verfahren gilt offensichtlich: Je kleiner die Gitterelemente in der Nähe des Objektrands sind, desto besser ist die Auflösung des Objekts. Aus dieser Beobachtung heraus wurden Methoden zur Verfeinerung des Gitters in der Nähe des Objektrands entwickelt. Dabei können zum Beispiel Gitterelemente in der Nähe des

13 1.2 Ziele der Diplomarbeit 3 Objektrands mehrmals unterteilt werden, um eine höhere Genauigkeit zu erlangen. Es können aber auch Gitterknoten so verschoben werden, dass sie sich in der Nähe des Objektrands konzentrieren. Durch den Einsatz der Fictitious-Boundary Methode und einer Gitteradaptionsmethode (siehe [Grajewski u. a. 2005]) sollen bestehende Verfahren zur Erstellung eines Gitters mit einem komplexen dreidimensionalen Objekt verbessert werden. 1.2 Ziele der Diplomarbeit Diese Arbeit beschäftigt sich mit der Weiterentwicklung der Software INGRID3D 1, einer Werkzeugsammlung zur Gittererstellung. In ihr sind bereits wichtige visuelle und mathematische Kontrollmechanismen definiert worden, die sich zur Wiederverwendung eignen. Das in INGRID3D verwendete Prinzip einer kontinuierlichen exakten Randanpassung wird auf Grund prinzipieller Probleme fallen gelassen. Mit steigender Zahl von Gitterzellen wurde die Qualität der Gitter so schlecht, dass sie trotz eingesetzter Gitterglättungsverfahren nicht auf einem Niveau gehalten werden konnte, welches von einem CFD-Löser benötigt wird. Stattdessen wird die Gitteradaption nach dem von Grajewski u. a. [2005] vorgestellten Verfahren eingesetzt. Dabei werden Knoten des Gitters zur Objektoberfläche hin verschoben, so dass sie sich dort konzentrieren und somit eine höhere Auflösung des Objekts bieten, ohne die Zahl der Gitterelemente zu erhöhen. Für die Funktionalität der Gitteradaption muss eine Monitorfunktion bestimmt werden, welche die Größe der Gitterelemente definiert. Eine einfache Heuristik für eine Monitorfunktion ist ein Distanzfeld, welches jedem Knoten des Gitters seine kürzeste Distanz zur Objektoberfläche zuordnet. Die Berechnung des Distanzfeldes soll mit einem effizienten Algorithmus implementiert werden. Die Gitteradaption und die Berechnung der Simulation wird aus dem FEATFLOW-Paket integriert, wobei die Berechnung der Simulation einen Test für die Funktionalität der erstellten Gitter darstellen soll. Für die Simulation wird die Fictitious-Boundary Methode verwendet. Sie ist zwar bereits im FEATFLOW-Paket enthalten, jedoch muss ein Test bereitgestellt werden, der für jeden Knoten des Gitters effizient entscheiden kann, ob er sich innerhalb oder außerhalb des Objekts befindet. Um die Randanpassung zu verbessern, werden Projektionstechniken eingesetzt, die eine nachträgliche Randanpassung ermöglichen sollen. Bei diesen Projektionstechniken werden Knoten des Gitters, die sich in der Nähe der Objektoberfläche befinden, direkt auf diese verschoben, falls sich dadurch die Gitterqualität nicht zu stark negativ verändert. Eine zentrale Komponente des FEATFLOW-Pakets ist der Mehrgitteralgorithmus zur Lösung linearer Gleichungssysteme. Dieser verwendet zur Lösung der Gleichungssysteme nicht ein einzelnes Gitter, sondern eine Hierarchie verschieden feiner Gitter, die aufeinander aufgebaut sind. Durch die entstehende Software soll eine Hierarchie von Gittern aufgebaut werden, so dass der Mehrgitteralgorithmus eingesetzt werden kann. Beim bisherigen Einsatz des FEATFLOW-Pakets werden Parameter für die Gitterdeformation einmal zu Beginn der Simulation festgelegt und daraufhin die Simulation gestartet. Das Gitter wird mit definierten Parametern deformiert und die Simulation durchgeführt, ohne dass weiterer Einfluss auf das Verfahren ausgeübt werden kann. Dieser Vorgang kann für Gittergrößen, die qualitativ gute Ergebnisse liefern sollen, mitunter sehr lange dauern und zu einem so stark verzerrten Gitter führen, dass die Lösung der Gleichungssysteme für die Simulation der Strömung nicht mehr möglich ist. Das Ziel dieser Arbeit ist es, eine Software zu erstellen, die eine Interaktion mit den bisher verwendeten Verfahren erlaubt, um dadurch den Prozess der Gittererstellung zu verbessern. Durch Kombination der verschiedenen hier vorgestellten Methoden soll zudem eine bessere Genauigkeit und Qualität der Gitter erreicht werden. 1 InGrid3D wurde von der Projektgruppe 471 (siehe Bachmann u. a. [2006]) entwickelt.

14 4 1. Einleitung 1.3 Struktur der Arbeit Der folgende Abschnitt liefert eine kurze Übersicht über die Struktur und den Aufbau dieser Arbeit. Kapitel 2 beschreibt wichtige Grundlagen, die zum Verständnis dieser Arbeit notwendig sind. Es beginnt mit der Beschreibung der numerischen Strömungssimulationen (CFD). Es werden die in dieser Arbeit verwendeten Methoden zur Diskretisierung beschrieben, mit besonderem Augenmerk auf der Fictitious-Boundary Methode und der Gitterdeformation. Ebenfalls wird das Mehrgitterverfahren mit den verwendeten Datenstrukturen kurz vorgestellt, die zu seiner Funktionalität notwendig sind. Im nächsten Abschnitt wird die Software InGrid3D mit den bereits existierenden Methoden dargestellt und im Anschluss daran die verwendete Objektrepräsentation durch eine Oberflächentriangulierung. Bei den Methoden zur Punktklassifizierung, Berechnung der Monitorfunktion und der Gitteradaption wird das aus der Computergraphik bekannte Verfahren zur Strahlverfolgung eingesetzt und daher kurz erläutert. Abschließend werden Voronoi-Diagramme erklärt, welche bei der Berechnung des Distanzfeldes zum Beweis der Effizienz des implementierten Verfahrens herangezogen werden. Kapitel 3 behandelt das Problem der Punktklassifizierung, also der Entscheidung, ob sich ein Knoten innerhalb oder außerhalb des Objektes befindet. Zur effizienten Lösung dieses Problems können Suchdatenstrukturen in Verbindung mit dem Verfahren der Strahlverfolgung verwendet werden. Als Suchdatenstruktur wird der Octree, bzw. seine zweidimensionale Variante mit ihren Vor- und Nachteilen vorgestellt, bevor mit der eigens entwickelten effizienten Datenstruktur fortgefahren wird. Kapitel 4 beschäftigt sich mit der Berechnung kürzester Distanzen jedes Knotens zur Objektoberfläche, welche bei der Gitteradaption verwendet werden. Zunächst wird das Problem und eine Lösung durch einen naiven Algorithmus vorgestellt. Danach wird eine Variante des von Sethian [1996] vorgestellten Fast Marching Algorithmus zur Berechnung des Distanzfeldes dargestellt. Nachdem seine Funktionsweise erläutert wurde, wird seine Korrektheit und Effizienz an Hand von Voronoi-Diagrammen veranschaulicht. Kapitel 5 stellt verschiedene Projektionstechniken vor, mit denen Knoten des Gitters direkt auf die Oberfläche des Objekts verschoben werden. Es werden verschiedene Ansätze vorgestellt und eine optimierte Kombination aufgezeigt. Kapitel 6 beschreibt die Software INGRID3DDEFORM, die im Rahmen dieser Arbeit erstellt wurde. Zuerst wird die grundlegende Funktionalität vorgestellt. Danach werden die implementierten Methoden und ihre Funktionsweisen erläutert. Kapitel 7 zeigt zunächst die Ergebnisse und Resultate, die mit den verschiedenen eingesetzten Techniken erzielt werden können. Die erzielten Ergebnisse werden im Anschluss diskutiert. Kapitel 8 schließt die Arbeit mit einem Ausblick auf mögliche Erweiterungen und Optimierungen, die mit der Software INGRID3DDEFORM erreicht werden können. Die Arbeit schließt mit einen Quellenverzeichnis.

15 5 Kapitel 2 Grundlagen Dieses Kapitel erläutert die Grundlagen, die zum Verständnis dieser Arbeit notwendig sind. Zuerst wird das Gebiet der numerischen Strömungssimulation (engl. Computational Fluid Dynamics) vorgestellt. Dabei wird besonders auf das zugrunde liegende mathematische Modell, die Diskretisierung und das Mehrgitterverfahren eingegangen. Bei der Diskretisierung werden verschiedene Verfahren benutzt, die im Rahmen dieser Arbeit implementiert wurden, und auf dem Prinzip der Strahlverfolgung (engl. Raytracing) basieren. Da dies ein Kernprinzip der Arbeit darstellt, wird hierfür ein effizienter Algorithmus erläutert. Weil die erstellte Software INGRID3DDEFORM auf der Software INGRID3D der Projektgruppe aufbaut, wird diese dargestellt, ebenso wie das dort verwendete Prinzip der exakten Randanpassung. Im Anschluss daran wird auf die Datenstruktur und die Eigenschaften des zu umströmenden Objekts eingegangen. Danach werden Voronoi-Diagramme erklärt, die im Kapitel zur Distanzberechnung verwendet werden. Das Kapitel endet mit einer kurzen Beschreibung der verwendeten externen Software. 2.1 Computational Fluid Dynamics In diesem Kapitel werden die benötigten Grundlagen des Computational Fluid Dynamics beschrieben. Auf eine ausführliche Beschreibung wird dabei verzichtet, da sich diese Arbeit innerhalb des CFD hauptsächlich mit dem Teilaspekt der Diskretisierung beschäftigt. Für eine detailliert mathematische Beschreibung sei auf Lehrbücher verwiesen, die sich mit dem Thema CFD auseinander setzen, wie zum Beispiel Anderson [1995] oder Donea u. Huerta [2003]. Grundsätzlich beschäftigt sich das Gebiet des CFD mit der Simulation von so genannten Fluiden. Mit diesem Begriff werden Flüssigkeiten und Gase beschrieben, also Stoffe die keine feste Form haben. Will man ein Fluid simulieren, so muss im ersten Schritt ein mathematisches Modell gefunden werden, das seine physikalischen Eigenschaften beschreibt. Im zweiten Schritt muss eine geeignete und möglichst genaue Diskretisierung bestimmt werden. Zuletzt muss ein Verfahren gewählt werden, mit dem eine approximative Lösung des mathematischen Modells mit Hilfe einer Diskretisierung berechnet werden kann. 1 Details zu den Ergebnissen der PG 471 sind unter beyondgraphics/ zu finden.

16 6 2. Grundlagen Das mathematische Modell Die mathematische Beschreibung eines Fluids ist nicht trivial, da viele verschiedene physikalische Vorgänge innerhalb des Fluids wirken können. Alle Vorgänge in eine Simulation zu integrieren, stellt eine enorme Herausforderung dar, je nach Anwendung müssen aber nicht alle von Bedeutung sein. Für das Szenario eines Windkanals ist zum Beispiel der Einfluss der Temperatur vernachlässigbar, für die Strömungsvorgänge innerhalb einer Teekanne voll kochenden Wassers ist ihr Einfluss dagegen essentiell. Die folgenden physikalischen Eigenschaften sind für jede Strömungssimulation bedeutsam: Zähigkeit (engl. viscosity) Dichte (engl. density) Druck (engl. pressure) Geschwindigkeit (engl. velocity) Zähigkeit beschreibt eine grundlegende Eigenschaft des Fluids. Ist die Zähigkeit des Fluids hoch, wirken in ihm höhere Reibungskräfte. Honig ist ein Beispiel für ein Fluid mit hoher und Wasser mit niedriger Zähigkeit. Die Dichte ist eine Eigenschaft, die hauptsächlich bei Gasen eine Rolle spielt, da Flüssigkeiten durch äußeren Einfluss nicht komprimierbar (engl. incompressible) sind. Für das hier verwendete Modell wird ein nicht komprimierbares Fluid angenommen, bei dem die Dichte konstant ist. Druck und Geschwindigkeit sind die Hauptkomponenten einer Strömungssimulation und üblicherweise bei Simulationen von Fluiden von besonderem Interesse. Das zugrunde liegende mathematische Modell zur Beschreibung der physikalischen Vorgänge basiert in der verwendeten Software FEATFLOW auf den Navier-Stokes Gleichungen, speziell auf der Beschreibung nicht komprimierbarer und nicht turbulenter Strömungen. Bei diesem Gleichungssystem gibt es drei grundlegende mathematische Größen, welche die Strömung eines Fluids in einem Gebiet Ω R d, d {2, 3} über die Zeit t [0, T ] charakterisieren: u : Ω [0, T ] R d Geschwindigkeitsfeld p : Ω [0, T ] R Druck ρ : Ω [0, T ] R Dichte Das Navier-Stokes Gleichungssystem basiert auf den Prinzipien der Masse- und Energie- Erhaltung. Innerhalb von Ω kann keine neue Energie oder Masse entstehen. Bei dem hier verwendeten Szenario des Windkanals wird das Gebiet durch einen Quader definiert, die Abbildung 2.1 veranschaulicht dies im zweidimensionalen Beispiel an Hand eines Rechtecks. An Seite A wird typischerweise ein parabolisches Einströmprofil vorgegeben, die gegenüberliegende Seite C ist als Ausflussrand definiert. Auf allen übrigen Seitenflächen wird die Geschwindigkeit auf u = 0 festgesetzt, wodurch eine undurchdringliche Wand simuliert wird. In diesem so begrenztem Gebiet Ω müssen die Erhaltungsgleichungen gelten und werden folgendermaßen zusammengefasst: t u + (u )u + p = ν u + f (2.1) u = 0. (2.2) Die Gleichung (2.1) wird Impulsgleichung genannt und besteht aus vier Termen: der Zeitableitung der Geschwindigkeit t u, dem Advektionsterm (u )u, dem Diffusionsterm ν u, sowie dem

17 2.1 Computational Fluid Dynamics 7 Abbildung 2.1: Typisches Szenario eines Windkanals mit definierten Randbedingungen. A: Rand mit definiertem parabolischen Einströmprofil. B: Ränder mit definierter Geschwindigkeit 0. C: Ausflussrand mit natürlichen Randbedingungen. Druckgradienten p. Die Transporteigenschaften des Fluids werden durch den Advektionsterm beschrieben, während der Diffusionsterm die Viskosität des Fluids darstellt, wobei die Zahl ν R als Viskositätskoeffizient bezeichnet wird. Die Gleichung (2.2) wird als Kontinuitätsgleichung bezeichnet und beschreibt sowohl das physikalische Prinzip der Masseerhaltung als auch die Inkompressibilität des Fluids. Diese Gleichungen definieren das mathematische Modell, welches in dieser Arbeit angewendet wird Diskretisierung Für komplexe Strömungsvorgänge ist es nicht möglich, die entstehenden Navier-Stokes Gleichungen analytisch zu lösen. Daher bedient man sich numerischer Verfahren, die eine approximative Lösung berechnen. Der Begriff Diskretisierung bezeichnet hierbei die Bildung eines Gleichungssystems, welches die Navier-Stokes Gleichungen in eine diskrete, mit dem Computer approximativ berechenbare Form überführt. Ein Hauptbestandteil der Diskretisierung besteht aus der Aufteilung des Gebietes Ω in eine endliche Anzahl geometrischer Teilgebiete. Mögliche geometrische Einheiten für diese Teilgebiete werden abhängig von den bestehenden Anforderungen gewählt. Das Gebiet Ω kann im Dreidimensionalen zum Beispiel durch Tetraeder oder Hexaeder unterteilt werden. Tetraeder haben den Vorteil, dass sie sich besser zur automatisierten Unterteilung eines Gebiets eignen. Mit Hexaedern kann jedoch eine genauere Lösung berechnet werden (siehe Ferziger u. Peric [2002]). Diese Arbeit beschäftigt sich mit der Erstellung von strukturierten Hexaedergittern 2, die zur Diskretisierung verwendet werden können. Die Gesamtheit der Hexaeder wird im folgenden Gitter (engl. mesh) genannt und ist durch deren Knoten und Kanten definiert. Eine bessere Approximation der Lösung kann unter anderem dadurch erreicht werden, dass das Gebiet Ω durch das Gitter besser aufgelöst wird. Das heißt, je mehr Hexaeder das Gebiet unterteilen und je kleiner ihre Kantenlänge ist, desto besser ist die Approximation des Objektes und somit auch der Lösung (siehe Abbildung 2.2). Zur Lösung der Strömungssimulation existieren verschiedene Methoden. Beispielhaft seien hier die Methoden der Finiten Differenzen (FD), der Finiten Volumen (FV) und der Finiten Elemente (FEM) genannt. In dem verwendeten Software Paket FEATFLOW wird ausschließlich die Methode der Finiten Elemente eingesetzt. 2 In einem strukturierten Hexaedergitter hat jeder innere Knoten sechs Nachbarn und bis auf die Randknoten hat jeder Knoten die gleiche Konnektivität. Die verwendeten Datenstrukturen und der verwendete Löser aus dem FEATFLOW-Paket sind so aufgebaut, dass eine Erweiterung auf unstrukturierte Hexaeder-Gitter prinzipiell möglich ist.

18 8 2. Grundlagen Abbildung 2.2: Zwei unterschiedliche Auflösungen eines Gebietes durch ein Gitter. Das Objekt ist schwarz und seine Approximation grau dargestellt. Fictitious-Boundary Methode Bei den üblichen Verfahren zur Diskretisierung des Problems in einem Gebiet, in dem sich ein Objekt befindet, existieren innerhalb des Objekts keine Elemente des Gitters. Weil das Innere des Objekts in der Regel nicht durchströmt wird 3, werden dort keine Gitterelemente benötigt. Am Objekt anliegende Gitterelemente definieren eine Approximation des Objektes und damit einen an die Objektoberfläche angepassten Rand. Für viele in dieser Arbeit verwendete Methoden ist es jedoch essentiell, dass das Gebiet auch innerhalb des Objekts durch ein Gitter zerlegt wird. Auf Grund dieser Tatsache existiert kein echter Rand, durch den das Objekt approximiert wird. Die von Turek u. a. [2003] vorgestellte Fictitious-Boundary Methode behandelt das Problem ähnlich den Randbedingungen, die einen undurchdringbaren Rand an den Gebietsgrenzen simulieren. Zuerst ist es notwendig, alle Knoten des Gitters als Knoten innerhalb oder außerhalb des Objekts zu klassifizieren. Das Objekt bzw. seine Approximation wird durch diejenigen Seitenflächen der Hexaeder klassifiziert, die sich in seinem Inneren befinden. Für diese Seitenflächen und ihre Knoten werden Dichte oder Zähigkeit auf einen sehr hohen Wert gesetzt, so dass dort das Fluid die Form eines festen Körpers annimmt und einen undurchdringbaren Rand für die simulierte Strömung darstellt. Der so deklarierte künstliche Rand bildet eine schlechtere Approximation des tatsächlichen Objektes als ein echter Rand, da nicht gewährleistet werden kann, dass sich die so 3 Eine Ausnahme wäre zum Beispiel, wenn das Objekt aus einem porösen Material bestehen würde.

19 2.1 Computational Fluid Dynamics 9 definierten Randknoten auch exakt auf der Objektoberfläche befinden (siehe Abbildung 2.2). Die exakte Randanpassung eines Hexaedergitters konnte bisher nicht zufriedenstellend gelöst werden und ist ein offenes Problem im Bereich des CFD. Aus diesem Grund wird in dieser Arbeit die Fictitious-Boundary Methode eingesetzt, die eine viel versprechende Alternative bietet. Gitterdeformation Die Genauigkeit einer Simulation hängt unter anderem von der Feinheit des Gitters ab, das zur Diskretisierung verwendet wird. Theoretisch kann ein Gitter beliebig fein erstellt werden, praktisch jedoch gibt es in Computern Limitierungen von Speicherplatz und Rechenzeit. Aus diesem Grund wurden Methoden entwickelt, die im Vergleich zu einem regulär unterteiltem Gitter ein ähnlich genaues Ergebnis liefern, das Gebiet jedoch durch weniger Hexaeder unterteilt. Diese Verfahren nutzen die Tatsache aus, dass eine genauere Diskretisierung nur in interessanten Regionen des Gebiets erforderlich ist. Dabei ist die Entscheidung, welche Regionen interessant sind, von der jeweiligen Anwendung abhängig. Sollen mögliche von einem Objekt verursachte Wirbel in einer Strömung untersucht werden, ist die Region hinter dem Objekt interessant und sollte besser aufgelöst werden. Für den hier vorgestellten Anwendungsfall ist die interessante Region in der Nähe eines Objektes, was genau dort eine feinere Unterteilung des Gitters impliziert als in anderen Regionen des Gebietes. Eine Methode, um eine feineres Gitter in der Nähe des Objekts zu erreichen, ist die h-adaptivität (engl. h-adaptivity). Bei dieser Methode werden die Elemente eines Gitters, die sich in der Nähe des Objekts befinden, zusätzlich unterteilt. Dadurch entstehen dort kleinere Hexaeder, durch die eine bessere Approximation des Objekts erreicht wird. Nachteil dieser Methode ist jedoch die Entstehung hängender Knoten, so dass selbst aus strukturierten (Grob-)Gittern unstrukturierte (Fein-)Gitter entstehen, was zu Leistungseinbußen bei der Berechnung der Strömungssimulation führt (vergleiche Becker [2007]). Die in dieser Arbeit verwendete und von Grajewski u. a. [2005] vorgestellte Methode zur Gitteradaption basiert auf der so genannten r-adaptivität (engl. r-adaptivity), bei der die Struktur des Gitters erhalten bleibt und die feinere Diskretisierung am Objektrand nur durch die räumliche Verschiebung von Knoten erreicht wird. Ein wichtiger Bestandteil dieser Methode ist die Wahl einer so genannten Monitorfunktion, deren effiziente Berechnung Teil dieser Arbeit ist. Diese kann zum Beispiel für jeden Knoten des Gitters aus seiner minimalen euklidischen Distanz zur Objektoberfläche bestehen, wobei die Distanz auf das Intervall [ɛ, 1] normiert wird. Die Monitorfunktion beschreibt hierbei indirekt eine Zielfunktion für das Volumen der Hexaeder bei den Koordinaten der Knoten. Die Idee dahinter ist in diesem Fall, je näher ein Knoten sich am Objektrand befindet, desto kleiner sollen die Hexaeder an seiner Position werden. Dabei wird durch den Wert 1 das größte mögliche Volumen beschrieben und durch den Wert ɛ das kleinste. Dies hat zur Folge, dass Hexaeder nicht beliebig groß oder beliebig klein werden und dass ihre Größen voneinander abhängig sind. Wird ɛ zum Beispiel auf den Wert 0,1 gesetzt, werden die größten Hexaeder im Vergleich zu den kleinsten zehn mal so viel Volumen einnehmen (siehe Abbildung 2.3). Weil die berechnete Distanz jedoch nichts über die tatsächlichen Ausmaße des Gebietes aussagt, kann sie skaliert werden, wobei die Wahl der richtigen Skalierung heuristisch erfolgt. Ebenfalls ist es möglich, die Distanz für Knoten, die sich innerhalb des Objektes befinden, anders zu skalieren als für Knoten, die sich außerhalb befinden. Hierdurch kann erreicht werden, dass Hexaeder innerhalb des Objektes größer werden und somit mehr Knoten in Richtung des Objektrandes verschoben werden. Aus der Monitorfunktion wird ein Vektorfeld berechnet, dessen Vektoren zum kleinsten Wert ge-

20 10 2. Grundlagen richtet sind. Wird die Distanz als Monitorfunktion gewählt, so sind die Vektoren jeweils zur minimalen Distanz zum Objektrand gerichtet. Bei der Gitterdeformation wird jeder einzelne Knoten des Gitters entlang dieses Vektorfeldes bewegt, wobei das Vektorfeld eine Art Geschwindigkeitsfeld für die Bewegung der Gitterknoten darstellt. Durch den Einsatz eines geeigneten ɛ und einer geeigneten Skalierung der Monitorfunktion kann ein Gitter erstellt werden, welches das Gebiet zum Objektrand hin feiner auflöst. Abbildung 2.3: Gitterdeformation mit unterschiedlichen Parametern ɛ. Oben: Schnitt durch ein deformiertes Gitter mit ɛ =0,1. Der größte Hexaeder ist zehn mal so groß wie der kleinste. Unten: Schnitt durch ein deformiertes Gitter mit ɛ =0,01. Der größte Hexaeder ist hundertmal so groß wie der kleinste. Die Gitterdeformationsmethode verzerrt das Gitter jedoch so stark, dass eine Lösung der Simulation mit Hilfe dieses Gitters nicht mehr möglich ist Mehrgitterverfahren Das unter anderem von Hackbusch [1985] entwickelte Mehrgitterverfahren bietet einen optimalen Ansatz zur Lösung linearer Gleichungssysteme, die als Teilprobleme bei der Lösung der Navier- Stokes Gleichungen auftreten. Die Grundidee für dieses Verfahren ist der Einsatz mehrerer, unterschiedlich genauer Gitter zur Diskretisierung des Gebiets. Beginnend mit einem groben Gitter wird eine Hierarchie von Gittern erstellt, in der jedes folgende Gitter durch eine reguläre Unterteilung des vorherigen Gitters erstellt wird. Dabei wird jeder einzelne Hexaeder eines Gitters in acht

21 2.1 Computational Fluid Dynamics 11 neue geteilt, wodurch das Gebiet feiner aufgelöst wird. Auf Grund dieser Unterteilung bleibt in jedem Gitter der Hierarchie die Struktur erhalten und die Anzahl der Hexaeder wächst pro Stufe der Hierarchie um das Achtfache. Bei Verfahren mit exakter Randanpassung muss bei der Unterteilung eines Gitters eine Randanpassung der neu erstellten Punkte vorgenommen werden, damit das Objekt nach der Unterteilung auch besser approximiert wird. Dies hat sich im dreidimensionalen Raum jedoch als nicht trivial herausgestellt (siehe [Göddeke 2004]). Wird die zuvor beschriebene Fictitious-Boundary Methode verwendet, entfällt die komplizierte Randanpassung (siehe Abbildung 2.4). Ist einmal eine Gitterhierarchie erstellt, löst das Mehrgitterverfahren nun lineare Gleichungssysteme auf dem feinsten Gitter der Hierarchie mit Hilfe von Teilproblemen auf den gröberen Gittern. Die zentralen Komponenten des Mehrgitterverfahrens sind dabei zum einen iterative Löser für iterative Gleichungssysteme, zum anderen Gittertransferoperatoren, welche Lösungen zwischen verschiedenen Hierarchieebenen transportieren. Wird dabei die Lösung von einem gröberen zu einem feineren Gitter transportiert, so wird dies Prolongation und der umgekehrte Weg Restriktion genannt. Im Rahmen dieser Arbeit wird mit Hilfe der erstellten Software eine Mehrgitterhierarchie aufgebaut. Diese dient dem verwendeten Navier-Stokes-Löser als Basis zur Lösung der Strömungssimulation unter Anwendung des Mehrgitterverfahrens. Abbildung 2.4: Darstellung einer Gitterhierarchie bestehend aus drei Ebenen mit der Fictitious- Boundary Methode. Links: Erste Ebene der Hierarchie, auch Grobgitter genannt. Das Objekt wird nur durch die vier Kanten approximiert, die sich innerhalb des Objekts befinden. Mitte: Zweite Ebene der Hierarchie. Die Elemente, die sich vollständig innerhalb des Objekts befinden, definieren die Approximation des Objekts. Rechts: Auf der dritten Hierarchieebene wird das Objekt genauer approximiert. Datenstruktur für Mehrgitterverfahren Das in dieser Arbeit verwendete FEATFLOW-Paket besitzt eine Datenstruktur, auf deren Grundlage es aus einem Grobgitter heraus die notwendige Mehrgitterhierarchie selbst erstellt. Die Software INGRID3D wurde vollkommen unabhängig von FEATFLOW entwickelt und besitzt daher eine eigene Datenstruktur, die von sich aus nicht kompatibel ist. Um das Mehrgitterverfahren dennoch in FEATFLOW nutzen zu können, wurde eine Methode entwickelt, mit deren Hilfe eine Kompatibilität beider Datenstrukturen erreicht werden kann. Diese Methode ist zwar speziell, jedoch lässt sie sich auch für andere Datenstrukturen nutzen, die eine Kompatibilität mit FEATFLOW erfordern. Die Datenstruktur in FEATFLOW basiert auf dem so genannten 2-level-ordering. Dabei wird jedes Element des Gitters nummeriert, so dass sich innerhalb der Datenstruktur immer auf diese Num-

22 12 2. Grundlagen merierung bezogen werden kann. Einheiten sind hierbei zum Beispiel Knoten, Kanten, Seitenflächen oder Hexaeder. Eine Eigenschaft, die bei der Erstellung einer Mehrgitterhierarchie benötigt wird, besteht darin, dass sich die Nummern der Knoten innerhalb der verschiedenen Gitterebenen der Hierarchie, also mit feiner werdendem Gitter, nicht verändern. Dies kann erreicht werden, indem die Knoten auch innerhalb der Gitterebenen fortlaufend nummeriert werden. Wird ein Gitter unterteilt, so wird die Nummerierung bei den neu entstehenden Knoten fortgeführt, wodurch die ursprünglichen Knotennummern bleiben erhalten. Dies ist ebenfalls in der Datenstruktur von IN- GRID3D gegeben, jedoch wird das Gitter in einer anderen Reihenfolge aufgebaut, was zu einer verschiedenen Nummerierung und damit zu der Inkompatibilität beider Datenstrukturen führt. Eine weitere Eigenschaft der FEATFLOW Datenstruktur entsteht bei der Unterteilung der Hexaeder. Für den Mehrgitteralgorithmus muss eine spezielle Verbindung zwischen zwei aufeinander folgenden Gittern der Hierarchie bestehen. Jeder Hexaeder des gröberen Gitters wird in acht neue Hexaeder des feineren Gitters unterteilt. Dabei muss sichergestellt werden, dass von dem alten Hexaeder auf die neuen geschlossen werden kann. Für diese Verbindung müssen zwei Vorgaben erfüllt werden: Bei der Verbindung zweier aufeinander folgender Gitter in der Hierarchie muss eine Referenz zwischen dem Hexaeder des gröberen Gitters und den Hexaedern des feineren Gitters bestehen. Für diese Referenz wird eine bestimmte Nummerierung der Hexaeder benutzt. Die Nummer des alten Hexaeders aus dem gröberen Gitter wird einem der acht neuen Hexaeder des feineren Gitters zugewiesen, die Nummer dieser beiden Hexaeder bildet somit eine Schnittstelle bzw. Referenz zwischen den Hexaedern der zwei Gitterebenen. Dabei wird jedoch nicht willkürlich einer der neuen Hexaeder gewählt, sondern ein genau definierter, für dessen Bestimmung eine Orientierung der Hexaeder eingeführt werden muss. Für diese Orientierung werden in FEATFLOW zu jedem Hexaeder seine acht Knoten in einer festgelegten Reihenfolge gespeichert. Die Reihenfolge dieser acht Knoten definiert dabei die Orientierung des Hexaeders und damit ebenfalls die Reihenfolge seiner sechs Seitenflächen. Die Abbildung 2.5 veranschaulicht die Reihenfolge der Knoten 1-8 und die daraus resultierende Orientierung der Seitenflächen A-F. Die ersten vier Knoten 1-4 definieren dabei die erste Seite A und die letzten vier Knoten 5-8 die gegenüberliegende sechste Seite F. Die zweite Seite B wird durch die Knoten 1, 2, 5 und 6 definiert. Die dritte Seite C wird durch die Knoten 2, 3, 6 und 7 definiert. Die Definitionen der vierten und fünften Seiten D und E erfolgen analog. Der Referenz-Hexaeder der acht neuen Hexaeder wird nun aus dieser Orientierung heraus dadurch bestimmt, dass er zum Knoten 1 des alten Hexaeders inzident ist. Er ist der einzige neue Hexaeder, der den ersten Knoten aus der festgelegten Reihenfolge mit dem alten Hexaeder gemeinsam hat. Abbildung 2.5: Eine festgelegte Reihenfolge der Knoten eines Hexaeder bestimmt die Orientierung seiner Seitenflächen A-F.

23 2.1 Computational Fluid Dynamics 13 Die zweite Vorgabe ist die, dass es möglich sein muss, vom Referenz-Hexaeder auf die sieben anderen neuen Hexaeder zu schließen. Ausgehend von ihm wird dazu ein Pfad auf der Grundlage von Informationen über die Nachbarschaft jedes Hexaeders durchlaufen. Für diesen Pfad muss eine genau definierte Orientierung der acht Hexaeder zu dem Hexaeder existieren, aus dem sie durch Unterteilung entstanden sind. Dies ist in Abbildung 2.6 dargestellt. Mit Hilfe des folgenden Pfades werden alle acht Hexaeder in einer genau definierten Reihenfolge gefunden: 1. Der erste Hexaeder ist der Referenz-Hexaeder. 2. Der zweite Hexaeder ist der an Seite C anliegende Nachbar des ersten Hexaeder. 3. Der dritte Hexaeder ist der an Seite C anliegende Nachbar des zweiten Hexaeder. 4. Der vierte Hexaeder ist der an Seite C anliegende Nachbar des dritten Hexaeder. 5. Der fünfte Hexaeder ist der an Seite F anliegende Nachbar des ersten Hexaeder. 6. Der sechste Hexaeder ist der an Seite C anliegende Nachbar des fünften Hexaeder. 7. Der siebte Hexaeder ist der an Seite C anliegende Nachbar des sechsten Hexaeder. 8. Der achte Hexaeder ist der an Seite C anliegende Nachbar des siebten Hexaeder. Damit dieser Pfad mit einer erstellten Mehrgitterhierarchie funktioniert, müssen die Seitenflächen der neuen Hexaeder wie in Abbildung 2.6 orientiert sein. Dies bedeutet wiederum, dass für jeden der acht neuen Hexaeder genau die richtige Reihenfolge seiner acht Knoten herausgefunden werden muss, um eine Kompatibilität mit FEATFLOW zu erreichen. Abbildung 2.6: Von FEATFLOW geforderte Orientierung der acht neuen Hexaeder nach der Unterteilung. Links: Der ursprüngliche Hexaeder mit der Orientierung seiner Seitenflächen. Rechts: Die daraus resultierende Orientierung der acht neuen Hexaeder, welche zur Veranschaulichung kleiner skaliert wurden. Die durch Kreise markierten Knoten sind die Knoten, die nach der Unterteilung erhalten bleiben und gleichzeitig die jeweils ersten Knoten der neuen Hexaeder sind. Zuerst muss die Lage von Seitenflächen in Bezug auf das Gesamtgebiet definiert werden. Das Gebiet für die Simulation wird durch einen Quader mit sechs Seiten definiert. Ist das Gebiet regulär durch Hexaeder unterteilt, so besitzt jeder Hexaeder Seitenflächen, die zu den sechs Seiten

24 14 2. Grundlagen des Gebiets parallel liegen. Von Interesse sind nachfolgend nur die Seiten in horizontaler Lage, die parallel zur Grundseite des Quaders liegen. Bei einem Grobgitter ist diese Lage der Seitenflächen definiert und muss bei der Unterteilung der Seitenflächen einer Gitterebene an die neuen Seitenflächen weitergegeben werden. Dadurch kann diese horizontale Lage der Seitenflächen auch bestimmt werden, falls das Gitter deformiert ist und keine Parallelität mehr vorhanden ist. Für einen neuen Hexaeders ist nun der erste seiner acht Knoten immer derjenige, welcher schon im ursprünglichen Hexaeder existiert hat und damit die kleinste Nummer besitzt. In der Abbildung 2.7 wird dieser Knoten mit i bezeichnet. Der zweite Knoten muss dem ersten Knoten auf der Seitenfläche A gegen den Uhrzeigersinn folgen. Da die Seitenfläche A erst durch die Knoten definiert wird, muss zuerst herausgefunden werden, welche Seitenfläche des Hexaeders die ersten vier Knoten enthält. Dabei hilft die zuvor definierte Lage der Seitenflächen. Die Seitenfläche A ist diejenige, die horizontal liegt und zum ersten Knoten inzident ist. Sie beinhaltet zudem zwei zum ersten Knoten inzidente Kanten. Von diesen zwei Kanten muss herausgefunden werden, welche den zweiten Knoten beinhaltet, damit die Reihenfolge der Knoten auf der Seitenfläche A gegen den Uhrzeigersinn definiert wird. Die beiden Kanten werden dazu als Vektoren ij und ik betrachtet mit Ursprung in Knoten i. Werden diese Vektoren in die horizontale x-y-ebene eingebettet, dann ist ihr Kreuzprodukt positiv, wenn die erste Kante den zweiten Knoten der Orientierung enthält und negativ wenn ihn die zweite Kante enthält. Es wird im Grunde überprüft, ob die drei Knoten in der Reihenfolge i j k, bzw. i k j einen links- bzw. rechts-knick beschreiben. Ist auf diese Weise der zweite Knoten in der Reihenfolge festgelegt, ist auf der zuvor identifizierten Seitenfläche der dritte Knoten inzident zum zweiten und der vierte zum ersten. Die Reihenfolge der Knoten 5-8 wird aus der Reihenfolge der Knoten 1-4 bestimmt, da der fünfte Knoten dem ersten gegenüberliegt, der sechste dem zweiten, der siebte dem dritten und der achte dem vierten. Mit Hilfe dieser Methode kann innerhalb jeder externen Software die in FEATFLOW gebräuchliche Orientierung der Hexaeder erreicht werden, die für die Funktionalität des Mehrgitterverfahrens benötigt wird. Abbildung 2.7: Bestimmung der Reihenfolge dreier Knoten gegen den Uhrzeigersinn. Die Reihenfolge der Knoten i j k beschreibt einen links-knick und die Reihenfolge i k j beschreibt einen rechts-knick. Wird ein links-knick beschrieben, so folgt der zweite Knoten dem ersten gegen den Uhrzeigersinn, wird ein rechts-knick beschrieben, so folgt der dritte Knoten dem ersten gegen den Uhrzeigersinn.

25 2.2 Strahlverfolgung Strahlverfolgung Das Prinzip der Strahlverfolgung (engl. raytracing) wurde im Bereich der 3D-Computergrafik entwickelt und basiert auf der Verfolgung von Strahlen innerhalb eines definierten Gebietes. Ein Strahl besteht aus einem Ursprung und einer Richtung, beschreibt also eine Halbgerade. Bei der Verfolgung eines Strahls wird der Punkt berechnet, in dem der Strahl auf ein beliebiges Objekt 4 trifft. Es muss also derjenige Schnittpunkt des Strahls mit dem Objekt berechnet werden, der die geringste Distanz zum Ursprung des Strahls besitzt. Das weitere Vorgehen hängt von dem Verfahren ab, in dem die Strahlverfolgung eingesetzt wird. Beim Einsatz im Bereich der Sichtbarkeitsberechnungen wird der Strahl nicht weiter verfolgt. Bei der Berechnung photorealistischer Bilder kann hingegen das Material des Objekts über das weitere Vorgehen mit dem Strahl entscheiden. Der Strahl wird reflektiert, wenn er auf ein spiegelndes Material trifft. Falls er auf ein transparentes Material trifft, wird er mit den Informationen des transparenten Materials weiterverfolgt. In dieser Arbeit wird die Strahlverfolgung dazu benutzt, die exakten Schnittpunkte von Strahlen mit der Oberfläche des zu umströmenden Objekts zu bestimmen. Da das Objekt als Triangulierung gegeben ist, wurde ein Verfahren nach Möller u. Trumbore [1997] implementiert, durch welches effizient entschieden werden kann, ob ein Strahl ein Dreieck schneidet. Falls benötigt, wird mit dieser Methode ebenfalls der genaue Schnittpunkt berechnet. Als Eingabe benutzt das Verfahren nur die drei Eckpunkte des Dreiecks, den Ursprung des Strahls und seine Richtung. Wird das Dreieck vom Strahl geschnitten, werden baryzentrische Koordinaten für den Schnittpunkt innerhalb des Dreiecks berechnet. Baryzentrische Koordinaten sind hierbei Koeffizienten einer Linearkombination der drei Eckpunkte des Dreiecks, wobei jeder Koeffizient im Intervall [0,1] liegt und ihre Summe genau 1 ergeben muss. Jeder Punkt innerhalb eines Dreiecks kann somit durch eine Linearkombination aus dessen Eckpunkten dargestellt werden. Geometrisch betrachtet geht die Methode zur Berechnung des Schnittes folgendermaßen vor: Zuerst wird das Dreieck so verschoben, dass einer der Eckpunkte sich im Ursprung befindet. Im zweiten Schritt werden die anderen beiden Eckpunkte auf eine Ebene des Koordinatensystems projiziert, so dass ein gleichschenkliges Dreieck mit Schenkellänge 1 entsteht. Der Strahl wird dabei ebenfalls transferiert und verläuft danach parallel zur dritten Achse. Nach dieser Transformation können die baryzentrischen Koordinaten berechnet werden und mit ihnen der tatsächliche Schnittpunkt, falls dieser existiert. Ein Vorteil dieser Methode besteht darin, dass es möglich ist, während jeden Schrittes zu überprüfen, ob die Berechnung abgebrochen werden kann. Falls zum Beispiel eine der berechneten baryzentrischen Koordinaten nicht im Intervall [0,1] liegt, kann das Dreieck nicht vom Strahl geschnitten werden und die weitere Rechnung ist überflüssig. 2.3 INGRID3D Die Projektgruppe 471 des Fachbereichs Informatik an der Universität Dortmund beschäftigte sich bereits mit dem Problem der Gittererstellung für eine Diskretisierung des Strömungsgebietes Ω und erstellte zu diesem Zweck die Software INGRID3D (siehe [Bachmann u. a. 2006]). Eines der Ziele war ein exakt randangepasstes Gitter für das zu umströmende Objekt. Exakt randangepasst heißt hierbei, dass jede Seitenfläche eines Hexaeders welche das Objekt approximiert, mit 4 Der Begriff Objekt bezeichnet hierbei beliebige Geometrien, wie zum Beispiel Kugeln oder Triangulierungen.

26 16 2. Grundlagen ihren vier Knoten genau auf der Objektoberfläche liegt. Um dieses Ziel zu erreichen, wurde in der erstellten Software folgender Ansatz gewählt und implementiert. Es wird von einem manuell erstellten Grobgitter ausgegangen, welches das Objekt grob approximiert und bereits exakt randangepasst ist. Dieses Grobgitter wird nach dem bereits vorgestellten Verfahren verfeinert, bei dem jeder Hexaeder in acht neue unterteilt wird. Bereits auf der Objektoberfläche liegende Flächen des Grobgitters werden so unterteilt, dass die fünf neu entstehenden Knoten ebenfalls auf der Objektoberfläche liegen. Dabei ist es nicht trivial zu entscheiden, an welcher Position auf der Objektoberfläche die neuen Gitterknoten entstehen sollen. Um zwischen zwei auf der Objektoberfläche liegenden Knoten einen neuen Knoten zu erstellen, wurde in der Projektgruppe das Objekt zuerst parametrisiert. Die Parametrisierung bildet eine stückweise Einbettung der Objektoberfläche in die Ebene. Bei der Unterteilung einer Kante kann zwischen ihren zwei Knoten, die in der so erstellten parametrisierten Ebene liegen, eine Strecke gezogen werden und deren Mittelpunkt als Parameterwert des neuen Knoten definiert werden. Durch die Parametrisierung ist die tatsächliche Position des so errechneten neuen Knotens auf der Objektoberfläche bekannt. Mit dieser Methode entstehen bei jeder Verfeinerung des Gitters neue Punkte direkt auf der Objektoberfläche, wodurch das Objekt besser approximiert wird. Diese Vorgehensweise ermöglicht eine exakt randangepasste Approximation des Objekts, jedoch ergeben sich fundamentale Probleme, die im Rahmen der Projektgruppe nicht gelöst werden konnten. Das erste Problem wird vom initialen Grobgitter verursacht. Es hat sich bereits ab einigen hundert Hexaedern als schwierig erwiesen, ein Grobgitter von Hand zu erstellen. Hinzu kommt die Tatsache, dass bestimmte Details der Geometrie schon im Grobgitter erfasst werden müssen, da sie sonst in späteren Verfeinerungsschritten in starken Verzerrungen des Gitters resultieren können. Sind diese Verzerrungen zu stark, können sie bei einem Löser für Strömungssimulationen zu fehlerhaften Ergebnissen führen. Bei einem Automodell konnten zum Beispiel Details wie Räder, Radkästen, Spoiler und sogar Außenspiegel nicht durch ein Grobgitter aufgelöst werden, da das Erstellen eines so feinen Grobgitters mit den verfügbaren Kapazitäten einen enormen Arbeitsaufwand dargestellt hätte, und insbesondere hätte das resultierende Grobgitter die Laufzeit dominiert. Um dennoch ein simulationstaugliches Gitter zu erstellen, mussten solche Details in der Projektgruppe aus dem Objekt entfernt werden (siehe Abbildung 2.8). Die im Rahmen dieser Arbeit erstellte Software baut auf der Software INGRID3D auf, jedoch wird auf Grund der dargestellten Problematik auf eine kontinuierliche Randanpassung verzichtet und erst nachträglich eine teilweise Randanpassung vorgenommen Qualitätskriterien für Gitter Um die Qualität eines Gitters zu überprüfen, wurden in INGRID3D Qualitätskriterien implementiert, die folglich auch in der neuen Version zu finden sind. Die einzelnen Kriterien seien hier nur kurz genannt. Auf eine ausführlichere Beschreibung wird auf die Arbeiten von Bachmann u. a. [2006], Kelly [1998] und Göddeke [2004] verwiesen. Die Qualität eines Gitters wird an Hand der Qualität einzelner Hexaeder überprüft, da ein einzelner qualitativ schlechter Hexaeder bereits dazu führen kann, dass ein auf dem erstellten Gitter aufbauender Löser kein korrektes Ergebnis mehr berechnet. Die in dieser Arbeit verwendeten Kriterien sind: Elementinvertierungen und Zelldurchdringungen, Kantenlängenverhältnis (engl. edge ratio), Seitenflächenverhältnis (engl. aspect ratio),

27 2.4 Objektrepräsentation 17 Abbildung 2.8: Mit Hilfe von INGRID3D erstellte exakt Randangepasste Approximation eines Objekts. Objektdetails wie Spiegel oder Räder mussten zuvor aus dem Objekt entfernt werden. Innenwinkel (engl. corner angle) und Jacobi-Verhältnis (engl. jacobian ratio / deviation). Die Entscheidung, ob ein Hexaeder den Qualitätskriterien entspricht oder nicht, hängt stark von dem verwendeten Löser ab. Sind die Hexaeder zu stark verzerrt, kann dies dazu führen, dass die Gleichungssysteme nicht lösbar sind und damit keine Lösung berechnet werden kann. Daher ist es der Erfahrung des Anwenders überlassen, ob ein Gitter mit der gemessenen Qualität den Anforderungen entspricht oder nicht. Schwellwerte für die einzelnen Qualitätskriterien können im neuen INGRID3DDEFORM vom Benutzer eingestellt werden Glättungsoperatoren für Gitter Um die Gitterqualität positiv beeinflussen zu können, wurden Glättungsoperatoren implementiert, die Knotenpositionen verschieben. Die Glättungsoperatoren wurden ebenso wie die zuvor beschriebenen Qualitätskriterien aus INGRID3D übernommen, daher wird an dieser Stelle für eine genauere Beschreibung auf Bachmann u. a. [2006] und Göddeke [2004] verwiesen. Im Rahmen dieser Arbeit wurden die Laplace- und Umbrella-Glättung (siehe Kobbelt [1994]) eingesetzt. 2.4 Objektrepräsentation Bei der Simulation eines Windkanal-Szenarios soll üblicherweise der Einfluss eines Objekts auf die Strömung untersucht werden. Dazu wird das Objekt in einem Gebiet platziert, welches durchströmt wird. Es gibt dabei mehrere Möglichkeiten, das Objekt zu repräsentieren, wie zum Beispiel durch seine analytische Beschreibung. Damit wird eine Kugel nur durch einen Mittelpunkt und einen Radius realisiert. Für ein so definiertes Objekt können sowohl die Klassifizierung der Knoten in innere und äußere, als auch der Abstand jedes Knoten zur Objektoberfläche mit einfachen mathematischen Formeln berechnet werden. Nachteil der analytischen Definition von Objekten ist jedoch, dass es mit ihr nur schwer möglich ist, komplexe und realistische Objekte zu

28 18 2. Grundlagen modellieren. Ein weit verbreiteter Standard zur Repräsentation eines dreidimensionalen Objektes ist die Oberflächentriangulation mit Hilfe von Dreiecken. In INGRID3D wurde diese Form der Repräsentation gewählt. Die Gesamtheit aller Dreiecke beschreibt ein Dreiecksnetz und definiert die Oberfläche des Objektes (siehe Abbildung 2.9). Zum Import des Objektes wurde das STL-Dateiformat gewählt 5, da es eine Schnittstelle vieler CAD-Programme ist. Bei diesem Format wird jedes einzelne Dreieck durch drei Eckpunkte und eine Flächennormale charakterisiert. Die einzige zusätzliche Anforderung an das Objekt ist, dass die Oberfläche geschlossen ist: an jeder Kante des so definierten Dreiecksnetzes müssen genau zwei Dreiecke anliegen, es dürfen sich keine Lücken in der Oberfläche befinden. Würden Lücken zugelassen werden, so könnten Fehler in der Klassifizierung der Knoten entstehen, da nicht eindeutig entschieden werden kann, ob ein Knoten sich innerhalb oder außerhalb des Objekts befindet. Das Objekt darf aus nicht zusammenhängenden Teilen bestehen, die jedoch in sich geschlossen sein sollten, um Fehler zu vermeiden. Abbildung 2.9: Darstellung zweier Objekte als Oberflächentriangulationen. 2.5 Voronoi-Diagramme Benannt nach dem russischen Mathematiker Georgi Woronoi ist das Voronoi-Diagramm fester Bestandteil der Algorithmischen Geometrie und damit auch in vielen Büchern beschrieben (zum Beispiel in dem Buch von de Berg u. a. [2000]). Die nachfolgende Beschreibung bezieht sich der Einfachheit halber auf den zweidimensionalen Raum. Ein Voronoi-Diagramm Vor(P ) wird für eine beliebige Punktmenge P = {p 1, p 2,..., p n } definiert. Es beschreibt eine Partitionierung der Ebene in n Teile, die Voronoi-Regionen V (p i ) genannt werden. Eine Region V (p i ) wird so definiert, dass innerhalb von V (p i ) jeder beliebige Punkt x zu dem Punkt p i, p i P die geringste Distanz dist(x, p i ) hat. Genauer: x V (p i ) : dist(x, p i ) < dist(x, p j ), j i, mit i, j {1, 2,..., n} (2.3) Zwei benachbarte Voronoi-Regionen bilden eine Voronoi-Kante, zu der die Punkte beider Regionen die gleiche Distanz haben. Voronoi-Kanten können die Form von Strecken oder Halbgeraden 5 Informationen zum STL-Format sind zum Beispiel unter stl_introduction.htm zu finden.

29 2.5 Voronoi-Diagramme 19 annehmen 6. Sind mehr als zwei Regionen benachbart entsteht ein Voronoi-Knoten, der zu jedem Punkt der benachbarten Regionen die gleiche Distanz besitzt (siehe Abbildung 2.10 rechts). Das Voronoi-Diagramm kann theoretisch zur Berechnung der in Kapitel beschriebenen Monitorfunktion auf folgende Weise hinzugezogen werden: In einem ersten Schritt muss die Punktmenge bestimmt werden, für die das Voronoi-Diagramm berechnet werden soll. Eine mögliche Punktmenge kann die Menge aller Knoten der Oberflächentriangulierung sein. Je nach geforderter Genauigkeit können dabei auch innerhalb der Dreiecke neue Punkte gebildet werden. Nachdem für die so definierte Punktmenge ein Voronoi-Diagramm berechnet wurde, kann die Monitorfunktion berechnet werden, indem zuerst für jeden Gitterknoten die Voronoi-Region V (p i ) gefunden wird, in der er sich befindet. Dann muss nur noch die Distanz zum Punkt p i berechnet werden. Im Zweidimensionalen existieren mehrere Algorithmen, die das Voronoi-Diagramm für N Gitterknoten in einer Laufzeit von O(N log N) berechnen können (zum Beispiel Fortune [1987]). Im Dreidimensionalen gestaltet es sich jedoch schwieriger und die bisher beste erreichte Laufzeit ist O(N 3/2 ) (vergleiche [Goodman u. O Rourke 1997]). Auf Grund dieser schlechten Laufzeit wurde das Voronoi-Diagramm im Rahmen dieser Arbeit nicht für die Berechnung der Monitorfunktion eingesetzt. Abbildung 2.10: Voronoi-Diagramm zu einer zufälligen Punktmenge. Links: Darstellung eines Voronoi-Diagramms. Rechts: Beispielhaft werden einzelne Komponenten des Voronoi-Diagramms hervorgehoben. Der grau unterlegte Bereich wird Voronoi- Region genannt. Das breiter gezeichnete Segment wird Voronoi-Kante und der umkreiste Schnittpunkt mehrerer Voronoi-Kanten wird Voronoi-Knoten genannt. 6 Voronoi-Kanten können nur Geraden sein, wenn der Sonderfall eintritt, dass alle Punkte aus P kollinear sind.

30 20 2. Grundlagen 2.6 Externe Software Nachfolgend werden die Programmpakete erläutert, die im Rahmen dieser Arbeit erwähnt werden. FEATFLOW Dieses Software Paket bietet verschiedene Routinen zur numerischen Lösung partieller Gleichungssysteme durch die Methode der Finiten Elemente. Hauptbestandteil des Pakets sind zwei Löser, CC3D und PP3D zur Simulation von CFD Problemen. In die Software, die innerhalb dieser Arbeit entwickelt wurde, ist der CC3D-Löser integriert worden. Informationen zu FEATFLOW sind unter zu finden. General Mesh Viewer (GMV) Dieses Programm dient der Visualisierung von Daten, die in einer CFD-Simulation entstehen. Es können beliebige Daten für strukturierte oder auch unstrukturierte Gitter dargestellt werden. Informationen zu GMV sind unter gmv/gmvhome.html zu finden. Paraview Das Programm Paraview dient ebenfalls der Visualisierung verschiedener Simulationsdaten. Es bietet jedoch mehr Funktionen zur Darstellung und Verarbeitung der Datenmengen als GMV. Informationen zu Paraview sind unter index.html zu finden.

31 21 Kapitel 3 Punktklassifizierung Bei der in Kapitel beschriebenen Fictitious-Boundary Methode muss entschieden werden, welche Knoten des Gitters sich im Inneren des Objekts befinden. Im folgenden Kapitel wird ein Verfahren vorgestellt, mit dessen Hilfe diese Entscheidung effizient getroffen werden kann. Das Verfahren basiert auf einer speziellen Form von Octrees, weshalb diese zuerst erläutert werden. Danach wird die spezielle Datenstruktur zuerst hergeleitet, dann analysiert und zum Schluss mit Heuristiken optimiert. Auf Grund der einfacheren Beschreibung und Visualisierung wird das Verfahren im Zweidimensionalen (2D) erklärt, bevor eine Erweiterung auf die dritte Dimension (3D) folgt. Bei der 2D Beschreibung werden die Dreiecke der Oberflächentriangulierung auf einen geschlossenen Polygonzug reduziert. 3.1 Schnittzahltest Der Schnittzahltest (engl. odd-even-test) ist ein allgemeines Verfahren zur Klassifizierung beliebiger Punkte, also zur Entscheidung, ob sich ein Punkt innerhalb eines geschlossenen Körpers befindet. Wenn für einen Punkt ein Strahl in eine beliebige Richtung gesendet wird, so kann durch das Auszählen der Schnittpunkte mit der Oberfläche des Körpers bestimmt werden, ob sich der Punkt in seinem Inneren befindet. Ist die Anzahl der Schnittpunkte ungerade, befindet sich der Punkt innerhalb des Objektes, ist sie gerade, befindet er sich außerhalb (vergleiche Abbildung 3.1). In dieser Arbeit wird der Test folgendermaßen angewendet: Für jeden Knoten des Gitters wird ein Strahl in eine bestimmte Richtung ausgesandt. Daraufhin wird mit der in Kapitel 2.2 vorgestellten Methode getestet, wie viele Dreiecke des Objekts von dem Strahl geschnitten werden. Im naiven Ansatz müssen für jeden Knoten des Gitters alle Dreiecke des Objekts überprüft werden, was einen enormen Aufwand darstellt. Die Anzahl der Dreiecke für die der Schnitttest durchgeführt werden muss, kann jedoch mit einer passend gewählten Datenstruktur reduziert werden. Für eine ausführliche Zusammenfassung möglicher Datenstrukturen sei auf Chang [2001] verwiesen. 3.2 Octree bzw. Quadtree Ein Octree ist eine hierarchische Baumdatenstruktur. Wie in der Einleitung dieses Kapitels angedeutet, wird das Problem zuerst auf den zweidimensionalen Fall reduziert, daher wird anstatt des

32 22 3. Punktklassifizierung Abbildung 3.1: Darstellung des Schnittzahltests. Das Objekt ist als geschlossener Polygonzug dargestellt. Die Kreise markieren die Schnittpunkte mit der Objektoberfläche. Octree, der Quadtree beschrieben. Dieser ist das 2D-Analogon zum Octree und stimmt in seiner Funktionalität mit ihm überein. Der Quadtree wird im Folgenden für eine gegebene Punktmenge definiert, ist jedoch auch für verschiedene andere Datentypen einsetzbar. Bei einem Quadtree entspricht jeder Baumknoten einem rechteckigen Hüllkörper (engl. bounding box), der eine Punktmenge umschließt. Die Wurzel des Baumes entspricht dabei dem Hüllkörper für die gesamte Punktmenge. Die Ausmaße für den Hüllkörper der Wurzel können aus den minimalen und maximalen x-, y-koordinaten der Punkte festgestellt werden. Die folgende Definition beschreibt die Eigenschaften eines Quadtree für die Punktmenge P, die sich innerhalb des Hüllkörpers σ befinden: Definition 1. Sei σ := [ x min(σ), x max(σ) ] [ ymin(σ), y max(σ) ] 1. Falls die Anzahl der Punkte P 1 ist, dann besteht der Quadtree aus nur einem Blatt, in dem P und das Rechteck σ gespeichert sind. 2. Sonst seien σ NO, σ NW, σ SO und σ SW die vier Quadranten von σ. Seien weiterhin: x mid := (x min(σ) + x max(σ) )/2 y mid := (y min(σ) + y max(σ) )/2 Dann wird P folgendermaßen auf die Punktmengen der vier Quadranten aufgeteilt: P NO := {p P : p x > x mid und p y > y mid }, P NW := {p P : p x x mid und p y > y mid }, P SW := {p P : p x x mid und p y y mid }, P SO := {p P : p x > x mid und p y y mid } Somit enthält der Quadtree einen Wurzelknoten v, in dem der Hüllkörper σ(v) gespeichert

33 3.2 Octree bzw. Quadtree 23 wird. Weiterhin hat v vier Kinder: Das NO-Kind ist die Wurzel eines Quadtree für die Punktmenge P NO, die sich innerhalb des Hüllkörpers σ NO befindet. Das NW-Kind ist die Wurzel eines Quadtree für die Punktmenge P NW, die sich innerhalb des Hüllkörpers σ NW befindet. Das SW-Kind ist die Wurzel eines Quadtree für die Punktmenge P SW, die sich innerhalb des Hüllkörpers σ SW befindet. Das SO-Kind ist die Wurzel eines Quadtree für die Punktmenge P SO, die sich innerhalb des Hüllkörpers σ SO befindet. Diese Definition resultiert direkt in einem rekursiven Algorithmus zur Erstellung einer Quadtreestruktur. Die Knoten des Quadtree werden so lange unterteilt, bis eine definierte Abbruchbedingung erfüllt ist, also typischerweise bis die Anzahl der Punkte innerhalb eines Rechtecks unter einen vorher definierten Grenzwert fällt. Ist dieser Wert 1, so werden die Baumknoten solange unterteilt, bis jedes Blatt der Baumstruktur keinen oder genau einen Punkt enthält. Beispielhaft wird dieser Vorgang in Abbildung 3.2 veranschaulicht. Abbildung 3.2: Darstellung eines Quadtrees. Links: Aufbau der Datenstruktur. Die runden Knoten stellen die inneren Knoten des Baumes dar und die rechteckigen Knoten die Blätter. Rechts: Visualisierung der Unterteilung des Gebietes durch die Hüllkörper. Für die Anwendung der Punktklassifizierung, die am Anfang dieses Kapitels beschreiben wurde, wird als Datenmenge ein aus Strecken bestehender geschlossener Polygonzug angenommen. Für den Schnitttest eines Strahls mit dem Polygonzug soll mit Hilfe des Quadtree die Anzahl an Strecken minimiert werden, für die der Schnitttest durchgeführt werden muss. Der Aufbau eines Quadtree für diese Datenmenge ist jedoch nicht eindeutig. Im Gegensatz zu einer beliebigen Punktmenge kann der Quadtree so lange unterteilt werden, bis jedes Blatt nur noch eine Strecke enthält. Es existieren Strecken, die bei der Unterteilung eines Baumknotens nicht eindeutig einem Kind zugewiesen werden können, weil sie die Hüllkörper von mindestens zwei Kindern schneiden. Diesem Problem kann mit verschiedenartigen Abbruchbedingungen begegnet werden: Abbruch Der rekursive Aufbau wird für diesen Zweig abgebrochen. Das Problem kann im ungünstigen Fall schon direkt in der Wurzel des Quadtree auftreten, was diese Technik unperformant macht.

34 24 3. Punktklassifizierung geordnete Einfachreferenzierung Die Strecke, die das Problem verursacht, wird nur in einem der Kinder gespeichert. Diese Technik ist für die Punktklassifizierung nicht anwendbar. Die Gesamtheit der Blätter repräsentiert zwar immer noch den geschlossenen Polygonzug, bei der Betrachtung einzelner Blätter kann jedoch kein geschlossener Polygonzug mehr garantiert werden, was zu fehlerhaften Ergebnissen für die Punktklassifizierung führen kann. Mehrfachreferenzierung Die Strecke wird in jedem Baumknoten gespeichert, in dessen Hüllkörper sich ein Teil der Strecke befindet. Dadurch überlappen sich die Mengen benachbarter Blätter, und es wird mehr Speicherplatz verbraucht als in den zuvor beschriebenen Methoden, da die Strecke in mehreren Baumknoten referenziert wird. innere Referenzierung Kann eine Strecke nicht eindeutig einem Kind zugewiesen werden, so wird sie im Baumknoten selbst gespeichert. Die aufgeteilte Menge wird nicht mehr nur in den Blättern des Baumes gespeichert, sondern auch in inneren Baumknoten. Hierbei müssen für die Bestimmung einer gesuchten Menge alle Pfade von der Wurzel bis zu den gesuchten Blättern des Baumes herangezogen werden. Zerteilung Eine Strecke, die keinem Kind eindeutig zugewiesen werden kann, wird zerteilt, so dass jedes Kind den Abschnitt enthält, den sein Rechteck umhüllt. Falls jede Stecke durch Anfangs- und Endpunkt gegeben ist, muss jede dieser neuen Strecken gespeichert werden. Dadurch steigt der Speicherplatzverbrauch im Vergleich zur Mehrfachreferenzierung. Der Aufwand für den Aufbau eines Quadtree mit dieser Methode ist höher als bei den anderen Methoden, da die Strecke in einzelne Abschnitte unterteilt werden muss. Wurde der Quadtree als Datenstruktur aufgebaut, funktioniert die Klassifizierung eines beliebigen Punktes p in zwei Schritten: 1. Es muss das Blatt b gefunden werden, dessen Hüllkörper σ b den Punkt p umschließt. Dazu muss der Quadtree mit dem top-down Verfahren durchsucht werden. Startend bei der Wurzel muss überprüft werden, ob sich p innerhalb von σ NO, σ NW, σ SW oder σ SO befindet. Ist das richtige σ gefunden, wird dessen Baumknoten auf die gleiche Weise überprüft. Dieser Schritt wird solange wiederholt, bis das gesuchte Blatt des Baumes gefunden wurde. 2. Von p ausgehend wird ein Strahl ausgesandt. Die Blätter des Quadtree, deren Hüllkörper vom Strahl geschnitten werden, beinhalten eine geringe Anzahl an Strecken für die der Schnitttest durchgeführt werden muss 1. Um die geschnittenen Blätter zu bestimmen, wird prinzipiell ausgehend von b überprüft, welche der vier Kanten des Hüllkörpers σ b durch den Strahl geschnitten wird. An Hand dieser Information wird dann entschieden, welcher Baumknoten des Baumes als nächster untersucht wird. Beispielhaft sei der Strahl parallel zur y-achse nach oben gesendet und schneidet somit die obere Kante von σ b. Ist dieser Baumknoten selbst das SO-Kind seines Elternknoten, kann über den Elternknoten auf das NO-Kind δ zugegriffen werden, welches sich die geschnittene Kante mit σ b teilt. Falls δ selbst kein Blatt des Quadtree ist, muss überprüft werden, welches seiner Kinder vom 1 Falls der Baum mit Hilfe der inneren Referenzierung aufgebaut wurde, müssen zusätzlich die inneren Baumknoten hinzugezogen werden, die auf den Pfaden zu allen geschnittenen Blättern liegen.

35 3.2 Octree bzw. Quadtree 25 Strahl geschnitten wird. Dieser Vorgang wird solange durchgeführt, bis alle vom Strahl geschnittenen Blätter ermittelt wurden. Es gibt verschiedene Techniken, diese Suche in einem Quadtree zu optimieren, wie zum Beispiel durch die Verwaltung von Nachbarschaftsinformationen. Für weiterführende Analysen sei auf Chang [2001] verwiesen. Abbildung 3.3 dient zur Veranschaulichung dieses Vorgangs, und wie aus ihr ersichtlich wird, ist die Strahlrichtung ein wichtiger Faktor zur Optimierung. Für die Wahl einer guten Strahlrichtung existieren Heuristiken, von denen einige nachfolgend vorgestellt werden: Achsenparallel Jeder Strahl verläuft parallel zur x- oder y-achse. Bei der Wahl einer achsenparallelen Strahlrichtung entsteht für die Suche innerhalb des Quadtree der Vorteil, dass nicht mehr alle vier Seiten eines Hüllkörpers auf den Schnitt mit dem Strahl überprüft werden müssen, sondern immer nur die zwei orthogonal zum Strahl liegenden Seiten. Hüllkörpergrenze Der Strahl verläuft orthogonal zu einer der Seiten des Hüllkörpers der Wurzel. Die Seite wird bestimmt durch die kürzeste Distanz zum Ausgangspunkt des Strahls. Diese Methode ist achsenparallel und bietet für beliebig strukturierte Objekte eine gute Heuristik (vergleiche Hein [2007]). Zentrisch Die Richtung des Strahls wird durch die Objektmitte und den Punkt bestimmt. Die Objektmitte kann dabei zum Beispiel als Durchschnittswert der Dreiecksmittelpunkte berechnet werden. Bei kugelartigen Objekten kann diese Methoden eine gute Heuristik sein, jedoch nicht bei länglichen Objekten. Zusammenfassend lässt sich sagen, dass es kein einfaches Verfahren zur Bestimmung einer optimalen Strahlrichtung gibt, ohne zusätzliche Strukturen zu berechnen. Abbildung 3.3: Punktklassifizierung mit Hilfe eines Quadtree. Die Menge der Strecken, für die der Schnitttest durchgeführt werden muss, wird durch den Einsatz eines Quadtree reduziert. Die Richtung des Strahls trägt dabei entscheidend zur Effizienz dieses Verfahrens bei. Links: Zufällige Wahl der Strahlrichtung. Mitte: Achsenparallele Strahlrichtung zur y-achse. Rechts: Die Strahlrichtung wird bestimmt durch die Hüllkörpergrenze mit der kürzesten Distanz. Durch diese Heuristik wird in diesem Beispiel die kleinste Anzahl von Schnitttests durchgeführt.

36 26 3. Punktklassifizierung 3.3 Spezialisierte Datenstruktur Bei den achsenorientierten Methoden kann beobachtet werden, dass ein Strahl eine komplette Reihe von Blättern schneidet. Für jedes Blatt muss jedoch ein Schnitttest mit den Kanten seines Hüllkörpers berechnet werden. Um die so entstehenden Kosten einzusparen, entstand die Idee, anstatt der rechteckigen Hüllkörper, säulenartige zu verwenden. Dadurch existiert in Richtung des Strahls nur noch ein Blatt, dessen Datenmenge überprüft werden muss. Die so erstellte Datenstruktur reduziert sich in ihrer Struktur auf einen Binärbaum und somit auf ein eindimensionales Problem. Die verwendete Achsenrichtung erlaubt eine einfache Optimierung, welche die Datenmenge für einen Schnitttest im besten Fall nochmal halbieren kann. Zur Vereinfachung wird angenommen, dass der Strahl parallel zur y-achse verläuft. Somit entstehen Blätter des Baumes mit Hüllkörpern, die ebenfalls parallel zur y-achse ausgerichtet sind. Jedes so entstandene Blatt kann in zwei Hälften unterteilt werden. Eine Hälfte repräsentiert dabei die positive und die andere die negative Strahlrichtung. Die Abbildung 3.4 veranschaulicht diesen Vorgang und es folgt eine rekursive Definition des Spezialbaumes mit einem geschlossenen Streckenzug S als Datenmenge. Abbildung 3.4: Punktklassifizierung mit Hilfe des Spezialbaumes. Die Menge der Strecken, für die der Schnitttest durchgeführt werden muss, wird durch den Einsatz des Spezialbaumes reduziert. Jeder Strahl verläuft nur noch innerhalb eines Blattes. Links: Der Spezialbaum wird nur nach der x-koordinate unterteilt. Rechts: Nach der Unterteilung an Hand der x-koordinate wird jedes so entstandene Blatt noch einmal parallel zur y-achse unterteilt, wodurch die positive oder negative Strahlrichtung definiert wird. Definition 2. Sei σ := [ k min(σ), k max(σ) ], also das Intervall für eine der Koordinatenachsen k {x, y}, welche den Polygonzug beschränkt. 1. Falls ein Abbruchkriterium erreicht wird, besteht der Spezialbaum aus nur einem Blatt in dem S und das Intervall σ gespeichert sind. Falls S { } enthält das Blatt eine zusätzliche Information für die positive oder negative Strahlrichtung. 2. Sonst spalten σ GR und σ KL das Intervall in genau zwei gleichgroße Teile von σ auf. Sei weiterhin:

37 3.3 Spezialisierte Datenstruktur 27 k mid(σ) := (k min(σ) + k max(σ) )/2 Jede Strecke s wird durch zwei Punkte a s und e s definiert. Dann wird S folgendermaßen auf die Streckenmengen der zwei Teile von σ aufgeteilt: S GR := S KL := { } { s S falls : as (k) k mid(σ) oder e s (k) k mid(σ) }, s S falls : as (k) k mid(σ) oder e s (k) k mid(σ), Somit enthält der Spezialbaum einen Wurzelknoten v, in dem das beschränkende Intervall σ(v) gespeichert wird. Weiterhin hat v zwei Kinder: Das GR-Kind ist selbst die Wurzel eines Spezialbaumes für die Streckenmenge S GR, welche alle Strecken beinhaltet, die mit wenigstens einem ihrer Punkte innerhalb des Intervalls σ GR liegen. Das KL-Kind ist selbst die Wurzel eines Spezialbaumes für die Streckenmenge S KL, welche alle Strecken beinhaltet, die mit wenigstens einem ihrer Punkte innerhalb des Intervalls σ KL liegen Aufbau Von den bereits beschriebenen Möglichkeiten mit Strecken umzugehen, die beim Aufbau der Suchdatenstruktur nicht eindeutig einem Kind zugewiesen werden können, beinhaltet diese Definition bereits die Mehrfachreferenzierung, weil sich diese für die Art des Spezialbaumes am besten eignet. Warum der Abbruch und die Einfachreferenzierung ungeeignet sind, wurde bereits erläutert. Die innere Referenzierung eignet sich ebenfalls nicht: Die Menge eines Baumknotens wird jeweils nur nach einer Achse unterteilt. Entstehen dabei Elemente, die nur in diesem Knoten referenziert werden, so können diese Elemente nicht mehr an Hand einer anderen Achse unterteilt werden. Dies würde die Effizienz des Spezialbaumes deutlich beeinträchtigen. Die Zerteilung wiederum würde einerseits mehr Speicherplatz verbrauchen als die verwendete Methode, denn aus einer Strecke würden zwei entstehen, die jeweils in den Kinderknoten referenziert werden müssten. Für den dreidimensionalen Fall würden aus einem Dreieck sogar drei Dreiecke entstehen. Zum anderen würde die Zerteilung keinen Geschwindigkeitsgewinn erreichen, denn der Schnitttest ist in der Komplexität seiner Berechnungen relativ unabhängig von der Größe der Dreiecke. Durch die Zerteilung würden sogar mehr Dreiecke entstehen, für die der Test durchgeführt werden müsste, was die Laufzeit ungünstig beeinflussen würde. Ein weiterer Nachteil besteht in den zusätzlichen Kosten für die Laufzeit zur Berechnung der Einzelteile. Bei der Mehrfachreferenzierung muss die Strecke beziehungsweise das Dreieck nur in beiden Kinderknoten referenziert werden, was eine speichergünstigere und schnellere Variante bietet. Definition 2 resultiert ebenso wie Definition 1 in einem rekursiven Algorithmus zum Aufbau des Spezialbaumes, bei dem jedoch ein paar Besonderheiten beachtet werden müssen. Der Aufbau des Baumes erfolgt strikt nacheinander für die möglichen Koordinatenachsen. Ist die Strahlrichtung parallel zur y-achse gewählt, so wird der Baum zuerst solange nach der x-achse unterteilt, bis in allen Blättern die Abbruchbedingung erfüllt ist. Erst nach dieser Unterteilung wird jedes nicht leere Blatt des Baumes rekursiv nach der y-achse unterteilt. Im zweidimensionalen Fall wird somit jedes Blatt nur noch einmal unterteilt, wobei das GR-Kind die positive Strahlrichtung zugewiesen bekommt und das KL-Kind die negative.

38 28 3. Punktklassifizierung Als Rekursionsabbruch für den Aufbau des Spezialbaumes in einer Achsenrichtung existieren mehrere Möglichkeiten. Tiefe des Baumes Als Abbruchbedingung ist es möglich, eine bestimmte maximale Tiefe für den Aufbau der Datenstruktur vorzugeben. Dies garantiert zwar eine bestimmte Laufzeit für die Suche innerhalb des Baumes, jedoch kann die Anzahl an Strecken pro Blatt in Abhängigkeit von der Anzahl der Strecken des Objekts stark variieren. Bei sehr fein aufgelösten Objekten entstehen somit pro Blatt viele Strecken, für die der Schnitttest durchgeführt werden muss, was dem Prinzip der Suchdatenstruktur widerspricht. Anzahl der Strecken Es ist möglich, als Abbruchbedingung für die Unterteilung eines Baumknotens eine bestimmte Anzahl an Strecken zu definieren. Auf Grund der verwendeten Mehrfachreferenzierung kann jedoch nicht für alle möglichen Objekte garantiert werden, dass diese Abbruchbedingung tatsächlich erreicht wird. relativer Speicherverbrauch Diese in der erstellten Software eingesetzte Abbruchbedingung stellt einen Kompromiss, zwischen dem zusätzlichen Speicherplatzverbrauch und einer möglichst geringen Tiefe des Spezialbaumes dar. Durch die Mehrfachreferenzierung werden pro Unterteilung eines Knotens Strecken in beiden Kindern referenziert. Diese Strecken stellen den zusätzlichen Speicherplatzverbrauch dar. Die Knoten werden so lange unterteilt, bis der zusätzliche Speicherverbrauch einen bestimmten Prozentsatz überschreitet. Wird der Prozentsatz beispielsweise auf 50% gesetzt und ein Knoten unterteilt, der 100 Strecken beinhaltet, so wird die Unterteilung bei seinen Kindern abgebrochen, falls diese zusammen mehr als 150 Strecken beinhalten. Mit dieser Technik kann der zusätzliche Speicherverbrauch, die Tiefe des Baumes und die Anzahl an Strecken in seinen Blättern unabhängig von der Gesamtzahl an Strecken oder der Beschaffenheit des Objekts gesteuert werden. Besteht eine Region des Objekts aus wenigen großen und eine andere aus vielen kleinen Strecken, so wird die erste Region weniger oft unterteilt als die zweite Anwendung für Punktklassifizierung Soll für einen beliebigen Punkt p entschieden werden, ob er sich innerhalb oder außerhalb des Objekts befindet, funktioniert das Verfahren ähnlich dem Quadtree in zwei Schritten: 1. Jeder Knoten des Spezialbaumes besitzt noch das zusätzliche Attribut a {x, y}, das angibt, nach welcher Koordinatenachse dieser Knoten unterteilt wurde. Im zweidimensionalen Fall kann dies die x- oder y-achse sein. Es muss nun also das Blatt b gefunden werden, in dessen Intervall σ b sich der Punkt p mit der entsprechenden x- oder y-koordinate befindet, nach der b unterteilt wurde. Dazu wird der Spezialbaum mit dem top-down Verfahren durchsucht. Bei jedem Knoten σ des Baumes wird überprüft, ob p(k) k mid(σ) oder p(k) < k mid(σ) ist, also ob sich die Koordinate im Intervall seines S GR - oder S KL -Kindes befindet. Dementsprechend wird ebenso mit diesem Kind verfahren, so lange bis ein Blatt erreicht wird. Ist das Blatt leer, beinhaltet also keine Streckenelemente, so befindet sich der Punkt definitiv außerhalb des Objekts, beinhaltet das Blatt wenigstens eine Strecke, so wird mit Schritt 2 fortgefahren. 2. Vom Punkt p aus wird ein Strahl in die positive oder negative Richtung gesendet, je nach Attribut des Blattes. Für diesen Strahl muss der Schnitttest mit den Strecken durchgeführt

39 3.3 Spezialisierte Datenstruktur 29 werden, die im Blatt gespeichert sind. Die Anzahl existierender Schnitte bestimmt, ob sich der Punkt innerhalb oder außerhalb des Objekts befindet Analyse der Effizienz Eine detaillierte Laufzeitanalyse dieser Datenstruktur ist stark von den verwendeten Heuristiken abhängig und würde den Rahmen dieser Arbeit überschreiten, jedoch wird im Folgenden ein kurzer Überblick über die erwarteten Kosten präsentiert. Aufbau Wird ein Baumknoten mit seiner Streckenmenge unterteilt, entstehen zwei neue Knoten, deren Intervalle halb so groß sind und deren Mengen im günstigsten Fall in zwei gleichgroße Teile geteilt werden. Im ungünstigsten Fall ist die Menge eines Knoten leer und die andere beinhaltet alle Elemente, was jedoch keine zusätzlichen Kosten durch die Mehrfachreferenzierung verursacht. Einzelne Strecken können auf Grund der Mehrfachreferenzierung in beiden Kindern vorkommen. Als Abbruchbedingung beim Aufbau des Baumes wird der relative Speicherverbrauch gewählt. Werden maximal 20% Mehrfachreferenzierungen pro Unterteilung eines Knotens erlaubt, so verbrauchen die zwei Kinder eines Knotens nicht mehr als 20% zusätzlichen Speicherplatz. Dabei bilden die 20% eine obere Schranke für den zusätzlichen Speicherverbrauch. Werden bei der Unterteilung eines Knotens beinahe 20% der Strecken mehrfach referenziert, ist das Intervall dieses Knotens bereits so klein, dass fast ein Fünftel der Strecken nicht mehr durch die Intervallgrenzen nur eines Kindes beschränkt werden kann. Die Kinder besitzen nun selbst Intervalle, die halb so klein sind, und werden diese unterteilt, müssten mehr als ein Fünftel der Strecken mehrfach referenziert werden. Anders betrachtet sollte auf Grund dieser Tatsache jede Strecke nicht beliebig oft von einer Intervallgrenze geschnitten werden, sich also nur in einem gewissen Bereich benachbarter Blätter befinden. Dies bedeutet, dass jede Strecke nicht beliebig oft referenziert wird, was folglich den Speicherplatzverbrauch beschränkt. Dabei ist die Anzahl der Referenzierungen pro Strecke stark abhängig von den erlaubten Mehrfachreferenzierungen durch die Abbruchbedingung. Die Analyse für die Tiefe des Baumes ist auf Grund der relativ dynamischen Abbruchbedingung nicht einfach. Sie ist von der Verteilung, Größe und Anzahl der Strecken abhängig. Pro Unterteilung eines Knotens werden die Strecken bestenfalls gleichmäßig auf beide Kinder verteilt, was eine logarithmische Tiefe des Baumes in Bezug auf die Anzahl der Dreiecke darstellen würde. Im schlimmsten Fall wird die Dreiecksmenge jedoch nur einem Kind zugewiesen, was eine unendliche Tiefe darstellen könnte. Dies wäre jedoch nur möglich wenn alle Strecken in einer Ebene liegen würden, die parallel zu einer der Achsen liegen würde, nach denen die Datenstruktur unterteilt wird. Weil der Polygonzug geschlossen sein muss und davon ausgegangen wird, dass die umschlossene Fläche ein echtes Inneres hat, kann dieser Fall nicht entstehen. Durch die Halbierung der Intervalle und der Beschränkung durch die Abbruchbedingung wird erwartet, dass sich die Menge jedes Knotens pro Unterteilung um einen konstanten Faktor reduziert. Dies impliziert eine logarithmische Tiefe des Baumes. Tiefensuche Als einfache Heuristik wird für einen Punkt zuerst überprüft, ob er sich innerhalb des Hüllkörpers des Objekts befindet. Ist dies nicht der Fall, so muss keine Tiefensuche durchgeführt werden, da sich der Punkt nicht innerhalb des Objekts befinden kann. Bei der Suche des Blattes, innerhalb dessen Intervallgrenzen sich der Punkt befindet, müssen pro Baumknoten σ nur drei Operationen durchgeführt werden.

40 30 3. Punktklassifizierung 1. Zuerst wird überprüft, ob der Baumknoten ein Blatt ist. Ein Knoten wird als Blatt definiert, falls er kein Kind besitzt. Dies ist in konstanter Zeit überprüfbar. 2. Die Mitte seines Intervalls muss bestimmt werden. Dazu werden die Intervallgrenzen k min(σ) und k max(σ) addiert und durch zwei dividiert. 3. Zuletzt entscheidet ein -Vergleich der Koordinate des Punktes mit der Mitte des Intervalls in welchem Kind die Suche rekursiv fortgeführt wird. Im Vergleich zum Quadtree sind dies deutlich weniger Operationen. Es muss im ersten Schritt nicht berechnet werden, in welchem Quadrant sind der Punkt befindet und im zweiten Schritt müssen keine Schnitttests zur Bestimmung der Blätter durchgeführt werden, die vom Strahl geschnitten werden. Mit zusätzlichem Speicherplatzverbrauch können die Intervallmitten jedes Baumknotens gespeichert werden, wodurch sich die Operationen auf einen Vergleich reduzieren würden Heuristiken zur Optimierung Für den Aufbau und die Effizienz der Datenstruktur spielt die Ausrichtung und Dimension des Objekts eine entscheidende Rolle. Bei länglichen Objekten die parallel zu einer Achse verlaufen gibt es eine effiziente und eine ineffiziente Art der Unterteilung (siehe Abbildung 3.5). Für eine effiziente Art der Aufteilung kann der Hüllkörper des Objekts herangezogen werden. Dazu wird der Spezialbaum zuerst an Hand der Koordinatenachse unterteilt, die im Hüllkörper das größte Intervall einnimmt. Alternativ könnte eine Gerade bestimmt werden, die im Durchschnitt die geringste Entfernung zu allen Streckenelementen besitzt. Mit Hilfe einer Transformation des Koordinatensystems könnte diese Gerade als Achse für die erste Unterteilung dienen. Jedoch ist dieser Ansatz relativ aufwändig und wurde daher nicht weiter verfolgt. Abbildung 3.5: Auswirkung der Reihenfolge der Achsen beim Aufbau der Datenstruktur für seine Effizienz bei der Punktklassifizierung. Oben: Effiziente Art der Aufteilung. Unten: Ineffiziente Art der Aufteilung.

41 3.3 Spezialisierte Datenstruktur 31 Bei der einmaligen Unterteilung entlang der letzten Achse kann es vorkommen, dass ein Kind keine Streckenelemente enthält. Dieser Umstand kann zur Steigerung der Effizienz verwendet werden. Entsteht bei der letzten Unterteilung ein Kind, das alle Strecken enthält, kann es nochmal auf die gleiche Art unterteilt werden. Dieser Vorgang kann so lange wiederholt werden, bis beide Kinder wieder Strecken enthalten. Erst dann wird eine positive und eine negative Achsenrichtung für beide Kinder festgelegt (siehe Abbildung 3.6). Die Baumknoten, die während dieses Vorgangs entstanden sind, ohne Strecken zu beinhalten, sind diejenigen Blätter des Baumes, deren Intervallgrenzen einen Bereich außerhalb des Objekts definieren. Abbildung 3.6: Heuristik zur Steigerung der Effizienz während der Unterteilung der letzten Achse. Die hellgrau unterlegten Rechtecke markieren Blätter mit einer leeren Menge von Strecken. Jeder Punkt, der sich innerhalb der Intervalle dieser Blätter befindet, kann ohne Schnitttest als Punkt außerhalb des Objekts klassifiziert werden Erweiterung auf die dritte Dimension Die Erweiterung des Spezialbaumes auf die dritte Dimension ist unkompliziert. Der Aufbau der Datenstruktur erfolgt wie im Zweidimensionalen strikt sequentiell, jedoch für drei mögliche Achsen x, y und z. Dabei wird die Reihenfolge, in der die Datenstruktur aufgebaut wird, heuristisch aus der Ausdehnung des Objekts innerhalb der einzelnen Achsen, also aus den minimalen und maximalen Koordinaten des Hüllkörpers, bestimmt. Die Achse mit der größten Ausdehnung wird zuerst unterteilt, die mit der zweitgrößten Ausdehnung als zweite und die mit der kleinsten Ausdehnung als letzte. Die Strahlrichtung wird dabei parallel zur Achse mit der kleinsten Ausdehnung gewählt. Wird beim Aufbau der Datenstruktur die Datenmenge eines Knotens auf seine Kinder aufgeteilt, so müssen die drei Eckpunkte jedes Dreiecks an Hand einer Koordinate mit der Mitte des Intervalls verglichen werden. Ist mindestens einer der drei Eckpunkte kleiner oder gleich der Mitte, so wird das Dreieck dem KL-Kind zugewiesen. Ist mindestens einer der Eckpunkte größer oder gleich der Mitte, so wird es dem GR-Kind zugewiesen. Abbildung 3.7 veranschaulicht die Strukturen eines Spezialbaumes in der dritten Dimension. Bei der Anwendung der Punktklassifizierung ändert sich für den dreidimensionalen Fall nichts, da die Achsen im Baum nacheinander abgearbeitet werden.

42 32 3. Punktklassifizierung Abbildung 3.7: Erweiterung des Spezialbaumes auf die dritte Dimension. Links: Beispielhafte Darstellung einer Unterteilung des Spezialbaumes mit zugehöriger positiver und negativer Strahlrichtung. Rechts: Beispielhafte Darstellung eines Blattes mit zugehöriger Dreiecksmenge.

43 33 Kapitel 4 Distanzberechnung Im folgenden Kapitel wird eine Methode zur Berechnung der Monitorfunktion beschrieben, die für die Gitterdeformation (siehe Kapitel 2.1.2) benötigt wird. Die im Rahmen dieser Arbeit verwendete Monitorfunktion repräsentiert ein Distanzfeld, d.h. jedem Gitterpunkt wird die kürzeste Distanz zur Objektoberfläche zugewiesen. Die Methode basiert zum einen auf der im vorigen Kapitel beschriebenen Punktklassifizierung und der dort beschriebenen Suchdatenstruktur und zum anderen auf einer Variante des von Sethian [1996] vorgestellten Fast Marching Algorithmus. Zuerst wird ein naiver Ansatz für die Distanzberechnung präsentiert. Dann wird die Grundidee des Fast Marching Algorithmus erläutert, gefolgt von einer eigenen Variante die zur Distanzberechnung genutzt wird. Diese Variante wird auf Korrektheit und Effizienz analysiert. Wie bei der zuvor beschriebenen Methode zur Punktklassifizierung wird zuerst der zweidimensionale Fall analysiert, bevor die Erweiterung auf drei Dimensionen folgt. 4.1 Naiver Ansatz Allgemein muss für jeden Knoten des Gitters die kürzeste Distanz zu der Objektoberfläche bestimmt werden. Für einen beliebigen Punkt p wird der kürzeste Abstand zu der Triangulierung T = {T 1,..., T m } des Objekts folgendermaßen berechnet: Iteriere über alle Dreiecke T i T : 1. Initialisiere die Distanz als Berechne die Distanzen von p zu den drei Eckpunkten des Dreiecks T i. Wird eine geringere Distanz gefunden, so speichere diese als neue kürzeste Distanz. 3. Berechne den Normalenvektor n i des Dreiecks T i als Kreuzprodukt zweier Dreiecksseiten. 4. Berechne den Schnittpunkt zwischen der Gerade g := p+αn i und dem Dreieck T i. Existiert ein Schnittpunkt, berechne die Distanz zu diesem. Ist sie geringer als die bisherige kürzeste Distanz, speichere sie als neue kürzeste Distanz. 5. Existiert kein Schnittpunkt, berechne den Lotfußpunkt zu jeder Kante des Dreiecks T i. Falls existent, berechne die Distanz und speichere sie gegebenenfalls als neue kürzeste Distanz.

44 34 4. Distanzberechnung Dieser naive Ansatz berechnet ein exaktes Distanzfeld. Bei relevanten Problemgrößen von mehreren Millionen Gitterknoten und hoch aufgelösten Oberflächentriangulationen ist die Laufzeit von O(NM) nicht akzeptabel, wobei N die Anzahl der Gitterknoten und M die Anzahl der Dreiecke darstellt. Durch den Einsatz von speziellen Datenstrukturen, wie zum Beispiel den Quadtrees, lässt sich die Anzahl der Dreiecke reduzieren, zu denen die Distanz pro Gitterknoten berechnet werden muss. Wird jedoch eine geringe Ungenauigkeit im Distanzfeld in Kauf genommen, so kann mit der Fast Marching Methode ein schnellerer Algorithmus eingesetzt werden. 4.2 Fast Marching Von Sethian [1999] eingeführt, bietet die Fast Marching Methode ein Verfahren zur Lösung der Eikonalgleichung: φ(x) = f(x), x R n mit Randbedingung φ(x) = g(x), x Γ R n. (4.1) Dieses Verfahren hat eine Laufzeit von O(N log N) auf einem Gitter mit N Knoten. Für den speziellen Fall, dass φ(x) als Distanzfunktion definiert wird, ist folgende Gleichung erfüllt: φ(x) = 1, x R n und φ(x) = 0, x Γ. (4.2) Durch diese Eigenschaft kann die Eikonalgleichung als Fehlerabschätzung für eine Methode zur Distanzberechnung benutzt werden. Die Grundidee des Fast Marching Algorithmus besteht nun aus der Verbreitung von Informationen entlang von Kanten des Gitters. Die für einen Knoten des Gitters berechnete Information wird an seine Nachbarknoten weitergegeben und dort zur Berechnung verwendet. Die Informationen werden dabei zuerst für die Elemente des Gitters berechnet, die von der Objektoberfläche geschnitten werden und dann in einer Wellenfront von der Objektoberfläche weg verbreitet. In ihrer Funktionalität ähnelt die Fast Marching Methode dem von Dijkstra [1959] entwickelten Verfahren zur Berechnung kürzester Pfade auf einem Graphen Funktionsweise Die Fast Marching Methode zur Berechnung von Distanzen arbeitet in zwei Phasen. In der ersten Phase wird ein initiales Band mit Distanzinformationen berechnet und in der zweiten werden die Distanzinformationen über das gesamte Gitter verbreitet. Dazu werden zwei Datenstrukturen benutzt. In der ersten wird für jeden Gitterknoten sein Referenzpunkt und die Distanz zu diesem gespeichert. Als Referenzpunkt dient der Punkt auf der Objektoberfläche, der zu dem Knoten die geringste Distanz besitzt. Initialisiert wird jeder Knoten ohne Referenzpunkt und mit einer Distanz mit Wert +. Die zweite Struktur beschreibt ein Band von Knoten, die in einer Liste an Hand ihrer Distanzinformationen aufsteigend sortiert sind. Damit steht am Anfang der Liste der Knoten, der innerhalb des Bandes die geringste bisher berechnete Distanz besitzt. Die Sortierung des Bandes impliziert dabei die wellenartige Ausbreitung der Informationen. Das Band bildet im Grunde eine aus Gitterknoten bestehende Hülle für die Objektoberfläche. Initialphase Bei dem üblichen Verfahren im Einsatz der Fast Marching Methode zur Distanzberechnung müssen zur Bestimmung des Initialbandes zuerst alle Hexaederzellen identifiziert werden, die von der Objektoberfläche geschnitten werden. Für die acht Knoten dieser Hexaederzellen müssen die kürzesten Distanzen zur Objektoberfläche berechnet und die jeweiligen Referenzpunkte für die

45 4.2 Fast Marching 35 Distanzberechnung gespeichert werden. Für jeden Knoten des initialen Bandes wird also seine kürzeste Distanz gespeichert und ein Referenzpunkt, an Hand dessen diese Distanz ermittelt wurde. Von dem üblichen Verfahren wird in dieser Arbeit zu Gunsten einer höheren Geschwindigkeit abgewichen. Das initiale Band wird nur aus den Knoten der Kanten gebildet, welche die Objektoberfläche schneiden. Für diese Berechnung kann die in Kapitel 3 vorgestellte Datenstruktur genutzt werden. Zuerst werden mit Hilfe der Punktklassifizierung alle Knoten des Gitters bestimmt, die sich im Inneren des Objekts befinden. Dann muss nur noch über alle Kanten iteriert werden. Jede Kante, die einen Knoten innerhalb des Objekts und einen außerhalb besitzt, wird für das initiale Band verwendet. Zwischen den beiden Knoten einer solchen Kante muss sich die Objektoberfläche befinden, folglich kann ein Strahl von einem Knoten zum anderen gesendet werden, der die Objektoberfläche in mindestens einem Punkt schneiden muss. Für jeden der beiden Knoten einer Schnittkante wird nun die Distanz zu den Schnittpunkten berechnet und derjenige Schnittpunkt mit der geringsten Distanz zu dem Knoten dient als sein Referenzpunkt. Das so berechnete initiale Band ist mit seinen Distanzinformationen nicht mehr so genau wie das ursprüngliche Verfahren, da es nur noch kürzeste Distanzen zu den Referenzpunkten berechnet (siehe Abbildung 4.1). Diese Berechnung ist nach numerischen Tests jedoch ausreichend geeignet (siehe auch 4.2.2). Abbildung 4.1: Darstellung der initialen Bänder für die Fast Marching Methode. Die gelben Bänder unterlegen die Knoten, die Bestandteil des initialen Bandes sind. Die grünen Kreise markieren die Referenzpunkte und die dick gezeichneten schwarzen Linien verbinden die Knoten mit ihren jeweiligen Referenzpunkten. Links: Eigenes Verfahren, bei dem nur die Schnittpunkte zwischen Kanten und Oberfläche als Referenzpunkte dienen. Rechts: Übliches Verfahren mit tatsächlich berechneten kürzesten Distanzen als Referenzpunkte. Verbreitungsphase Ist das initiale Band berechnet, sollen sich die Informationen ähnlich einer Wellenfront von der Objektoberfläche aus verbreiten. Dazu wird der Knoten aus dem Band entfernt, der die kleinste Distanz besitzt, also am Anfang der sortierten Liste steht. Für alle Nachbarn dieses Knotens werden Distanzen zu seinem Referenzpunkt berechnet. Wird für einen Nachbarn dadurch eine geringere Distanz berechnet als bisher, übernimmt der Nachbar den Referenzpunkt und die kleinere Distanz wird gespeichert. Gleichzeitig wird der Nachbar mit dieser neuen Distanzinfomation in das Band eingefügt. Sind alle Nachbarn bearbeitet, wird der nächste Knoten aus dem Band entfernt. Dieser Vorgang wird so lange wiederholt, bis das Band leer ist. Abbildung 4.2 veranschaulicht diesen Vorgang.

46 36 4. Distanzberechnung Abbildung 4.2: Zwei Zeitpunkte der Verbreitungsphase der Fast Marching Methode. Links: Ausbreitung des Bandes, nachdem drei Knoten entfernt wurden. Rechts: Ausbreitung des Bandes, nachdem 32 Knoten entfernt wurden Korrektheit Durch die iterative Verbreitung der Distanzinformationen über Nachbarknoten und die Initialisierung der ersten Datenstruktur mit einer unendlich großen Distanz wird garantiert, dass das Gitter vollständig durchlaufen wird. Auf Grund der approximierten Distanzen des Initialbandes entsteht ein Fehler, der sich zum einen durch die Ausdehnung einzelner Gitterelemente abschätzen lässt. Besitzt durch die Punktklassifizierung wenigstens eine Kante eines Hexaeders zwei unterschiedlich klassifizierte Knoten, so kann der entstehende Fehler nicht größer sein als die Ausdehnung des Hexaeders. Andererseits wird der Fehler kleiner, wenn die Hexaeder kleiner werden. Hierbei verkleinert die verwendete Methode der Gitterdeformation den Fehler, da sie die Hexaeder in Objektnähe verkleinert. Die Fast Marching Methode und die Gitterdeformation verbessern sich somit gegenseitig. Zum anderen entsteht ein Fehler, falls sich kein Knoten innerhalb des Objekts befindet. Dadurch werden mit diesem Verfahren Kanten, die das Objekt eigentlich schneiden, nicht erkannt. In einem solchen Fall muss akzeptiert werden, dass die Diskretisierung nicht genau genug ist, um diese Geometrie zu erkennen. Abbildung 4.3 veranschaulicht beide Fehlermöglichkeiten Effizienz Die Effizienz des Verfahrens wird einzeln für seine zwei Phasen betrachtet. Initialphase Bei der Berechnung der Schnittpunkte einer Kante mit der Objektoberfläche kann der Spezialbaum genutzt werden, um die Anzahl der Dreiecke zu minimieren, die für den Schnitttest betrachtet werden müssen. Dazu wird auf dem Spezialbaum rekursiv eine Tiefensuche mit den Koordinaten der zwei Knoten der Kante durchgeführt. Diese Tiefensuche erreicht jedes Blatt, dessen Intervall sich zwischen den beiden Knoten befindet. Dabei werden an jedem Knoten des Spezialbaumes die Koordinaten beider Knoten zur Entscheidung hinzugezogen, in welchem Kind die Suche rekursiv weitergeführt wird. Es kann natürlich vorkommen, dass die Suche in beiden Kindern weitergeführt wird. Sind alle Blätter erreicht, werden die Mengen ihrer Dreiecke vereinigt. Dabei können mehrfach vorhandene Dreiecke entfernt werden, um die Kosten für den Schnitttest zu minimieren.

47 4.2 Fast Marching 37 Abbildung 4.3: Beispiele für die Fehler, die in der Distanzberechnung mit der Fast Marching Methode entstehen können. Oben: Es befindet sich nur der Knoten links im Inneren des Elements und somit berechnen die anderen drei Knoten ihre Distanzen zu den Schnittpunkten. Die tatsächlichen Distanzen werden durch schwarze, die fehlerhaft berechneten durch rote Pfeile verdeutlicht. Der approximative Fehler entspricht dabei in etwa der maximalen Ausdehnung des Gitterelements. Unten: Es befindet sich kein Knoten im Inneren des Objekts. Dadurch wird das Objekt nicht erkannt und keine Distanz berechnet. Sollen die mehrfach vorhandenen Dreiecke entfernt werden, muss jede Menge eines Blattes zuerst sortiert werden, was in einer Laufzeit von O(k log k) möglich ist, wobei k die Anzahl der Dreiecke in einem Blatt ist. Sind zwei Mengen A und B sortiert und beinhalten sie k(a) und k(b) viele Dreiecke, ist ihre Vereinigung in Laufzeit O(k(A) + k(b)) möglich. Dazu werden die ersten Elemente beider Mengen miteinander verglichen. Das kleinere Element wird aus seiner Menge entfernt und in die neue Menge eingefügt. Sind die Elemente gleich, so werden beide aus ihren Mengen entfernt aber nur einmal in die neue Menge eingefügt. Dieser Vorgang wird so lange wiederholt bis beide Mengen leer sind. Die Gesamtlaufzeit der Initialphase ist wiederum abhängig von der Tiefe des Spezialbaumes und der Anzahl der Blätter, die erreicht werden. Für den ungünstigsten Fall, dass eine Kante das gesamte Objekt umspannt, werden alle Blätter des Spezialbaumes erreicht. Ist M die Anzahl aller Dreiecke, so befinden sich pro Ebene des Baumes O(M) viele Dreiecke in Mengen, die vereinigt werden. Ist die Tiefe des Baumes O(log M), so beträgt die Gesamtlaufzeit O(M log M), falls die Mengen in den Blättern bereits in sortierter Reihenfolge gespeichert sind. Verbreitungsphase Zur anschaulichen Betrachtung der Komplexität dieser Phase wird ein Voronoi-Diagramm (vergleiche Kapitel 2.5) für die Referenzpunkte hinzugezogen, die in der ersten Phase berechnet wurden. Die Information eines Referenzpunktes wird von einzelnen Knoten zu ihren Nachbarknoten weitergegeben. Die Verbreitung der Informationen in einer Wellenfront garantiert, dass sich die Information eines Referenzpunktes nur entlang der Kanten verbreiten, die mit mindestens einem Knoten innerhalb seiner Voronoi-Region liegen (siehe Abbildung 4.4). In der Regel bedeutet dies, dass jeder Gitterknoten, dessen Nachbarknoten alle innerhalb der gleichen Voronoi-Region liegen, nur einmal zum Band hinzugefügt wird, und zwar mit der Information des Referenzpunktes,

48 38 4. Distanzberechnung innerhalb dessen Voronoi-Region er sich befindet. Abbildung 4.4: Ausbreitung der Information eines Referenzpunktes innerhalb seiner Voronoi- Region. Die roten Linien stellen die Voronoi-Kanten dar und die blauen markieren die Kanten, über die die Information des mittleren Referenzpunktes verbreitet wird. Wenn die Knoten einer Kante in unterschiedlichen Voronoi-Regionen liegen, existieren jedoch zwei Ausnahmen zu dieser Regel. Bei ungünstig verzerrten Gittern kann es für einen Referenzpunkt vorkommen, dass ein Gitterknoten außerhalb seiner Voronoi-Region die Information des Referenzpunktes annimmt und mit dieser in das Band eingefügt wird. Bevor dieser Gitterknoten jedoch die Information wiederum an seine Nachbarknoten weitergeben kann, sollte ihn die Distanzinformation des Referenzpunktes, in dessen Voronoi-Region er sich befindet, erreichen. Für diesen Fall wird ein Knoten mehr als einmal in das Band aufgenommen. Jedoch kann ein Knoten nur von seinen Nachbarknoten mit einer neuen Information erreicht werden und folglich nicht öfter hinzugefügt werden als die Anzahl seiner Nachbarknoten, und diese ist konstant. Die zweite Ausnahme entsteht, wenn zwei Referenzpunkte sehr dicht beieinander liegen. Dies kann zur Folge haben, dass die Information eines der beiden Referenzpunkte im Laufe der Verbreitung verloren geht. Für diesen Fall ändert sich nur die Genauigkeit der Distanzberechnung, was jedoch in Kauf genommen werden kann, da die beiden Referenzpunkte nah beieinander liegen und der Fehler somit akzeptabel ist. An der Komplexität der Laufzeit ändert sich dadurch nichts. Es kann für die Gittergröße von N Knoten festgehalten werden, dass jeder einzelne Knoten nur konstant oft in das Band eingefügt wird und somit insgesamt O(N) Knoten in das Band eingefügt werden. Das Band wird als eine sortierte Liste repräsentiert. Durch den Einsatz geschickter Datenstrukturen (zum Beispiel eines Min-Heaps) ist das Einfügen eines Elements in die sortierte Liste in logarithmischer Laufzeit möglich, in der Anzahl der bereits sortierten Elemente. Die maximale Anzahl der Knoten, die sich gleichzeitig im Band befinden können, lässt sich über die Anzahl der Gitterknoten abschätzen, die sich am Rand des Gebietes befinden. Im Zweidimensionalen wird die Anzahl der Gitterknoten mit N = a 2 angenommen. Ist die Größe des Gebietes nicht quadratisch, verringert sich diese Komplexität auf Grund der Wellenfront zu Gunsten der kürzeren Seiten des Gebietes. Maximal können sich also zur gleichen Zeit 4a viele Knoten im Band befinden, was einer Komplexität von O(log N 1/2 ) entspricht. In der O-Notation ist dies gleichbedeutend mit

49 4.2 Fast Marching 39 O(log N). Für den zweidimensionalen Fall entspricht die Gesamtlaufzeit der Verbreitungsphase also O(N log N). Die zuvor gezeigte genauere Abschätzung entspricht sogar einer Laufzeit von O(N log N 1/2 ) Erweiterung auf die dritte Dimension Bei der Erweiterung des Algorithmus auf den dreidimensionalen Fall ändert sich für den Ablauf des Algorithmus nichts. Die Initialphase verläuft gleich. Der Referenzpunkt eines Knoten wird in der Verbreitungsphase auf die gleiche Weise an seine Nachbarknoten weitergegeben, der einzige Unterschied besteht darin, dass maximal sechs statt vier Nachbarn existieren. Jeder Knoten wird in 3D ebenso wie in 2D nur konstant oft in das Band eingefügt, jedoch ändert sich die Abschätzung der maximalen Anzahl von Knoten, die sich im Band befinden können. Wird die Anzahl aller Knoten mit N = a 3 festgelegt, so können sich maximal 6 a 2 viele Knoten gleichzeitig im Band befinden. Jeweils a 2 viele für die sechs Seiten des Gebietes. Somit kann die maximale Größe des Bandes mit O(log N 2/3 ) und die Laufzeit der Verbreitungsphase mit O(N log N 2/3 ) genauer abgeschätzt werden, was jedoch einer Laufzeit von O(N log N) entspricht.

50 40 4. Distanzberechnung

51 41 Kapitel 5 Projektionstechniken Das folgende Kapitel beschäftigt sich mit Methoden zur Projektion von Gitterknoten direkt auf die Objektoberfläche. Durch den Einsatz der Gitterdeformation wird der Objektrand nicht exakt approximiert, da die Gitterdeformationsmethode nur die Hexaedergröße vorgibt und nicht die genaue Lage der Punkte. Diese ungenaue Approximation des Objektrandes führt während der Simulation beim Einsatz der Fictitious-Boundary Methode zu einem erhöhtem Randapproximationsfehler. Um diesen Fehler zu verringern, wird mit den nachfolgend vorgestellten Methoden eine teilweise Randanpassung vorgenommen. Zuerst werden kurz allgemeine Projektionsverfahren vorgestellt, bevor das in dieser Arbeit implementierte Verfahren erläutert wird. 5.1 Allgemein In seiner Diplomarbeit beschreibt Göddeke [2004] den Einsatz verschiedener Projektionstechniken für exakt randangepasste Gitter. Ausgehend von einem exakt randangepassten Grobgitter müssen dabei neu am Objektrand entstandene Knoten auf die Objektoberfläche projiziert werden. Bei der Projektion mit kürzesten Abständen wird für die Gitterknoten zuerst der kürzeste Abstand zur Objektoberfläche in einem Punkt bestimmt und dann die Position des Knotens auf diesen Punkt verschoben. Die Problematik dieser Projektion ist die Uneindeutigkeit des Punktes, in dem die kürzeste Distanz zur Objektoberfläche angenommen wird (siehe Abbildung 5.1). Bei runden Objektoberflächen kann es vorkommen, dass die Distanz des Knotens zur Oberfläche in mehreren Punkten gleich ist, welche jedoch zu unterschiedlichen Gitterqualitäten führen. Die gewichtete Projektion bestimmt für einen Knoten eine Projektionsrichtung. Diese wird aus den Normalen der Hexaederseitenflächen bestimmt, die zu dem Knoten inzident sind. Bei dieser Technik führt die Richtung der Projektion nicht immer zu einem Schnittpunkt mit der Objektoberfläche und kann zu invertierten Hexaedern führen. Eine dritte vorgestellte Technik ist die Umbrella-Projektion, basierend auf aktiven Konturen (engl. active contours, snakes). Dabei werden die Knoten des Gitters, die die Objektoberfläche repräsentieren, schrittweise an Hand von Distanzinformationen an die Objektoberfläche angenähert. Nach jedem Schritt wird das Gitter geglättet, um Verzerrungen zu vermeiden. Diese Methode ist erfolgversprechend, kann jedoch auch zu invertierten Hexaedern führen. Alle drei Projektionstechniken haben das gemeinsame Problem, dass eine gute Projektionsrichtung heuristisch nicht trivial zu bestimmen ist.

52 42 5. Projektionstechniken Abbildung 5.1: Uneindeutigkeit der Projektion mit kürzesten Abständen. Es kann kein eindeutiger Zielpunkt für die Projektion des Punktes p mit kürzestem Abstand bestimmt werden. 5.2 Kantenprojektion Im Rahmen dieser Arbeit entstehen Gitter, die im Gegensatz zu der Arbeit von Göddeke [2004] im Inneren des Gebietes keine Löcher besitzen, welche die Objektoberfläche beschreiben. Es existieren also auch innerhalb des Objekts Hexaeder, die jedoch mit der Fictitious-Boundary Methode aus der eigentlichen Simulation ausgeblendet werden. Werden die Knoten betrachtet, die für die Projektion in Frage kommen, führt dies zu folgender Beobachtung: Ein außerhalb des Objekts liegender Knoten besitzt mindestens einen Nachbarknoten, der sich innerhalb des Objekts befindet (siehe Abbildung 5.2). Folglich sind die Knoten für eine mögliche Projektion durch Kanten verbunden, die zwangsweise die Objektoberfläche schneiden müssen. Somit können diese Kanten zur Bestimmung der Richtung für die Projektion genutzt werden. Es gibt für diese Projektion zwei grundlegende Möglichkeiten: die Projektion von Knoten außerhalb des Objekts auf die Objektoberfläche und die Projektion innerer Knoten. Beide Fälle sind jedoch in ihrer Funktionsweise äquivalent und so wird nachfolgend nur die Projektion innerer Knoten beschrieben Projektionsrichtung Besitzt ein Knoten i im Inneren des Objekts genau einen Nachbarknoten j, der sich außerhalb befindet, so kann die Kante zwischen beiden Knoten als Vektor interpretiert werden, der von Knoten i zu Knoten j gerichtet ist. Dieser Vektor ist der Richtungsvektor für einen Strahl, der von Knoten i gesendet wird und für den der Schnittpunkt mit der Objektoberfläche bestimmt werden soll. Für den Schnitt kommen nur Dreiecke der Objektoberfläche in Frage, die sich zwischen den beiden Knoten befinden. Um eine minimierte Menge in Frage kommender Dreiecke zu bestimmen, kann somit wieder der Spezialbaum mit einer Tiefensuche für die Koordinaten beider Knoten genutzt werden. Da sich ein Knoten innen und der andere außen befindet und die Objektoberfläche geschlossen ist, muss mindestens ein Schnittpunkt existieren. Wurde mehr als ein Schnittpunkt gefunden, so wird derjenige für die Projektion gewählt, der die geringste Distanz zum Knoten i besitzt. Für den Fall, dass ein innerer Knoten mehrere Nachbarknoten besitzt, die sich außerhalb des Objekts befinden, können alle zwischen den Knoten befindlichen Kanten zur Bestimmung der Rich-

53 5.2 Kantenprojektion 43 Abbildung 5.2: Idee zur Bestimmung der Projektionsrichtung an Hand von Kanten. Kandidaten für die Projektion im Inneren des Objekts besitzen Knoten außerhalb, mit denen sie durch Kanten verbunden sind und umgekehrt. tung benutzt werden. Aus allen Kanten zu Nachbarknoten, die sich außerhalb des Objekts befinden, werden Vektoren gebildet und anschließend für die Projektionsrichtung gemittelt. Dieser Vorgang verspricht eine gute Approximation für die Richtung der Projektion (siehe Abbildung 5.3), beinhaltet jedoch eine gewisse Problematik beim Bestimmen der Dreiecke für die Schnittberechnung. Der Spezialbaum liefert mit einer Tiefensuche für zwei Punkte die Dreiecke, die sich zwischen deren Koordinaten befinden. Geschieht dies für nur einen Knoten innerhalb des Objekts und einen Nachbarknoten außerhalb, so müssen sich auf Grund der geschlossenen Objektoberfläche Dreiecke dazwischen befinden. Die Tiefensuche im Spezialbaum liefert dann eine Dreiecksmenge, die zu einem Schnittpunkt führen muss. Der erste Punkt für die Tiefensuche wird durch den inneren Knoten bestimmt, der zweite Punkt könnte durch Addition des Richtungsvektors zum Knoten i bestimmt werden. Ein gemittelter Richtungsvektor kann jedoch beliebig kurz sein, und daher könnte sich der zweite Punkt für die Tiefensuche noch im Inneren des Objekts befinden. Dadurch könnte die Tiefensuche eine leere Menge Dreiecke liefern und keinen Schnittpunkt mit der Objektoberfläche ergeben. Daher wird für die Tiefensuche ein Hüllkörper aus allen in die Berechnung eingehenden Knoten bestimmt, also aus dem Knoten i und all seinen Nachbarknoten, die sich außerhalb des Objekts befinden. Die minimalen und maximalen Koordinaten dieses Hüllkörpers liefern zwei Punkte für die Tiefensuche. Dies garantiert, dass eine Dreiecksmenge bestimmt wird, die einen Schnittpunkt liefert, da alle zwischen den Knoten befindlichen Dreiecke bestimmt werden. Wie bei den zuvor vorgestellten Projektionstechniken kann diese Methode zu schlechten Hexaederzellen, im Sinne der in Kapitel vorgestellten Qualitätskriterien führen. Daher müssen nach jeder Projektion eines Knotens diese Kriterien für alle zu diesem Knoten inzidenten Hexaeder überprüft werden. Ist ein invertierter Hexaeder entstanden oder wird ein Toleranzwert für eines der Kriterien überschritten, so muss die Projektion rückgängig gemacht werden. Dies garantiert, dass durch die Projektion die Gitterqualität nur in einem vom Anwender bestimmten Maße verschlechtert wird.

54 44 5. Projektionstechniken Abbildung 5.3: Durch Kanten bestimmte Richtung für die Projektion von Knoten auf die Objektoberfläche Algorithmus Die Projektion von äußeren Knoten erfolgt analog. Dies führt zu dem Problem, dass für jeden Knoten, der für die Projektion in Frage kommt, mindestens ein anderer existiert, der ebenfalls projiziert werden kann. Es muss also entschieden werden, für welchen Knoten die Projektion zuerst versucht werden soll. Dazu existieren drei verschiedene Varianten. Entweder es werden nur innere oder nur äußere Knoten projiziert, oder es wird heuristisch entschieden, welche Knoten zuerst projiziert werden. Theoretisch ist die Projektion innerer Knoten für eine CFD-Simulation zu bevorzugen, da durch sie mehr und kleinere Hexaeder am Objektrand entstehen. Werden äußere Knoten projiziert, so entstehen größere Hexaeder am Objektrand. Eine einfache Möglichkeit heuristisch zu entscheiden, welche Knoten zuerst projiziert werden sollen, ist über die Distanz zu den berechneten Punkten für die Projektion. Intuitiv sollten Knoten zuerst projiziert werden, die sich bereits nah am Objektrand befinden, da sie die geringste Verzerrung der Hexaeder implizieren. Die Abbildung 5.4 zeigt Beispiele für die drei Projektionsmöglichkeiten. Bereits in diesem relativ simplen Beispiel sind Knoten zu sehen, die durch diese Methode nicht projiziert werden, obwohl sie sich nahe der Objektoberfläche befinden (siehe Abbildung 5.5). Teilweise lässt sich dies erreichen, indem für jeden inneren Knoten überprüft wird, ob sein in jedem Gitterelement diagonal gegenüber liegender Knoten außerhalb des Objekts liegt. Ist dies der Fall, so kann ein Strahl von einem Knoten zum anderen gesendet werden und der Schnittpunkt mit der Objektoberfläche kann als möglicher Projektionspunkt bewertet werden. In der dritten Dimension, mit Hexaedern, kann dieser Fall ebenso auftreten und bearbeitet werden. Dabei wird für einen inneren Knoten überprüft, ob im Hexaeder sein diagonal gegenüber liegender Knoten außerhalb des Objekts liegt. Mit diesen Techniken werden pro Knoten mehrere Richtungen zur Projektion getestet und diejenige gewählt, die das beste Ergebnis verspricht, also in der Heuristik die kürzeste Distanz zum Objektrand überwindet. Diese Beobachtungen führen zu folgendem Algorithmus: 1. Initialisiere eine Prioritätsliste (engl. priority queue), die nach Distanzinformationen sortiert wird, und iteriere über alle Knoten des Gitters. Falls der Knoten sich innerhalb des Objekts befindet, bestimme mit den zuvor beschriebenen vier Heuristiken Knoten, die sich außerhalb des Objekts befinden. Be-

55 5.2 Kantenprojektion 45 Abbildung 5.4: Darstellung verschiedener Projektionsmöglichkeiten. Links-oben: Ausgangssituation vor der Projektion. Rechts-oben: Projektion innerer Knoten. Links-unten: Projektion äußerer Knoten. Rechts-unten: Heuristische Kombination an Hand von Distanzinformationen zur Objektoberfläche. Abbildung 5.5: Nicht erkannte für die Projektion geeignete Knoten der heuristischen Projektion. Durch Kreise wurden die Knoten markiert, für deren Projektion eine gesonderte Heuristik eingesetzt werden muss. stimme Projektionsrichtungen und Schnittpunkte mit der Objektoberfläche. Speichere den Knoten, mit den jeweiligen Projektionspunkten und ihren Distanzen in der Prioritätsliste. Falls der Knoten sich außerhalb des Objekts befindet, bestimme mit den zuvor beschriebenen vier Heuristiken Knoten, die sich innerhalb des Objekts befinden. Bestimme Projektionsrichtungen und Schnittpunkte mit der Objektoberfläche. Speichere den Knoten, mit den jeweiligen Projektionspunkten und ihren Distanzen in der Prioritätsliste. 2. Entferne den Knoten mit der geringsten Distanz aus der Prioritätsliste. Falls der Knoten nicht bereits projiziert wurde, projiziere ihn auf den berechneten Projektionspunkt und überprüfe, ob sich die Qualität inzidenter Hexaeder noch innerhalb der Toleranzwerte befindet. Falls die Toleranzwerte nicht überschritten wurden, markiere den Knoten als projiziert,

56 46 5. Projektionstechniken um eine erneute Projektion zu verhindern. Falls die Toleranzwerte überschritten wurden, stelle die ursprüngliche Knotenposition wieder her. Dieser Schritt verhindert unter anderem, dass zwei benachbarte für eine Projektion in Frage kommende Knoten, auch beide projiziert werden. 3. Wiederhole Schritt zwei bis die Prioritätsliste leer ist. Dieser Algorithmus testet also verschiedene Projektionsrichtungen beginnend bei derjenigen, die die kürzeste Distanz zur Objektoberfläche überbrückt.

57 47 Kapitel 6 INGRID3DDEFORM Das folgende Kapitel enthält eine kurze Übersicht der Funktionen von INGRID3DDEFORM, der in dieser Arbeit entwickelten Software. Die graphische Benutzeroberfläche (engl. Graphical User Interface, Abk. GUI) hat sich im Vergleich zur Vorgängerversion INGRID3D nur unwesentlich verändert (siehe Abbildung 6.1). Eine wichtige interne Änderung ist die Integration des FEATFLOW- Pakets. Das FEATFLOW-Paket beinhaltet zum einen die Methode der Gitterdeformation und zum anderen den Navier-Stokes-Löser. Für eine Strömungssimulation müssen gewisse Abhängigkeiten der entwickelten und eingesetzten Verfahren beachtet werden. Diese werden im ersten Abschnitt dieses Kapitels erläutert, um die Zusammenhänge zwischen den einzelnen Methoden darzustellen. Dazu wird ein typischer Ablauf der Schritte erläutert, die benötigt werden, um eine Strömung mit dem Navier-Stokes-Löser zu simulieren. Im zweiten Abschnitt dieses Kapitels werden die verschiedenen Visualisierungsmöglichkeiten der in INGRID3DDEFORM berechneten Ergebnisse vorgestellt, da sie ein wichtiger Bestandteil des folgenden Kapitels 7 sind. Abschließend werden Funktionen erläutert, die zwar bereits in der Software integriert, jedoch noch nicht interaktiv steuerbar sind. 6.1 Simulationsverlauf Die Hauptaufgabe der Software ist der Aufbau einer Gitterhierarchie, mit deren Hilfe eine Lösung der Strömungssimulation berechnet werden kann. Beginnend mit einem Grobgitter wird dazu jede Ebene der Hierarchie durch reguläre Unterteilung aus der vorherigen erstellt. In der Software kann dabei jeweils nur mit dem Gitter der Hierarchie interagiert werden, welches das aktuell feinste Gitter darstellt. Jede Ebene der Hierarchie muss an FEATFLOW übergeben werden, um die Methode zur Gitterdeformation, ebenso wie den Navier-Stokes-Löser, nutzen zu können. Zu Beginn einer Simulation werden ein Grobgitter und ein Objekt geladen. Ist das aktuelle Gitter in FEATFLOW initialisiert, kann die in Kapitel beschriebenen Methode zu Gitterdeformation benutzt werden. Bevor die Gitterdeformation gestartet werden kann, muss im ersten Schritt die Punktklassifizierung und daraufhin die Berechnung der Monitorfunktion erfolgen. Diese drei Schritte sind voneinander abhängig und müssen exakt in dieser Reihenfolge durchgeführt werden: a) Punktklassifizierung Für die Initialphase der Fast Marching Methode (vergleiche Kapitel 4.2), müssen die Kanten bekannt sein, die die Objektoberfläche schneiden. Jede Kante, die sich mit einem Knoten innerhalb des Objekts und mit einem Knoten außerhalb befindet, muss die Objektoberfläche

58 48 6. INGRID3DDEFORM Abbildung 6.1: Aufbau von INGRID3DDEFORM. schneiden. Dazu wird, für jeden Knoten die erforderliche Punktklassifizierung mit Hilfe des Spezialbaumes (siehe Kapitel 3.3) durchgeführt. b) Distanzfeld Mit Hilfe der Fast Marching Methode wird für das Gitter ein approximiertes Distanzfeld zur Objektoberfläche berechnet, welches als Monitorfunktion für die Gitterdeformation verwendet wird. Dabei wird das Distanzfeld mit zwei Faktoren skaliert. Die Distanz zu inneren Knoten wird mit einem höheren Faktor multipliziert, als die Distanz zu äußeren Knoten. Dadurch können die Hexaeder innerhalb des Objekts größer werden, als gleich weit entfernt liegende außerhalb des Objekts. Dies impliziert, dass während der Gitterdeformation mehr Knoten aus dem Inneren des Objekts zur Objektoberfläche bewegt werden. c) Gitterdeformation Nach der Berechnung des Distanzfeldes kann die Gitterdeformation gestartet werden. Vor einer Deformation können Parameter, wie zum Beispiel der Schwellwert ɛ für die kleinste erlaubte Hexaedergröße, in einer Datei eingestellt werden. Das Einstellen der Parameter vor jedem Deformationsschritt erlaubt es, interaktiven Einfluss auf die Gitterdeformation auszuüben. Führt ein zu klein gewähltes ɛ zu einem verzerrten Gitter, so kann es angepasst werden, um in einem neuen Deformationsschritt das Gitter wieder zu entzerren. Abschließend werden die Positionen der Knoten an Hand der Daten aus FEATFLOW in IN- GRID3DDEFORM aktualisiert. Die Gitterdeformation kann mit diesen drei Teilschritten beliebig oft wiederholt werden. Ist eine Gitterdeformation erfolgt, so ist es möglich das Gitter auf entsprechende Qualitätskriterien (vergleiche Kapitel 2.3.1) zu untersuchen und gegebenenfalls mit einem Glättungsoperator zu glätten. Nachdem eine akzeptable Gitterebene erstellt wurde, kann aus ihr die nächste Ebene der Hierarchie erstellt werden. Dabei entstehen durch reguläre Unterteilung, aus jedem Hexaeder acht neue. Das neue, feinste Gitter der Hierarchie kann wiederum deformiert oder geglättet werden, bis es den gewünschten Anforderungen entspricht.

59 6.2 Visualisierung 49 Ist auf dem beschriebenen Weg eine komplette Gitterhierarchie erstellt, so können zur Verbesserung der Genauigkeit der Fictitious-Boundary Methode die in Kapitel 5 beschriebenen Projektionstechniken angewendet werden. Dazu ist wieder zuerst die Punktklassifizierung durchzuführen, da sonst nicht gewährleistet werden kann, dass Schnittpunkte mit der Objektoberfläche gefunden werden. Um dem Anwender die größtmögliche Freiheit zu gewährleisten, steht dabei jede implementierte Projektionstechnik einzeln zur Verfügung, ebenso wie die kombinierte Variante. Dabei erfolgt die Projektion eines Knotens auf die Objektoberfläche nur dann, falls sich die Gitterqualität dadurch nicht zu stark verschlechtert. Die Toleranzwerte für die Qualitätskriterien sind in der Software integriert. Die Gitterqualität kann nach der Projektion wiederum neu berechnet werden, um das entstandene Gitter auf Tauglichkeit für den Löser zu überprüfen. Nach erfolgter Projektion kann im letzten Schritt der Navier-Stokes-Löser mit Hilfe der erstellten Gitterhierarchie gestartet werden. Dazu ist es wiederum möglich verschiedene Parameter einzustellen, auf die hier jedoch nicht näher eingegangen wird. Ist die Simulation abgeschlossen, wird aus FEATFLOW eine Lösungsdatei herausgeschrieben, die mit der Software GMV (siehe Kapitel 2.6) betrachtet werden kann. Zusätzlich dazu, existiert die Option eine Datei herauszuschreiben und diese in der Software Paraview zu importieren und zu visualisieren. An die Software IN- GRID3DDEFORM wird der berechnete Druck und die berechnete Geschwindigkeit des Fluids in jedem Knoten zur internen Visualisierung der berechneten Simulation zurückgegeben. 6.2 Visualisierung INGRID3DDEFORM enthält im Vergleich zu INGRID3D einige veränderte Visualisierungsmöglichkeiten, die nachfolgend vorgestellt werden. Objekt Die Optionen zur Visualisierung des Objekts haben sich im Vergleich zur Vorgängerversion nicht geändert. Das Objekt kann normal, transparent oder gar nicht dargestellt werden. Zusätzlich dazu kann die Oberflächentriangulierung durch das Zeichnen der Kanten jedes sichtbaren Dreiecks hervorgehoben werden. Gitter Zur besseren Visualisierung der verschiedenen Gittereigenschaften wurden die bestehenden Zeichenoptionen modifiziert. Das Gitter kann weiterhin falls benötigt als Gesamtes gezeichnet werden, jedoch wird diese Darstellung bereits bei einigen tausend Hexaedern sehr unübersichtlich. Durch die Option near object werden nur Knoten in direkter Nähe zur Objektoberfläche dargestellt, also die inneren Knoten, die einen Nachbarn außerhalb des Objekts besitzen und umgekehrt. Dazu muss zuerst die Punktklassifizierung durchgeführt worden sein. Ist dies geschehen, so werden die Knoten schwarz gezeichnet, die einen Nachbarknoten innerhalb des Objekts oder direkt auf der Objektoberfläche besitzen, falls sie sich selbst außerhalb des Objekts befinden. Ebenfalls werden Knoten blau dargestellt, die sich im Inneren des Objekts befinden und einen Nachbarknoten außerhalb oder direkt auf der Objektoberfläche besitzen. Falls sich Knoten direkt auf der Objektoberfläche befinden, so werden diese rot dargestellt. Zur anschaulichen Visualisierung des Gitters an der Objektoberfläche werden die Randknoten mit ihren inzidenten Kanten gezeichnet (siehe Abbildung 6.2). Wird die Option aproximated object gewählt, so werden diejenigen Hexaederseitenflächen orange dargestellt, die sich mit ihren vier Knoten innerhalb des Objekts, beziehungsweise direkt auf der Oberfläche befinden. Diese Option verdeutlicht, was der spätere Löser als Fictitious-Boundary

60 50 6. INGRID3DDEFORM Abbildung 6.2: Zeichenoptionen für Gitterknoten in der Nähe der Objektoberfläche. Links: Darstellung mit der Option near object ohne Randprojektion. Rechts: Darstellung mit der Option near object mit Randprojektion. erkennt. Ist eine Projektion der Knoten auf die Objektoberfläche erfolgt, so werden bei dieser Option Seitenflächen, die sich mit allen vier Knoten auf der Oberfläche des Objekts befinden, rot dargestellt und alle Flächen, die noch mindestens einen Knoten im Inneren des Objekts besitzen, weiterhin orange. Die roten Flächen stellen dabei die exakt randangepassten Flächen dar (siehe Abbildung 6.3). Abbildung 6.3: Zeichenoptionen für Hexaederseitenflächen, die das Objekt approximieren. Links: Darstellung mit der Option aproximated object ohne Randprojektion. Rechts: Darstellung mit der Option aproximated object mit Randprojektion. Deutlich sichtbar ist bereits eine Verbesserung der Approximation. Die Option inner faces zeigt zum einen nur diejenigen Seitenflächen in blau, die sich mit allen vier Knoten im Inneren des Objekts befinden, und zum anderen den Teil des Gitters, der zu Randknoten inzident, jedoch nicht ins Innere des Objekts gerichtet ist. Die Abbildung 6.4 zeigt ein Beispiel dieser Zeichenoption. Gitterschichten Die Darstellung verschiedener Gitterschichten ist bereits in INGRID3D integriert gewesen. Aus der regulären Struktur der Gitter können Ebenen zusammenhängender Hexaederseitenflächen extrahiert und dargestellt werden. Die verschiedenen Schichten des Gitters lassen sich mit verschiedenen Datenmengen betrachten, wobei die Schichten in drei verschiedenen Orientierungen angezeigt werden können. Es ist maximal eine Ebene pro Orientierungen darstellbar. Die Option grid edges zeichnet nur die Kanten der Seitenflächen, die sich in der ausgewählten Gitterschicht befinden.

61 6.3 Zusatzfunktionen 51 Abbildung 6.4: Zeichenoptionen für Hexaederseitenflächen, die sich innerhalb des Objekts befinden. Darstellung mit der Option inner faces mit Randprojektion. Ohne Randprojektion würde sich die Darstellung nicht von der Darstellung der Objektapproximation unterscheiden (siehe Abbildung 6.3 links). Die Option monitorfunction zeichnet die berechnete Monitorfunktion für die Gitterdeformation. Die Option velocity field stellt das berechnete Geschwindigkeitsfeld dar. Durch die Option pressure wird das Druckfeld veranschaulicht. Beispielhaft zeigt Abbildung 6.5 eine Möglichkeit der Darstellung der errechneten Daten. Abbildung 6.5: Visualisierung eines Geschwindigkeitsfeldes mit drei verschieden orientierten Gitterschichten. Dargestellt sind die Optionen grid edges und velocity field. 6.3 Zusatzfunktionen In diesem Abschnitt werden einige Funktionen beschrieben, die zwar bereits in die Software integriert wurden, jedoch bisher nur intern funktionieren und noch nicht interaktiv steuerbar sind. Gitterexport Die volle Kompatibilität mit dem F EAT F LOW-Paket erlaubt die Benutzung einer internen

62 52 6. INGRID3DDEFORM Routine des FEATFLOW-Pakets zum Exportieren der gesamten Datenstruktur. Dadurch ist es möglich, ein erstelltes Gitter in ein Datenformat zu exportieren, welches von anderen Programmen des FEATFLOW-Pakets wieder eingelesen und zur Simulation einer Strömung eingesetzt werden kann. Durch diesen Gitterexport ist es somit zum Beispiel möglich, mit Hilfe der erstellten Gitterhierarchie auch turbulente Strömungen zu berechnen. Ebenenexport Während der Arbeit an der Visualisierung berechneter Simulationen in der Software Paraview hat sich herausgestellt, dass sich einzelne Gitterschichten mit den berechneten Daten sehr gut zur Visualisierung der Simulation eignen. Für alle Schichten, die in IN- GRID3DDEFORM darstellbar sind, wurde somit ein Export in ein Datenformat entwickelt, welches in Paraview eingelesen und visualisiert werden kann. Skalierung des Gitters Für eine wissenschaftliche Simulation sind exakte Ausmaße für das Simulationsgebiet wichtig und damit auch für das erstellte Gitter. In der bisherigen Version, die prototypisch angesehen wurde, war dies noch nicht von Interesse, daher konnten zuvor für INGRID3DDEFORM keine exakten Maße für ein Gitter definiert werden. Um dies zu beheben wurde die Möglichkeit zur Skalierung und Verschiebung des Gitters integriert, mit deren Hilfe genau definierte Ausmaße eingehalten werden können. Skalierung des Objekts Damit ein Objekt exakt in das Strömungsgebiet platziert werden kann, mussten Methoden zur Skalierung der Größe des Objekts und zur Verschiebung seiner Position innerhalb des Gebiets integriert werden. Skalierung der Monitorfunktion Wie bereits in Kapitel dargestellt, bietet die Berechnung der Monitorfunktion verschiedene heuristische Möglichkeiten zur Anpassung der Gitterdeformation. Eine davon bietet die unterschiedliche Skalierung des Distanzfeldes. Die Distanz zu Knoten innerhalb des Objekts kann dabei mit einem anderen Faktor skaliert werden als die Distanz zu Knoten außerhalb des Objekts. Die Möglichkeit verschiedene Faktoren festzulegen ist bereits in INGRID3DDEFORM integriert (siehe Abbildung 6.6). Abbildung 6.6: Visualisierung der Monitorfunktion für eine Kugel mit unterschiedlicher Skalierung. Die Farbskala verläuft von rot für den Funktionswert größer als 1, bis blau für den Wert nahe 0. Links: Die Distanz der inneren Knoten wurde mit Faktor 2 skaliert. Rechts: Die Distanz zu inneren Knoten wurde mit Faktor 6 skaliert und die Distanz zu äußeren Knoten mit Faktor 0,5.

63 53 Kapitel 7 Resultate Das folgende Kapitel zeigt die Resultate der verwendeten Methoden, die mit der erstellten Software INGRID3DDEFORM gewonnen werden konnten. Zunächst werden einige Objekte vorgestellt, die bei den anschließenden Tests verwendet werden. Danach werden die Ergebnisse der entwickelten Methoden untersucht. Zuerst wird der Spezialbaum sowohl in seinem Aufbau als auch in seiner Funktionsweise als Suchdatenstruktur untersucht, mit dessen Hilfe die Punktklassifizierung effizient durchgeführt werden kann. Als nächstes werden die Ergebnisse zur Berechnung kürzester Distanzen mit der Fast Marching Methode vorgestellt. Der vierte Abschnitt präsentiert die Resultate der Gitterdeformation. Dabei wird zum einen untersucht, wie sich die ungenaue Berechnung der Distanzen auf die Gitterdeformation auswirkt und zum anderen wird die Verbesserung der Gitterqualität durch die Benutzung der Mehrgitterdeformation analysiert. Der fünfte Abschnitt präsentiert die Ergebnisse der Projektionstechniken zur Verbesserung der Randapproximation des Objektes. Um die Qualität der erstellten Approximation des Objektes für die Simulation zu überprüfen, wird das Szenario des DFG-Benchmarks umgesetzt, zu dem Referenzwerte existieren. Abschließend werden die Ergebnisse bewertet und Vor- sowie Nachteile der verwendeten Methoden diskutiert. Die Messung der Laufzeiten erfolgt ausschließlich auf einem Notebook mit Intel R Core TM 2 CPU T7200 mit 2,00 GHz Taktfrequenz und 2 GB Arbeitsspeicher, wobei nur ein CPU-Kern benutzt wurde. Alle nachfolgend beschriebenen Zeiten werden in Millisekunden angegeben. 7.1 Testobjekte Im folgenden Abschnitt werden Testobjekte vorgestellt, die in dieser Übersicht nach ihrem Detailgrad aufgelistet sind Testobjekt 1 und 2 Die ersten beiden Testobjekte stellen einfache Geometrien dar. Das erste Objekt definiert eine Kugel, bestehend aus Dreiecken. Sie kann auf einfache Weise analytisch beschrieben werden und erlaubt daher den problemlosen Vergleich zwischen der Triangulierung und der exakten Definition einer Kugel. Bei dem zweiten Objekt handelt es sich um einen Würfel, bestehend aus Dreiecken (siehe Abbildung 7.1).

64 54 7. Resultate Abbildung 7.1: Testobjekt 1 und Testobjekt 3 und 4 Testobjekt 3 beschreibt eine deformierte Fläche und besteht aus Dreiecken. Dieses Objekt stellt höhere Anforderungen an die Gitteranpassung, da es stark gekrümmte Flächen besitzt. Das vierte Objekt wird Verschlingung genannt, es besteht aus drei gleichen Einzelelementen, die ineinander verdreht sind. Dabei wird es durch Dreiecke beschrieben und besitzt einen hohen Krümmungsgrad, welcher bei einer Randanpassung zu Problemen führt (siehe Abbildung 7.2). Abbildung 7.2: Testobjekt 3 und Testobjekt 5 und 6 Das fünfte Testobjekt ist das Modell eines VW Golf mit vielen kleinen Details und stellt einen möglichen Anwendungsfall für ein Windkanalszenario dar. Das Objekt besteht aus Dreiecken und besitzt Räder, Seitenspiegel, Türgriffe und einen Kühlergrill. Diese Details mussten bei der exakten Randanpassung in der Vorgängerversion INGRID3D entfernt werden, da sie zu nicht lösbaren Problemen geführt haben. Das letzte Testobjekt Manta/Taucher besteht aus zwei einzelnen Objekten, einem Mantarochen mit nach oben gebogenen Flossen und einem gröber aufgelö-

65 7.2 Punktklassifizierung 55 sten Taucher (siehe Abbildung 7.3). Beide Geometrien bestehen zusammen aus Dreiecken. Abbildung 7.3: Testobjekt 5 und Punktklassifizierung Für die Punktklassifizierung wird der Aufbau des Spezialbaumes und seine Funktionsweise als Suchdatenstruktur an Hand von drei Testobjekten untersucht. Das wichtigste Kriterium für den Aufbau des Spezialbaumes ist die heuristisch bestimmte Abbruchbedingung. Die rekursive Unterteilung eines Knotens wird gestoppt, falls zu viele Dreiecke gleichzeitig in beiden Kinderknoten referenziert werden (siehe Kapitel 3.3.1). Es wird überprüft, wie sich der Aufbau des Spezialbaumes und die daraus resultierende Laufzeit für die Punktklassifizierung verhält, falls 10%, 20%, 30% oder 40% Mehrfachreferenzierungen erlaubt werden. Der Spezialbaum wird zuerst aufgebaut und dann mit Hilfe einer Breitensuche statistisch erfasst. Dabei werden folgende Daten erfasst: Zeit t Die Zeit zum Aufbau des Baumes. Baumknoten I Die Knotenzahl des Baumes, als erstes Indiz für seine Größe. referenzierte Dreiecke M Die Gesamtzahl referenzierter Dreiecke, als zweites Indiz für die Größe des Spezialbaumes. Dreiecke pro Blatt M/B Die durchschnittliche Anzahl referenzierter Dreiecke pro Blatt des Spezialbaumes, als Indiz für die Geschwindigkeit bei der Punktklassifizierung. maximale Dreiecke max(m/b) Die maximale Anzahl von Dreiecken in einem Blatt. Tiefe pro Blatt d/b Die durchschnittliche Tiefe (engl. depth) der Blätter, als Indiz für die durchschnittliche Pfadlänge der Tiefensuche im Spezialbaum.

66 56 7. Resultate maximale Tiefe max(d) Die maximale Tiefe des Baumes. Für die Funktionsweise der Datenstruktur bei der Klassifizierung von Punkten werden die aufgebauten Datenstrukturen mit einer aus vier Ebenen bestehenden Gitterhierarchie getestet. Die Gitter werden dabei an die Ausdehnungen des Objekts angepasst, so dass sich eine möglichst große Zahl von Knoten innerhalb der Hüllkörper der Objekte befindet, da nur diese Knoten eine Anfrage an den Spezialbaum stellen. Knoten außerhalb der Hüllkörper können sich nicht innerhalb des Objekts befinden und werden vorab in einem Test aussortiert. Um eine repräsentative Untersuchung durchzuführen, wird das Grobgitter der Hierarchie einmal deformiert. Anderenfalls würden für alle Knoten, die entlang von zur Strahlrichtung parallelen Geraden liegen, die gleichen Ergebnisse bestimmt werden. Ist die Strahlrichtung parallel zur y-achse, verläuft die Suche im Spezialbaum für alle Knoten exakt gleich, die die gleichen x- und z-koordinaten besitzen. Durch die Deformation des Gitters wird die Kollinearität der Knoten weitestgehend aufgehoben (siehe Abbildung 7.4). Abbildung 7.4: Initiale Gitter zur Untersuchung der Punktklassifizierung mithilfe des Spezialbaumes. Dargestellt sind die Gitter für Testobjekt 1 und 8. Zur Veranschaulichung wird das Gitter jeweils einmal mit und einmal ohne das Objekt dargestellt. Damit die Erfassung der statistischen Daten beim Test der Punktklassifizierung die tatsächlichen Laufzeiten nicht verfälscht, wurde der Test jeweils zweimal durchgeführt, zuerst zur Bestimmung der Laufzeit und daraufhin mit Erfassung der Daten. Auf diese Weise werden folgende Daten gesammelt: Zeit t Die Zeit zur Klassifizierung aller Knoten. Zeit pro Gitterknoten t/n Die durchschnittliche Zeit, die pro Gitterknoten gebraucht wurde. Dreiecke gesamt M Die Gesamtzahl von Dreiecken, für die ein Strahl-Schnitttest durchgeführt wurde.

67 7.2 Punktklassifizierung 57 Dreiecke pro Gitterknoten M/N Die durchschnittliche Anzahl von Dreiecken, die pro Gitterknoten auf einen Schnitt mit dem Strahl getestet wurden. maximale Dreiecke max(m/n) Die maximale Anzahl von Dreiecken, die für einen Gitterknoten auf einen Schnitt mit dem Strahl getestet wurden. Tiefe pro Knoten d/n Die durchschnittliche Tiefe der Blätter, die pro Gitterknoten mit der Tiefensuche erreicht wurden, also die Pfadlänge der Tiefensuche pro Knoten. maximale Tiefe max(d) Die maximale Tiefe eines Blattes, der mit der Tiefensuche erreicht wurde Testobjekt 1 Als erstes Objekt wurde die Kugel analysiert, da sie ein regelmäßiges Objekt darstellt. Die Tabelle 7.1 zeigt den Aufbau der Datenstruktur mit den vier unterschiedlichen Abbruchbedingungen. Wie erwartet wird der Spezialbaum um so größer, je mehr Mehrfachreferenzierungen erlaubt werden. Dabei verdreifacht sich in etwa die Zahl der Baumknoten pro 10%, während sich die Zahl referenzierter Dreiecke in etwa verdoppelt. Dies impliziert ein exponentielles Größenwachstum des Baumes in den erlaubten Mehrfachreferenzierungen. Im Gegenzug dazu sinkt die Anzahl der Dreiecke pro Blatt, was eine bessere Laufzeit mit Erhöhung der erlaubten Mehrfachreferenzierung erwarten lässt. Die Zeit t zum Aufbau der Datenstruktur spielt für die Laufzeit der gesamten CFD-Simulation eine eher untergeordnete Rolle, da die Datenstruktur nur einmal aufgebaut wird, während die Punktklassifizierung sehr oft verwendet wird. Sie steigt jedoch mit Erhöhung der erlaubten Mehrfachreferenzierung, da dadurch die Anzahl der Knoten I und die Anzahl referenzierter Dreiecke M steigt. Die maximale Tiefe des Baumes max(d) verändert sich nur geringfügig und entspricht selbst bei der Abbruchbedingung von 40% in etwa 3 log M, während die durchschnittliche Tiefe der Blätter d/b dem Wert von 1, 5 log M entspricht. Für einen realitätsnahen Test wird die Punktklassifizierung für die vier erstellten Spezialbäume an Hand von vier Gittern einer Hierarchie, also mit unterschiedlicher Anzahl von Gitterknoten getestet. Die ermittelten Durchschnittswerte der einzelnen Hierarchieebenen ähneln sich dabei jedoch so stark, dass die Zeit zur Klassifizierung eines Gitterknotens nicht von der Gesamtzahl getesteter Gitterknoten abhängt. Somit werden in der Tabelle 7.2 nur die Daten für die vierte und feinste Ebene der Gitterhierarchie gezeigt, die ca Knoten enthält. Die vollständigen Daten für alle Hierarchieebenen sind im Anhang A.1 zu finden. Die Zeit für die durchschnittliche Klassifizierung einzelner Gitterknoten sinkt dabei logarithmisch mit Erhöhung der erlaubten Mehrfachreferenzierung. Wenn die durchschnittliche Tiefe bei der Klassifizierung von Knoten d/n aus Tabelle 7.2 mit der durchschnittlichen Tiefe der Blätter des Spezialbaumes d/b aus Tabelle 7.1 verglichen wird, kann eine Entsprechung beobachtet werden Testobjekt 2 Als zweites Testobjekt wird der Würfel untersucht, der im Vergleich zur Kugel aus relativ wenigen Dreiecken besteht (ca. 3000) und ebenfalls eine regelmäßige Struktur besitzt. Die erfassten Daten beim Aufbau der Datenstruktur können Tabelle 7.3 entnommen werden.

68 58 7. Resultate Abbr. t I M M/B max(m/b) d/b max(d) 10% ,40E+4 5,51E % ,31E+5 9,46E % ,62E+5 1,54E % ,10E+6 2,99E Tabelle 7.1: Aufbau der Spezialdatenstruktur für Testobjekt 1 (Kugel, Dreiecke) und vier unterschiedliche Abbruchheuristiken. Hierarchieebene Testpunkte ( ges.) Abbr. t t/n M M/N max(m/n) d/n max(d) 10% ,22E-3 3,80E % ,37E-3 1,16E % ,53E-3 6,39E % ,22E-3 4,10E Tabelle 7.2: Test zur Punktklassifizierung mit Testobjekt 1 (Kugel, Dreiecke), der maximalen Gitterhierarchieebene und vier unterschiedlichen Abbruchheuristiken. Die gewonnenen Daten zeigen im Vergleich zur Kugel keine so deutliche Regelmäßigkeit mit Erhöhung der Mehrfachreferenzierung. Es existiert ein starker Unterschied in der Baumstruktur zwischen 10% und 20% erlaubter Mehrfachreferenzierung während sie sich bei 20% bis 40% nur noch minimal ändert. Die durchschnittliche Anzahl Dreiecke pro Blatt bleibt, mit einem Wert von 3, ebenso wie die Tiefe des Baumes, mit einem Wert von 49, konstant. Die Zahl der Knoten wächst beim Übergang von 10% zu 20% um den Faktor 55 während sie beim Übergang von 20% zu 30% nur noch um den Faktor 1,12 wächst. Besonders auffällig ist die (unerwartet hohe) maximale Tiefe des Baumes. Auf Grund der geringen Dreieckszahl von ca Dreiecken wäre eine deutlich geringere Tiefe zu erwarten. Die maximale Tiefe ist jedoch weit größer als die Tiefe des Spezialbaumes bei seinem Aufbau für die Kugel, obwohl diese aus ca. hundertmal mehr Dreiecken besteht. Die Erklärung hierfür zeigt ein Problem der verwendeten Abbruchbedingung bei vielen parallel zu den Achsen liegenden Dreiecken. Wird ein Knoten entlang einer Achse unterteilt und befindet sich eine große Anzahl von Dreiecken parallel zu dieser Unterteilung, so werden diese Dreiecke komplett einem der Kinder zugewiesen, also nicht geteilt. Dies führt dazu, dass nur wenige Dreiecke mehrfach referenziert werden im Vergleich zu der Gesamtzahl von Dreiecken, die sich in diesem Knoten befinden. Dadurch werden die zum Abbruch der Untertei- Abbr. t I M M/B max(m/b) d/b max(d) 10% ,95E % 77 2,33E-4 4,44E % 85 2,61E-4 4,99E % 118 3,82E-4 6,90E Tabelle 7.3: Aufbau der Spezialdatenstruktur für Testobjekt 2 (Würfel, Dreiecke) und vier unterschiedliche Abbruchheuristiken.

69 7.2 Punktklassifizierung 59 lung erforderlichen Mehrfachreferenzierungen kaum erreicht. Die Abbildung 7.5 veranschaulicht dieses Problem, welches schlimmstenfalls sogar dazu führen könnte, dass die Unterteilung nicht abbricht. Dieses Problem entsteht aus dem strukturellen Konzept für die Funktionsweise des Spezialbaumes und würde beim Einsatz eines Octree nicht bestehen. Es tritt jedoch nur als Sonderfall auf und lässt sich leicht durch eine zusätzliche Abbruchbedingung abfangen. Eine Möglichkeit für eine solche Abbruchbedinung, besteht aus der Definition einer maximalen Tiefe, bei der die Unterteilung eines Knotens abgebrochen wird. Um eine logarithmische Laufzeit für die Tiefensuche im Spezialbaum zu gewährleisten, kann die maximale Tiefe logarithmisch zur Anzahl der Dreiecke der Oberflächentriangulierung gewählt werden. Abbildung 7.5: Ungünstiges Objekt für den Aufbau des Spezialbaumes. Befinden sich in der senkrechten Wand des Objekts sehr viele Dreiecke, wird die zum Abbruch der Unterteilung nötige Mehrfachreferenzierung nicht erreicht. Die Unterteilung des Objekts nähert sich der Wand, erreicht sie jedoch nicht, dadurch findet die Unterteilung immer wieder statt. Für die Laufzeit der Punktklassifizierung stellt dieses Problem jedoch keine Einschränkung dar, wie Tabelle 7.4 entnommen werden kann. Die Ergebnisse sind denen der Kugel ähnlich. Auch hierbei spielt die Anzahl der Punkte, für die der Test durchgeführt wird, keine wesentliche Rolle im durchschnittlichen Ablauf der Tiefensuche, wie Tabelle A.2 zeigt. Die durchschnittliche Tiefe der Suche entspricht den Erwartungen für eine so geringe Dreiecksmenge. Sie erhöht sich dabei nur gering mit Erhöhung der erlaubten Mehrfachreferenzierungen. Die maximale Tiefe, die bei der Tiefensuche erreicht wird, beträgt mit einem Wert von 26 also ca. die Hälfte der tatsächlichen maximalen Tiefe des Baumes von 49 (vergleiche Tabelle 7.3). Hierarchieebene Testpunkte ( ges.) Abbr. t t/n M M/N max(m/n) d/n max(d) 10% ,22E-3 3,44E % ,41E-3 5,98E % ,30E-3 5,14E % 912 9,99E-4 3,51E Tabelle 7.4: Test zur Punktklassifizierung mit Testobjekt 2 (Würfel, Dreiecke), der maximalen Gitterhierarchieebene und vier unterschiedlichen Abbruchheuristiken Testobjekt 6 Als drittes Testobjekt wird die Kombination aus einem Mantarochen und einem Taucher verwendet. Gemeinsam stellen die beiden Objekte eine relativ unregelmäßige Struktur für den Aufbau des

70 60 7. Resultate Spezialbaumes dar. Es existieren große Bereiche innerhalb des Hüllkörpers, für die kein Schnitttest durchgeführt werden muss. Es sollten dementsprechend viele Blätter existieren, die keine Dreiecke enthalten und damit zu einer geringeren durchschnittlichen Laufzeit führen. Die erfassten Daten zum Aufbau der Datenstruktur sind bei Erhöhung der Mehrfachreferenzierung, denen der Kugel ähnlich (siehe Tabelle 7.5). Die Knotenzahl verdreifacht sich in etwa mit der Erhöhung der erlaubten Mehrfachreferenzierung, während sich die Dreieckszahl ungefähr verdoppelt. Die durchschnittliche Dreieckszahl pro Blatt sinkt logarithmisch, während sich die durchschnittliche Tiefe des Baumes logarithmisch erhöht. Die erfassten Daten zur Tiefensuche sind für die maximale Gittergröße in Tabelle 7.6 zu finden. Der Ablauf der Punktklassifizierung ist dabei wie zuvor relativ unabhängig vor der verwendeten Gittergröße, wie Tabelle A.3 entnommen werden kann. Die Zeit pro Punkt verhält sich ähnlich wie bei der Kugel, ist jedoch halb so klein mit einer Ausnahme bei den 10% erlaubten Mehrfachreferenzierungen. Dies entspricht in etwa den Erwartungen, die der unregelmäßigen Dreiecksverteilung innerhalb ihres Hüllkörpers zu Grunde gelegt werden können, und findet sich in der halbierten durchschnittlichen Dreiecksmenge wieder, die pro Knoten getestet wurde. Abbr. t I M M/B max(m/b) d/b max(d) 10% 40 1,63E-3 1,90E % 74 9,77E-3 3,64E % 120 2,68E-4 6,31E % 208 6,46E-4 1,14E Tabelle 7.5: Aufbau der Spezialdatenstruktur für Testobjekt 6 (Manta/Taucher, Dreiecke) und vier unterschiedliche Abbruchheuristiken. Hierarchieebene Testpunkte ( ges.) Abbr. t t/n M M/N max(m/n) d/n max(d) 10% ,23E-3 4,10E % ,52E-3 6,12E % 970 1,06E-3 3,43E % 821 9,00E-4 2,22E Tabelle 7.6: Test zur Punktklassifizierung mit Testobjekt 6 (Manta/Taucher, Dreiecke), der maximalen Gitterhierarchieebene und vier unterschiedlichen Abbruchheuristiken Zusammenfassung Bis auf das zuvor beschriebene Problem beim Testobjekt 2 funktioniert der Aufbau des Spezialbaumes prinzipiell für die unterschiedlichen Arten von Objekten wie gewünscht. Mit der erlaubten Anzahl von Mehrfachreferenzierungen kann der zusätzliche Speicherplatzverbrauch indirekt zu Gunsten einer besseren Laufzeit der Punktklassifizierung erhöht werden. Abbildung 7.6 zeigt den tatsächlichen Speicherverbrauch in Megabyte (MB) für die unterschiedlichen Objekte mit unterschiedlichen Mehrfachreferenzierungen. Der Speicherverbrauch steigt dabei wie erwartet für alle drei Testobjekte exponentiell. Die Laufzeit für die Punktklassifizierung sinkt dabei jedoch logarithmisch, wie in Abbildung 7.7 dargestellt wird.

71 7.2 Punktklassifizierung Größe des Spezialbaumes in MB Kugel Quader Manta Taucher 1 10% 20% 30% 40% Abbruchbedingung Abbildung 7.6: Entwicklung des Speicherverbrauchs beim Aufbau des Spezialbaumes mit unterschiedlichen Abbruchbedingungen in MB. Die Skala für den Speicherverbrauch ist dabei logarithmisch skaliert. Ein linearer Anstieg in diesem Diagramm entspricht damit einem tatsächlichen exponentiellen Anstieg. 9,00E-03 8,00E-03 durchschnittliche Zeit pro Punkt 7,00E-03 6,00E-03 5,00E-03 4,00E-03 3,00E-03 2,00E-03 Kugel Quader Manta/Taucher 1,00E-03 0,00E+00 10% 20% 30% 40% Abbruchbedingung Abbildung 7.7: Entwicklung der durchschnittlichen Laufzeit der Punktklassifizierung pro Gitterknoten mit unterschiedlichen Abbruchbedingungen für den Spezialbaum. Die Laufzeiten verhalten sich dabei für die unterschiedlichen Objekte ähnlich.

72 62 7. Resultate Werden 20% Mehrfachreferenzierungen statt 10% erlaubt, bedeutet das für die Kugel, dass die Laufzeit pro Knoten um den Faktor 0,4 sinkt, während sich der Speicherverbrauch um den Faktor 1,1 erhöht (66 MB zu 71 MB). Eine Erhöhung von 20% auf 30% senkt die Laufzeit pro Knoten um den Faktor 0,75, während sich der Speicherverbrauch um den Faktor 1,7 erhöht (71 MB zu 123 MB). Bei 40% steigt der Speicherverbrauch um den Faktor 2,2 (123 MB zu 270 MB), während der Zeitgewinn nur noch dem Faktor 0,9 entspricht. Das bedeutet, dass die Zeit für die Punktklassifizierung nicht beliebig gesenkt werden kann, indem die Mehrfachreferenzierung erhöht wird, und dass die Kosten für diese Erhöhung den Nutzen sehr schnell überschreiten. Bei den anderen Objekten verhält sich diese Beobachtung ähnlich. Als guten Kompromiss zwischen Speicherplatzverbrauch und Senkung der Laufzeit werden 30% Mehrfachreferenzierungen angesehen und folglich bei allen weiteren Tests auf diesen Wert festgesetzt. Der gesamte Speicherverbrauch der Software für eine Strömungssimulation mit einer Gitterhierarchie von vier Gitterebenen, bei der die feinste Ebene ca Knoten besitzt, beträgt in etwa 2 GB. Der Speicherbedarf für den Spezialbaum der Kugel beträgt somit ca 6% des Gesamtspeicherbedarfs. Für den Würfel werden 0,25% des Gesamtspeichers verbraucht und für den Manta/Taucher 0,03%. Als großer Vorteil dieser Methode wird angesehen, dass die durchschnittliche Zeit für die Klassifizierung eines Punktes bei Objekten unterschiedlicher Größen gleich zu sein scheint. Damit wird eine Datenstruktur für beliebige Objekte aufgebaut, die eine ähnliche Laufzeit für die Punktklassifizierung bietet. Die geringen Unterschiede in den durchschnittlichen Laufzeiten sind von verschiedenen Faktoren abhängig, die hier nicht genauer analysiert werden können, jedoch scheint die durchschnittliche Anzahl der zu testenden Dreiecke der ausschlaggebende Faktor zu sein. Im Vergleich zu der von Hein [2007] verwendeten, auf NURBS basierenden Methode zur Punktklassifizierung ist die hier verwendete, auf Oberflächentriangulierungen basierende Methode für eine Kugelgeometrie um den Faktor 15 schneller. Die amortisierte Laufzeit für die Punktklassifizierung befindet sich in der Größenordnung von O(N log M), wobei N die Anzahl der Knoten und M die Anzahl der Dreiecke darstellt. Auf Grund der geringen Anzahl von Operationen, die bei der Tiefensuche im Spezialbaum benötigt werden, sollte der tatsächliche Einfluss des Faktors O(log M) gering ausfallen. Da sich die Anzahl der Dreiecke der Oberflächentriangulierung im Laufe der Simulation nicht verändert, kann der Faktor sogar als konstant angenommen werden und die Komplexität der Punktklassifizierung mit einer Laufzeit von O(N) abgeschätzt werden. Tatsächlich werden die durchschnittlichen Zeiten pro Knoten mit Erhöhung der Knotenzahl sogar geringer, was eventuell an einer besseren Ausnutzung des internen Cache liegt. 7.3 Distanzberechnung mit Fast Marching Als Monitorfunktion für die Gitterdeformation wird ein Distanzfeld bestimmt. Zur Berechnung dieses Distanzfeldes wird eine Variante des Fast Marching Algorithmus angewendet (siehe Kapitel 4.2). Die Fast Marching Methode berechnet dabei ein approximatives Distanzfeld, welches einen Fehler beinhaltet. Der Einfluss dieses Fehlers auf die Gitterdeformation wird erst im folgenden Kapitel 7.4 über die Ergebnisse der Gitterdeformation betrachtet. An dieser Stelle wird die Laufzeit der Fast Marching Methode in ihren zwei Phasen (vergleiche Kapitel 4.2.1) untersucht. Die Initialphase ist dabei abhängig von der Tiefensuche im Spezialbaum für zwei Gitterknoten einer Kante. Wird die Tiefensuche mit zwei anstatt von einem Gitterknoten durchgeführt, so kann sie zu starken rekursiven Verzweigungen führen und ist damit zur Berechnung des Initialbandes eventuell nicht optimal. Die Verbreitungsphase ist vom Initialband, der Beschaffenheit des Objekts und vom Grad der Gitterdeformation abhängig. Die zwei Phasen werden für zwei unterschiedliche Objekte untersucht. Dazu werden wieder vier Gitter einer Gitterhierarchie getestet, um das

73 7.3 Distanzberechnung mit Fast Marching 63 Laufzeitverhalten bei unterschiedlichen Knotenzahlen zu untersuchen. Um die Unterschiede der Laufzeit des Fast Marching Algorithmus zwischen einem regulären und einem deformierten Gitter zu untersuchen, wird der Algorithmus mit und ohne Gitterdeformation getestet. Bei dem Test werden folgende Werte erfasst: Initialisierungszeit t(i) Die Zeit, die für die Berechnung des Initialbandes gebraucht wurde. Initiale Gitterknoten N(i) Anzahl der Knoten die sich im Initialband befinden: Dies entspricht ebenfalls der Anzahl von zur Verfügung stehenden Referenzpunkten auf der Objektoberfläche. Initialzeit pro Knoten t(i)/n Die durchschnittliche Zeit, die bei der Initialisierung pro Knoten gebraucht wurde. Verbreitungszeit t(v) Gesamtzeit, die für die Verbreitungsphase gebraucht wurde. Verbreitungszeit pro Knoten t(v)/n Die durchschnittliche Zeit, die pro Knoten in der Verbreitungsphase gebraucht wurde Testobjekt 3 Als erstes Testobjekt für die Distanzberechnung wird die deformierte Fläche verwendet. Mit ca Dreiecken ist sie relativ fein aufgelöst und bietet mit der gekrümmten Oberfläche eine unregelmäßige Struktur für die Fast Marching Methode. Die erfassten Daten können Tabelle 7.7 entnommen werden. Sowohl beim regulären als auch beim deformierten Gitter verhält sich der Algorithmus in der Initialphase ähnlich. Die Zahl der Knoten, die das initiale Band bilden, wächst in etwa um das Vierfache pro Hierarchieebene. Dabei ist die Zeit pro Knoten um so niedriger, je mehr Knoten das Gitter besitzt. Dies war zu erwarten, denn eine geringere Knotenzahl impliziert größere Kantenlängen. Soll ein Schnittpunkt einer Kante mit der Objektoberfläche berechnet werden, so bedeutet eine größere Kantenlänge, dass sich die rekursive Tiefensuche im Spezialbaum stärker verzweigt. Dadurch müssen einerseits mehr Dreiecksmengen miteinander vereinigt werden und andererseits liefert die Tiefensuche mehr Dreiecke für die der vergleichsweise teure Schnitttest durchgeführt werden muss. In Kapitel wurde angedeutet, dass eine Sortierung der Dreiecke in jedem Blatt direkt beim Aufbau der Datenstruktur eine bessere Laufzeit bedeuten könnte. In der Tabelle A.4 wurde die Datenstruktur auf diese Weise aufgebaut. Dabei wird deutlich, dass die Laufzeiten zwar tatsächlich geringer sind, der Geschwindigkeitsgewinn jedoch vergleichsweise minimal ausfällt. Dies legt die Vermutung nahe, dass die Anzahl der Dreiecke für den Schnitttest den Hauptfaktor für den Zeitaufwand bedeutet und sich somit die Reduktion mehrfach referenzierter Dreiecke bei der Tiefensuche als sinnvoll erweist. Diese Vermutung wird durch die Tatsache gestützt, dass sich die durchschnittliche Zeit pro Knoten in etwa viertelt, während sich die Anzahl der Knoten im Initialband vervierfacht. In der Verbreitungsphase erhöht sich die Laufzeit pro Knoten logarithmisch mit höheren Knotenzahlen. Pro Hierarchieebene steigt die Anzahl von Knoten um das siebenfache, während sich die Laufzeit um das zehnfache erhöht. Dieser Effekt entsteht durch die kontinuierliche Sortierung des Bandes, um seine wellenartige Ausbreitung zu garantieren. Dabei ist die durchschnittliche Laufzeit auf der regulären Gitterhierarchie geringer als die Laufzeit auf der deformierten Gitterhierarchie. Dies ist durch die höhere Zahl an Referenzpunkten und deren Voronoi-Regionen erklärbar. Je mehr Referenzpunkte existieren, desto mehr Überschneidungen entstehen, wenn Knoten ihre Distanzinformationen an die Knoten übergeben, die sich in benachbarten Voronoi-Regionen befinden.

74 64 7. Resultate deformierte Fläche, reguläres Gitter N t(i) N(i) t(i)/n t(v) t(v)/n ,80E-2 3 1,74E ,25E ,04E ,83E ,14E ,35E ,84E-3 deformierte Fläche, deformiertes Gitter N t(i) N(i) t(i)/n t(v) t(v)/n ,49E-2 2 1,16E ,62E ,15E ,77E ,44E ,90E ,33E-3 Tabelle 7.7: Distanzberechnung für Testobjekt 3 an Hand einer deformierten und einer regulär unterteilten Gitterhierarchie Testobjekt 4 Als zweites Objekt wird die Verschlingung untersucht, sie besteht aus weniger Dreiecken als Testobjekt 3, bietet auf Grund ihrer Form jedoch viel Oberfläche für das Initialband. Für dieses Objekt zeigen sich sehr ähnliche Laufzeiten im Vergleich zu dem vorherigen (vergleiche Tabelle 7.8). In der Initialphase wird deutlich, dass die durchschnittlichen Zeiten pro Knoten mit zunehmender Knotenzahl sowohl für die reguläre als auch für die deformierte Gitterhierarchie sinken. Die höhere durchschnittliche Zeit bei den deformierten Gittern im Vergleich zu den regulären Gittern ist proportional zur Anzahl der Knoten, die sich im Initialband befinden. Die Daten zur Verbreitungsphase sind denen des ersten Objekts sehr ähnlich. Die Zeit pro Knoten scheint dabei nur von der Gesamtknotenzahl und von der Deformation des Gitters abhängig zu sein, die zu mehr Referenzpunkten führt. Verschlingung, reguläres Gitter N t(i) N(i) t(i)/n t(v) t(v)/n ,45E-2 1 5,79E ,99E ,22E ,35E ,04E ,01E ,64E-3 Verschlingung, deformiertes Gitter N t(i) N(i) t(i)/n t(v) t(v)/n ,88E-2 3 1,74E ,33E ,07E ,85E ,51E ,01E ,42E-3 Tabelle 7.8: Distanzberechnung für Testobjekt 4 an Hand einer deformierten und einer regulär unterteilten Gitterhierarchie.

75 7.3 Distanzberechnung mit Fast Marching Zusammenfassung Für den Aufbau des Initialbandes sind die durchschnittlichen Zeiten pro Knoten für die verschiedenen Testsituationen in Abbildung 7.8 zu finden. In allen Situationen lässt sich eine logarithmische Senkung der Laufzeiten bei jeder Gitterverfeinerung beobachten. Die Unterschiede zwischen den regulären und deformierten Gitterhierarchien lassen sich wie zuvor beschrieben aus der Anzahl der Knoten ableiten, die das Initialband bilden. Die höheren Zeiten bei der deformierten Fläche lassen sich mit der höheren Anzahl von Dreiecken erklären, die die Objektoberfläche repräsentieren. Bei gleichen Kantenlängen im Gitter muss bei dem ersten Objekt in etwa die dreifache Anzahl Dreiecke pro Kante auf einen Schnitt mit der Objektoberfläche getestet werden, da das Objekt durch die dreifache Anzahl Dreiecke dargestellt wird. Werden die Gitterkanten kürzer, so nähern sich die Laufzeiten einander an. Bei der kürzesten Kantenlänge, also im feinsten Gitter der deformierten Hierarchie, ist die Zeit pro Knoten für das zweite Objekt sogar höher. Dieser Effekt tritt auf, wenn die Kantenlängen des Gitters ungefähr die Größen der Intervalle erreichen, die in den Blättern des Spezialbaumes entstanden sind. Die deformierte Fläche besteht aus kleineren Dreiecken als die Verschlingung. Damit bestehen die Blätter des Spezialbaumes für die deformierte Fläche aus kleineren Intervallen. Die kleinstmögliche Anzahl von Dreiecken, für die der Schnitttest durchgeführt werden muss, wird durch die Tiefensuche bei der deformierten Fläche also erst bei kürzeren Kanten zurückgegeben, bei der Verschlingung bereits bei längeren. 0,1 0,09 0,08 0,07 Zeit pro Knoten 0,06 0,05 0,04 0,03 deformierte Fläche, regulär Verschlingung, regulär deformierte Fläche, deformiert Verschlingung, deformiert 0,02 0, Anzahl Knoten Abbildung 7.8: Grafik für die Initialphase der Fast Marching Methode. Getestet werden zwei unterschiedliche Objekte mit einer regulären und einer deformierten Gitterhierarchie. Die Daten zur Verbreitungsphase sind in Abbildung 7.9 veranschaulicht. Bis auf die erste Hierarchieebene verhalten sich die Laufzeiten unabhängig von der Gitterdeformation und dem Objekt ähnlich. Dies bedeutet, dass sich die Laufzeiten ebenfalls relativ unabhängig von der Anzahl der Knoten im Initialband verhalten. Die unregelmäßigen Zeiten in der ersten Hierarchieebene sind vermutlich auf die ungenaue Zeitmessung im Bereich von einer bis drei Millisekunden zurückzuführen. Die durchschnittliche Laufzeit pro Knoten steigt mit Erhöhung der Knotenzahl. Während

76 66 7. Resultate sich die Knotenzahl pro Hierarchieebene ungefähr um den Faktor 7 erhöht, erhöht sich die Laufzeit pro Knoten der regulären Gitter von Ebene 2 auf Ebene 3 um den Faktor 1,25 und von Ebene 3 auf Ebene 4 um den Faktor 1,6. Bei den deformierten Gittern erhöht sich die Laufzeit von Ebene 2 auf Ebene 3 um den Faktor 1,4 und von Ebene 3 auf Ebene 4 wiederum um den Faktor 1,6. Dieser Faktor wird im Bereich von O(log N) vermutet, was den Erwartungen für die Fast Marching Methode entspricht. Insgesamt kann beobachtet werden, dass sich die durchschnittliche Laufzeit zur Initialisierung des Bandes bei der höchsten Hierarchieebene der Laufzeit nähert, die in der Verbreitungsphase gemessen wurde. Damit erfolgt ab einer bestimmten Gittergröße die üblicherweise aufwendige Bestimmung der tatsächlichen Distanzen für das Initialband schneller als die Verbreitungsphase. Somit dominiert ab einer bestimmten Gittergröße die Verbreitungsphase die Laufzeit des gesamten Algorithmus. Da die Gitter so fein wie möglich sein sollen, also eine möglichst große Anzahl von Knoten enthalten sollen, kann damit die Laufzeit des gesamten Algorithmus mit O(N log N) abgeschätzt werden. 0,003 0,0025 0,002 Zeit pro Knoten 0,0015 0,001 deformierte Fläche, regulär Verschlingung, regulär deformierte Fläche, deformiert Verschlingung, deformiert 0, Anzahl Knoten Abbildung 7.9: Grafik für die Verbreitungsphase der Fast Marching Methode. Getestet werden zwei unterschiedliche Objekte mit einer regulären und einer deformierten Gitterhierarchie. 7.4 Gitterdeformation Im folgenden Kapitel werden zwei Eigenschaften der in Kapitel beschriebenen Gitterdeformationsmethode betrachtet. Als erstes wird der Einfluss der ungenauen Monitorfunktion auf die Gitterdeformation untersucht. Als zweites wird gezeigt, wie sich die Gitterdeformation auf der maximalen Hierarchieebene im Vergleich zur sukzessiven Deformation über alle Hierarchieebenen verhält. Im folgenden wird mit dem Ausdruck Deformationsschritt der Vorgang zusammengefasst, bei dem die Gitterdeformationsmethode mit einer neu berechneten Monitorfunktion angewendet wird.

77 7.4 Gitterdeformation Distanzgenauigkeit Innerhalb der Gitterdeformationsmethode bestimmt die Monitorfunktion, basierend auf einem skalierten Distanzfeld, indirekt die Größe der Hexaederzellen. Durch die Fast Marching Methode entsteht ein Fehler in der Distanzberechnung, welcher zu ungenauen Ergebnissen in der Gitterdeformation führen könnte. Aus diesem Grund werden die Ergebnisse von Testobjekt 1 mit den Ergebnissen einer Referenzrechnung verglichen. Die Referenzrechnung wird mit einer analytischen Kugelbeschreibung mit identischem Durchmesser durchgeführt. Dazu wird eine Kugel mit Durchmesser 1 ins Zentrum eines Gebiets mit Kantenlängen von 3 platziert. Das Grobgitter besteht aus 16 Hexaedern, die fünfte und maximale Ebene der Hierarchie besteht aus ca Hexaedern. Auf jede Ebene der Hierarchie wird jeweils ein Deformationsschritt mit den unterschiedlich berechneten Distanzfeldern angewendet. Der Einfachheit halber werden nachfolgend die Gitter, welche aus der analytisch berechneten Distanz resultierten, als A-Gitter bezeichnet, während die Gitter die mit Hilfe der Fast Marching Methode erstellt wurden, als FM-Gitter bezeichnet werden. In Abbildung 7.10 ist ein Vergleich der Ergebnisse auf der fünften Hierarchieebene zu sehen. Bei den dargestellten Ergebnissen entsteht ein ähnlicher visueller Eindruck der resultierenden Gitter und der durchschnittlichen Größen der Hexaeder. Abbildung 7.10: Vergleich zwischen FM-Gitter und A-Gitter nach einem Deformationsschritt. Die Farbskala verdeutlicht die Größe der Hexaeder. Der helle Kreisbogen markiert die Position der Kugeloberfläche. Links: FM-Gitter. Rechts: A-Gitter. Um die tatsächlichen Unterschiede zwischen den Ergebnissen zu analysieren, werden in einem ersten Schritt die Differenzen der Koordinaten ihrer Knoten gebildet. Dabei werden die Koordinaten des A-Gitters von den Koordinaten des FM-Gitters subtrahiert. Das Resultat dieser Differenz sind Vektoren, die eine Abweichung der Knoten des FM-Gitters zum A-Gitter darstellen. Um eine Aussage zur Abweichung der Knoten in Bezug auf das Gitter treffen zu können, wird die Länge der Vektoren in einem zweiten Schritt mit den Größen umliegender Hexaeder verglichen. Dazu wird in jedem Knoten ein Wert h definiert. Dieser Wert beschreibt die durchschnittliche Größe (Kantenlänge) aller zu diesem Knoten inzidenten Hexaeder. Wird in jedem Knoten die Vektorlänge, also die Distanz seiner Abweichung l durch das lokale h dividiert, so resultiert dies in der prozentualen Abweichung eines Knotens im Vergleich zu den Größen inzidenter Hexaeder. Abbildung 7.11 veranschaulicht diese beiden Vergleichsmöglichkeiten.

78 68 7. Resultate Abbildung 7.11: Vergleich der Gitterdeformation zwischen FM-Gitter und A-Gitter über die Abweichung der Knoten. Links: Vergleich der Abweichung an Hand des Vektorfeldes. Für eine bessere Darstellung wird nur ein Teil der Vektoren um ein vielfaches vergrößert dargestellt. Rechts: Relative Abweichung der Gitterknoten im Vergleich zur Hexaedergröße. Die maximale gemessene Abweichung der Knoten beträgt 0,009. Es lässt sich jedoch beobachten, dass die Abweichung in der Nähe der Objektoberfläche im Durchschnitt mit 0,002 deutlich geringer ausfällt. Allgemein führt die ungenau berechnete Distanz zu einem Gitter, dessen Knoten vom Zentrum des Objekts zum Gebietsrand hin von dem A-Gitter abweichen. Die maximal gemessene prozentuale Abweichung der Gitterknoten beträgt ca. 30% der lokalen Hexaedergröße h, jedoch lässt sich auch hier wiederum beobachten, dass die Abweichung in der Nähe zur Objektoberfläche mit ca. 8-14% geringer ausfällt. Aus diesen Beobachtungen heraus wurden für eine nähere Untersuchung folgende Größen ermittelt, die miteinander in Bezug gestellt werden können: Fehler pro Knoten FM e/n Durchschnittlicher Fehler pro Knoten bei der Berechnung mit der Fast Marching Methode. maximaler Fehler FM max(e/n) Der maximale Fehler in der Distanzberechnung, der in einem Knoten durch die Fast Marching Methode entstanden ist. Vektorlänge an Objektoberfläche l(obj) Die durchschnittliche Vektorlänge, als Vergleichswert für die Abweichung der Knoten in der Nähe der Objektoberfläche. maximale Vektorlänge max(l) Die maximale Vektorlänge, als Indiz für die größte gemessene Abweichung. Prozentuale Abweichung an Objektoberfläche a(obj) Die prozentuale Abweichung im Vergleich zur Hexaedergröße für Knoten in der Nähe der Objektoberfläche.

79 7.4 Gitterdeformation 69 Maximale prozentuale Abweichung max(a) Die maximale prozentuale Abweichung die gemessen wurde. Diese Daten werden für die verschiedenen Ebenen der Hierarchie erfasst, da die Genauigkeit der Fast Marching Methode und damit der Unterschied zum analytisch berechneten Distanzfeld von der Größe der Hexaeder abhängig ist. Dazu wird die Gitterdeformation mit beiden Methoden zur Bestimmung des Distanzfeldes auf den Hierarchieebenen 3 bis 5 unabhängig voneinander durchgeführt. Interessant ist ebenfalls die Untersuchung der Anwendung mehrerer aufeinander folgender Deformationsschritte, bei denen das Gitter nach der Deformation jeweils mit Hilfe des Umbrella-Operators geglättet wird. Dazu wird zuerst auf der fünften Hierarchieebene das einmal deformierte Gitter geglättet. Danach wird auf diesem Gitter ein weiterer Deformationsschritt mit anschließender Glättung durchgeführt. Die auf diese Weise gesammelten Daten sind in Tabelle 7.9 zusammengestellt. e/n max(e/n) l(obj) max(l) a(obj) max(a) Ebene 3 8,38E-3 6,42E-2 2,3E-2 5,72E-2 20% 36% Ebene 4 3,03E-3 3,15E-2 6,75E-3 2,25E-2 15% 30% Ebene 5 9,25E-4 2,78E-2 3,00E-3 9,04E-3 14% 29% Ebene 5, Glättung 9,25E-4 2,78E-2 2,58E-3 8,59E-2 14% 23% Ebene 5, 2 Deformationen, Glättung 9,25E-4 3,05E-2 2,01E-3 5,02E-3 9% 15% Tabelle 7.9: Vergleich der Gitterdeformation zwischen FM- und A-Gitter. Für die Hierarchieebenen 3 bis 5 lässt sich beobachten, dass die Abweichung der Gitter mit zunehmender Genauigkeit der Fast Marching Methode abnimmt. Die Abweichung zur lokalen Hexaedergröße ist jedoch auch beim größten Fehler in Ebene 3 mit einer maximalen gemessenen Abweichung von 36% und einer durchschnittlichen von 20% an der Objektoberfläche immer noch als gering anzusehen. Eine nachträgliche Glättung des Gitters auf Ebene 5 mit Hilfe des Umbrella- Operators senkt die maximale Abweichung der Knoten um weitere 7%. Wird ein weiterer Deformationsschritt auf diesem Gitter durchgeführt und anschließend das Gitter geglättet, so sinkt die Abweichung sogar auf 9% und 15%. Diese Ergebnisse bestätigen, dass sich die Fast Marching Methode trotz ihrer Ungenauigkeit zur Berechnung des Distanzfeldes als Monitorfunktion für die Gitterdeformation eignet. Je feiner das Gitter ist, desto genauer ist die Fast Marching Methode, was zu einer kleineren Abweichung im Vergleich zu einem Gitter mit exakt berechneter Distanz führt. Bereits für dieses noch relativ grobe Gitter mit Hexaedern ist der Unterschied sehr gering, vor allem wenn mehrere Deformationsschritte in Kombination mit einer Glättung des Gitters verwendet werden. Zudem muss bedacht werden, dass es nicht einfach ist, die resultierenden Gitter auf ihre numerische Genauigkeit miteinander zu vergleichen. Bei dem Gitter, welches aus der Fast Marching Methode resultiert, befinden sich weniger Knoten innerhalb des Objekts, was evtl. sogar zu besseren Ergebnissen führen könnte. Eine komplexe Analyse dieser Unterschiede würde jedoch den Rahmen dieser Diplomarbeit überschreiten.

80 70 7. Resultate Mehrgitterdeformation Bei dem bestehenden Verfahren in FEATFLOW funktioniert die Gitterdeformation bisher nur auf der feinsten Hierarchieebene, nachfolgend wird dieses Verfahren Eingitterdeformation genannt. Mit der erstellten Software INGRID3DDEFORM ist jedoch ein Ansatz möglich, der zu besseren Ergebnissen führt. Bei diesem Ansatz wird die Gitterdeformation in den Prozess der Bildung einer Mehrgitterhierarchie einbezogen. Dazu wird die Gitterdeformation bereits auf dem Grobgitter und sukzessive auf jeder weiteren Ebene der Hierarchie einmal durchgeführt. Es wird also ein Deformationsschritt auf dem Grobgitter durchgeführt, das resultierende Gitter wird verfeinert und dient als zweites Gitter der Hierarchie. Dieses wird wiederum deformiert und anschließend verfeinert, um das nächste Gitter der Hierarchie zu bilden. Wurde die feinste Hierarchieebene erreicht, so wird diese einmal deformiert. Dieses Verfahren wird nachfolgend Mehrgitterdeformation genannt Testfälle Bei Tests mit verschiedenen Objekten hat sich herausgestellt, dass die Mehrgitterdeformation unabhängig vom Objekt ähnliche Vorteile bringt, daher wird der Test an dieser Stelle nur mit dem Golfmodell durchgeführt. Das Objekt wird in seiner Länge auf den Wert 1,5, in seiner Breite auf den Wert 0,7 und in seiner Höhe auf den Wert 0,6 skaliert. Zur Beschreibung des Gebiets wird ein Grobgitter bestehend aus gleichgroßen Hexaedern verwendet, welche den Quader [0;5] [-1;1] [-1;1] ausfüllen. Auf der vierten und feinsten Hierarchieebene besteht das Gitter aus ca Hexaedern. Die Verbesserung, die mit der Mehrgitterdeformation erreicht werden kann, ist unter anderem von der relativen Position des Objekts zum Kanal abhängig. Für den ersten Testfall wird das Objekt im Intervall [0;1,5] positioniert, die Front des Golfmodells befindet sich also genau am Einströmrand des Kanals. Beim zweiten Testfall wird das Objekt im Intervall [1;2,5] positioniert, das Heck des Golfmodells befindet sich also genau in der Mitte der Kanallänge. Für den dritten Testfall wird das Golfmodell zentriert im Kanal positioniert, also im Intervall [1,75;3,25]. Tabelle 7.10 veranschaulicht den Einfluss der Mehrgitterdeformation auf die Qualitätsmaße der feinsten Gitterhierarchie im Vergleich zur Eingitterdeformation. Testfall 1, Golfmodell (Position 0-1,5) Kleinster Winkel Größter Winkel AR ER Eingitterdeformation 7,98 172,88 14,56 20 Mehrgitterdeformation 21,04 158,94 9,22 12,44 Testfall 2, Golfmodell (Position 1-2,5) Kleinster Winkel Größter Winkel AR ER Eingitterdeformation 11,16 170,28 11,58 14,29 Mehrgitterdeformation 41,32 140,19 4,97 6,73 Testfall 3, Golfmodell (Position 1,75-3,25) Kleinster Winkel Größter Winkel AR ER Eingitterdeformation 17,5 162,02 11,55 14,73 Mehrgitterdeformation 41,41 139,44 5,28 7,24 Tabelle 7.10: Vergleich der resultierenden Qualitätsmaße zwischen der Eingitterdeformation auf der feinsten Hierarchieebene und der Mehrgitterdeformation, an Hand des Gofmodells

81 7.4 Gitterdeformation 71 Für Testfall 1 verbessert die Mehrgitterdeformation die schlechtesten gemessenen Winkel um ca. 14 während sich sowohl die Seitenflächenverhältnis (AR) als auch die Kantenlängenverhältnis (ER) um den Faktor 0,6 verbessern. Für Testfall 2 verbessert die Mehrgitterdeformation die Winkel um ca. 30. Die AR und die ER werden jeweils halbiert. Der Testfall 3 liefert ähnliche Ergebnisse wie Testfall 2, wobei die geringere Verbesserung der Winkel mit den besseren Winkeln der Eingitterdeformation einhergeht. Insgesamt lässt sich eine starke Verbesserung der Gitterqualität durch den Einsatz der Mehrgitterdeformation feststellen. Die Problematik beim Einsatz der Eingitterdeformation ist in Abbildung 7.12 für Testfall 2 dargestellt. Durch die Eingitterdeformation entstehen sehr starke Verzerrungen in den einzelnen Gitterschichten, die sich auch durch den Einsatz von Glättungsoperatoren nicht vollständig beseitigen lassen. Wie in Abbildung 7.13 zu sehen ist, wird das Gitter durch den Einsatz der Mehrgitterdeformation insgesamt gleichmäßiger und ist weniger verzerrt. Zusätzlich dazu reicht die Skala für die durchschnittliche Größe der Hexaeder bei der Mehrgitterdeformation von 2,65E-6 bis 7,32E-5, während sie bei der Eingitterdeformation von 3,57E-6 bis 7,14E-5 reicht. Das bedeutet, dass bei der Mehrgitterdeformation sogar deutlich kleinere Hexaeder in der Nähe der Objektoberfläche entstehen, durch die das Objekt approximiert wird. Die Verbesserung der Gitterqualität ist dabei teilweise von der Länge des Kanals abhängig. Je länger der Kanal, desto stärker sind die Verzerrungen bei der Eingitterdeformation. Da der Kanal üblicherweise noch länger ist als bei diesem Testfall, bietet der Einsatz der Mehrgitterdeformation eine deutliche Verbesserung der Gitterqualität. Abbildung 7.12: Testfall 2. Testfall 2. Eingitterdeformation an das Golfmodell auf der feinsten Hierarchieebene. Links: Frontansicht einer Gitterschicht. Rechts: Seitenansicht der Gitterschicht.

82 72 7. Resultate Abbildung 7.13: Testfall 2. Mehrgitterdeformation an das Golfmodell mit einem Gitterdeformationsschritt pro Hierarchieebene. Links: Frontansicht einer Gitterschicht. Rechts: Seitenansicht der Gitterschicht. 7.5 Projektion zur Randanpassung Zur Untersuchung der in Kapitel 5 vorgestellten Projektionstechniken wird zuerst ihre Funktionsweise an Hand eines einfachen Tests mit dem Würfel und einem regulären Gitter verdeutlicht. Danach wird der Einfluss der Gitterdeformation auf die nachträgliche Projektion an Hand der zwei einfachen Geometrien (Kugel und Würfel) erläutert und die grundlegende Problematik dargestellt. Die Projektion wird daraufhin an zwei komplexen Objekten untersucht. Abschließend wird die numerische Genauigkeit der Gitter mit und ohne Projektion an Hand eines Benchmarks untersucht, zu dem Referenzwerte existieren. Eines der Kriterien für die Projektion ist, dass sich die Gitterqualität nicht zu stark verschlechtern darf. Für alle folgenden Tests wurden die erlaubten Toleranzwerte für die Gitterqualität auf folgende Werte eingestellt: Der größte Winkel darf 151 sein, der kleinste Winkel 29 und sowohl die ER als auch die AR dürfen maximal den Wert 6 besitzen. Im Laufe aller Tests wurden diese Toleranzwerte durch die Projektionen nicht überschritten, daher wird auf einen expliziten Test verzichtet.

83 7.5 Projektion zur Randanpassung Funktionsweise Die Funktionsweise der einzelnen Heuristiken lässt sich an Hand des Würfels und einem regulären Gitter gut veranschaulichen. Um einen Vergleichswert für die Güte der Projektion zu erhalten, werden folgende Datenmengen zu den Projektionen gesammelt: fictitious-knoten f(n) Knoten die sich innerhalb des Objekts befinden und mindestens einen inzidenten Hexaeder besitzen, der wenigstens eine Seitenfläche außerhalb des Objekts besitzt. Diese Knoten liegen nicht auf dem Objektrand, sind jedoch Teil der Hülle der Objektapproximation bei Anwendung der Fictitious-Boundary Methode. Randknoten r(n) Knoten, die die Hülle der Objektapproximation darstellen, jedoch exakt auf dem Objektrand liegen. Quotient χ Anteil exakt auf dem Objektrand liegender Knoten im Vergleich zur Gesamtzahl von Knoten, die die Hülle der Objektapproximation darstellen. χ = r(n) f(n)+r(n) fictitious-seitenflächen f(a) Hexaederseitenflächen, die sich innerhalb des Objekts befinden, jedoch Teil der Hülle der Objektapproximation bei Anwendung der Fictitious-Boundary Methode darstellen; also Seitenflächen, bei denen mindestens einer der inzidenten Hexaeder wenigstens eine Seitenfläche außerhalb der Objekts enthält. Randseitenflächen r(a) Hexaederseitenflächen, die die Hülle der Objektapproximation darstellen, jedoch mit ihren vier Knoten exakt auf der Objektoberfläche liegen. Quotient δ Anteil exakt auf dem Objektrand liegender Seitenflächen im Vergleich zur Gesamtzahl Seitenflächen, die die Hülle der Objektapproximation darstellen. δ = r(a) f(a)+r(a) ) Als wichtigstes Indiz für die Güte der Objektapproximation gilt hierbei die Anzahl der exakt auf der Objektoberfläche liegenden Seitenflächen. Für den Testfall eines Würfels sind die vier Heuristiken in Abbildung 7.14 dargestellt. Ohne Projektion beschreiben 218 fictitious-knoten die Hülle der Approximation des Objekts. Zuerst wurde die Projektion innerer Knoten durchgeführt, die jedoch auf Grund der eingestellten Toleranzwerte zu keiner Änderung geführt hat. Bei der äquivalent funktionierenden Projektion äußerer Knoten wurden 294 Knoten exakt auf die Objektoberfläche projiziert. Dies sind genau diejenigen Knoten außerhalb des Objekts, die genau einen Nachbarknoten innerhalb des Objekts besitzen. Die Knoten, die sich in der Nähe der Würfelkanten befinden wurden nicht projiziert, da sie keine Nachbarknoten im Inneren des Objekts haben. Diese Knoten sind jedoch Teil von Seitenflächen, deren diagonal gegenüber liegende Knoten sich innerhalb des Objekts befinden und werden somit durch die Heuristik an Hand von Seitenflächen exakt auf die Kanten des Würfels projiziert. Als Kandidaten für eine Projektion verbleiben die Knoten, die sich in der Nähe der Eckpunkte des Würfels befinden, denn sie wurden durch die vorherigen Heuristiken nicht erkannt. Die Heuristik, welche die diagonal gegenüber liegenden Knoten eines Hexaeders überprüft, erkennt und projiziert diese letzten verbliebenen 8 Knoten exakt auf die Eckpunkte des Würfels. Damit wird das Objekt durch eine exakt randangepasste Approximation dargestellt. Wie aus der Tabelle 7.11 ersichtlich ist, wird das Objekt nach der Projektion durch ca. doppelt so viele Seitenflächen approximiert wie zuvor (f(a) =216 zu r(a) =384).

84 74 7. Resultate Abbildung 7.14: Validierung der Projektionstechniken am Beispiel des Würfels und einem regulär unterteilten Gitter. Zur Veranschaulichung des Gitters werden jeweils zwei Gitterschichten gezeichnet. Oben: Der Würfel und die Darstellung seiner Approximation, die durch die Fictitious-Boundary Methode erkannt wird. Unten: Die Approximation nach Projektion äußerer Knoten, die Approximation nach Projektion an Hand von Hexaederseitenflächen, die Approximation nach Projektion an Hand von Hexaedern. Projektion an Testobjekt 2, reguläres Gitter Projektionstechnik f(n) r(n) χ f(a) r(a) δ keine % % v. Innen n. Außen % % v. Außen n. Innen % % an Seitenflächen % % an Hexaedern % % Tabelle 7.11: Testwerte zur Funktionsweise der verschiedenen Projektionstechniken mit regulär unterteiltem Gitter und dem Würfelobjekt.

85 7.5 Projektion zur Randanpassung Projektion und Gitterdeformation Das zuvor gezeigte Beispiel stellt einen Sonderfall dar, bei dem eine vollständige Randanpassung nur deshalb möglich ist, weil ein reguläres Gitter und ein quaderförmiges Objekt verwendet wurde, dessen Seiten exakt parallel zu den Seitenflächen des Gebiets liegen. Der Einsatz der Gitterdeformation verursacht jedoch auch schon bei diesem einfachen Objekt eine grundlegende Problematik. Durch die Gitterdeformation werden Knoten in die Nähe der Objektoberfläche geschoben. Diese Verschiebung geschieht jedoch nicht gleichmäßig, und für ein Objekt bedeutet dies, dass einzelne Gitterschichten in der Nähe der Objektoberfläche gekrümmt werden und somit nicht mehr exakt parallel zu den Seitenflächen des Würfels liegen. Bei der Projektion führt dies wiederum dazu, dass zusammenhängende Schichten von Hexaederseitenflächen nicht als Gesamtheit auf eine Seite des Objekts projiziert werden können. Es entstehen Gräben in der exakten Randapproximation, die durch fiktive Seitenflächen innerhalb des Objekts beschrieben werden (siehe Abbildung 7.15). Abbildung 7.15: Problematik der Projektionstechniken bei der Gitterdeformation am Beispiel des Würfels. Oben: Der Würfel mit einer Gitterschicht. Unten: Die Approximation des Würfels nach der Projektion. Die exakt randangepasste Approximation ist nicht geschlossen, da einzelne Gitterschichten nicht parallel zur Objektoberfläche verliefen. Eine Möglichkeit, den Grad der Krümmung einzelner Gitterschichten zu manipulieren, ist die Skalierung der Monitorfunktion. Wird die Distanzfunktion für Knoten innerhalb des Objekts stärker skaliert, entstehen im Inneren des Objekts größere Hexaeder, was zu einer Krümmung der Schichten an der Objektoberfläche führt. Um den Einfluss der unterschiedlichen Skalierung der Distanzfunktion auf die Projektion zu verdeutlichen, wurde die Monitorfunktion folgendermaßen

86 76 7. Resultate definiert: f mon (x) = { α dist(x, Objekt) dist(x, Objekt) falls x Objekt falls x / Objekt (7.1) Für die Tests wurde der Faktor α mit den Werten 1, 2, 3 und 4 definiert. Tabelle 7.12 zeigt die ermittelten Ergebnisse. Projektion an Testobjekt 2, deformiertes Gitter Skalierung f(n) r(n) χ f(a) r(a) δ α =1, vor Proj % % α =1, nach Proj % % α =2, vor Proj % % α =2, nach Proj % % α =3, vor Proj % % α =3, nach Proj % % α =4, vor Proj % % α =4, nach Proj % % Tabelle 7.12: Testwerte zum Einfluss der unterschiedlichen Skalierung der Monitorfunktion auf die anschließende Projektion. Grundsätzlich lässt sich aus den Werten der Tabelle beobachten, dass die Anzahl der Knoten und Seitenflächen, die den Objektrand approximieren, durch die Projektion um ca. 20% zunimmt. Das bedeutet, dass Knoten außerhalb des Objekts, die vor der Projektion keinen Rand approximiert haben, auf den Objektrand projiziert wurden und somit das Volumen der Objektapproximation vergrößert haben. Gleichzeitig vergrößern diese Knoten Hexaeder am Objektrand. Die Werte verdeutlichen ebenfalls, dass die Krümmung der Gitterschichten in direktem Zusammenhang mit der Skalierung der Distanzen steht. Werden die Distanzen zu Knoten innerhalb des Objekts mit dem gleichen Faktor multipliziert wie zu Knoten außerhalb, so ist die Krümmung gering und 92% der Knoten, sowie 84% der Seitenflächen definieren eine exakt randangepasste Approximation des Objekts. Werden die Distanzen zu Knoten innerhalb des Objekts mit Faktor α = 4 multipliziert, so definieren nur noch 80% der Knoten und 52% der Seitenflächen die exakt randangepasste Approximation. Mit einer Monitorfunktion, die auf der euklidischen Distanz beruht, lässt sich die Gitterdeformation jedoch nicht so steuern, dass die Approximation nach der Projektion zu 100% exakt randangepasst ist, da diese nur die Größe der Hexaeder in Betracht zieht und nicht die Position von Knoten in Relation zur Objektoberfläche. Eventuell können mit anders aufgebauten Monitorfunktionen bessere Ergebnisse ohne grundlegende Änderung der Gitterdeformationsmethode erzielt werden, dies zu untersuchen liegt jedoch außerhalb der Möglichkeiten im Rahmen dieser Diplomarbeit. Als zweiter Testfall wird die Kugel untersucht, da sie im Gegensatz zum Würfel eine vollständig gekrümmte Oberfläche besitzt. Aus den Werten der Tabelle 7.13 kann unter anderem entnommen werden, dass die Gesamtzahl von Knoten und Seitenflächen, die die Approximation des Objektes definieren durch die Projektion um ca. 15% steigt.

87 7.5 Projektion zur Randanpassung 77 Werden die Distanzen zu inneren Knoten nicht skaliert, also mit Faktor α = 1 multipliziert, so beträgt χ 68%. Das bedeutet, die Objektapproximation wird nach der Projektion durch doppelt so viele exakt randangepasste Knoten definiert als fictitious-knoten. Bei den Seitenflächen verhält es sich genau umgekehrt, der Quotient δ beträgt nur 31%, also wird die Approximation des Objektes durch halb so viele exakt auf dem Objektrand liegende Seitenflächen definiert als fictitious- Seitenflächen. Bei einem Faktor von α = 4 definieren jedoch nur noch ca. 21% der Seitenflächen eine exakte Randapproximation, das Verhältnis ist also deutlich schlechter. Bei der Kugel wird kein so deutlicher Trend zu einer Verschlechterung der Projektionsergebnisse mit Erhöhung von α sichtbar. Jedoch wird, wie beim Würfel zuvor, das beste Ergebnis für die Projektion erreicht, wenn die Distanz zu den Knoten gar nicht skaliert wird. Eine Untersuchung zur Skalierung der Distanzen mit dem gleichen Faktor sowohl zu Knoten innerhalb als auch zu Knoten außerhalbdes objekts ergab ähnliche Ergebnisse. Jedoch werden diese Ergebnisse nicht aufgeführt, da die Skalierung der Distanzen eine Heuristik darstellt und unter anderem von der Größe des Gebiets abhängig ist. Allgemein entstehen die meisten Probleme mit der exakten Randanpassung bei einem stark gekrümmten Objekt wie der Kugel gerade dort, wo die Objektoberfläche im Winkel von 45 zu den Seiten des Gesamtgebiets liegt (siehe Abbildung 7.16). Projektion an Testobjekt 1 Skalierung f(n) r(n) χ f(a) r(a) δ α =1, vor Proj % % α =1, nach Proj % % α =2, vor Proj % % α =2, nach Proj % % α =3, vor Proj % % α =3, nach Proj % % α =4, vor Proj % % α =4, nach Proj % % Tabelle 7.13: Testwerte zum Einfluss der unterschiedlichen Skalierung der Monitorfunktion auf die anschließende Projektion. Zusammenfassend kann festgehalten werden, dass zum einen die Skalierung der Monitorfunktion einen entscheidenden Faktor zur späteren exakten Randanpassung beiträgt. Selbst für diese einfachen Geometrien lässt sich jedoch kein Richtwert festlegen, der eine optimale Anpassung ermöglicht. Um dem Benutzer die größte mögliche Freiheit bei der Gittererstellung zu gewähren, sollte eine nachträgliche Änderung dieses Faktors ermöglicht werden. Dadurch könnte die Gitterdeformation mit einer festgelegten Skalierung erfolgen und gegebenenfalls durch eine erneute Gitterdeformation mit einer angepassten Skalierung nachgebessert werden. Zum anderen lässt sich selbst für diese einfachen Geometrien zusammen mit der Gitterdeformation keine vollständige exakte Randanpassung durchführen. Hier könnten mit unstrukturierten Gittern eventuell bessere Ergebnisse erzielt werden Komplexe Objekte Die zuvor untersuchten Objekte stellen einfache Geometrien dar, daher wird im folgenden Abschnitt die Projektion an komplexen Geometrien getestet. Zum einen wird das Verhalten der Pro-

88 78 7. Resultate Abbildung 7.16: Problematik der Projektionstechniken bei der Gitterdeformation am Beispiel der Kugel. Das Gitter kann schlecht an Bereiche der Objektoberfläche projiziert werde, die im Winkel von 45 zu den Seitenflächen des Gebietes liegen. jektion bei Testobjekt 4, der Verschlingung, getestet. Die Verschlingung ist für eine exakte Randapproximation eine enorme Herausforderung, da sie stark gekrümmt und in sich verdreht ist. Als zweite Geometrie wird Testobjekt 5 untersucht. Das Golfmodell bietet große Gebiete ebener Oberflächen, daher kann eine gute Randanpassung durch die Projektion erwartet werden. Tabelle 7.14 beinhaltet die gewonnen Daten. Beide Objekte werden in einem Grobgitter bestehend aus , also 1344 Hexaedern positioniert, wobei die vierte und feinste Hierarchieebene aus ca Hexaedern besteht. Für beide Objekte wurde zur Skalierung des Distanzfeldes der gleiche Faktor, sowohl für die Distanzen zu inneren als auch für die Distanzen zu äußeren Knoten verwendet. Projektion an Testobjekt 1 Objekt f(n) r(n) χ f(a) r(a) δ Verschlingung vor Proj % % Verschlingung nach Proj % % Golfmodell vor Proj % % Golfmodell nach Proj % % Tabelle 7.14: Testwerte zum Einfluss der unterschiedlichen Skalierung der Monitorfunktion auf die anschließende Projektion. Bei der Verschlingung definieren nach der Projektion 30% der Seitenflächen die exakt randangepasste Approximation und 71% der Knoten. Beim Golfmodell liegen nach der Projektion 82% der Knoten direkt auf der Objektoberfläche und 63% der Seitenflächen. Interessant ist die Tatsache, dass die Anzahl der exakt randangepassten Knoten bei beiden Objekten 90% der Anzahl von Knoten darstellt, die vor der Projektion die Objektapproximation definiert haben. Weil diese Zahlen sehr abstrakt sind, werden die Ergebnisse in Abbildung 7.17 verdeutlicht. Ohne Projektion werden die einzelnen Objektelemente bei der Verschlingung an ihren schmalen Stellen teilweise gar nicht durch Seitenflächen approximiert. Die Fictitious-Boundary Methode sieht an diesen Stellen Lücken im Objekt, obwohl die Objektoberfläche dort geschlossen ist. Diese Lücken werden durch die Projektion von Knoten geschlossen. Auch an den breiten Stellen

89 7.5 Projektion zur Randanpassung 79 Abbildung 7.17: Darstellung der Projektionstechniken an komplexen Objekten. Oben: Verschlingung vor und nach der Projektion. Das Objekt ist nach der Projektion deutlich besser approximiert. Unten: Golfmodell nach der Projektion. Weite Gebiete der Objektapproximation sind exakt randangepasst. der Objektelemente werden durch die Projektion Rundungen sichtbar, die durch die Fictitious- Boundary Methode nicht erfasst werden. Das Gesamtvolumen der Objektapproximation ist nach der Projektion deutlich größer. Beim Golfmodell sind wiederum große zusammenhängende Gebiete exakt randangepasster Approximationen zu sehen. Dennoch sind in dieser exakten Randapproximation die zuvor beschriebenen charakteristischen Gräben zu sehen, die sich mit den vorhandenen Techniken nicht vollständig vermeiden lassen. Insgesamt kann somit auch für diese komplexen Objekte eine sichtbare Verbesserung der Objektapproximation durch die Projektionstechniken erreicht werden. Ob sich dadurch jedoch auch die Qualität der numerischen Lösung verbessert, wird im folgenden Abschnitt untersucht DFG-Benchmark Um zu testen, ob sich die Randprojektion tatsächlich auf die numerischen Ergebnisse auswirkt, wurde als Testszenario der DFG-Benchmark ausgewählt. Der DFG Benchmark Laminar flow around a cylinder wurde im Rahmen des Schwerpunktprogramms Flow simulation with highperformance computers von Schäfer u. Turek [1996] definiert. Dafür wird ein Zylinder festgelegter Dimension in einem exakt definierten Gebiet platziert (siehe Abbildung 7.18).

90 80 7. Resultate Abbildung 7.18: Gebietsdefinition für den DFG-Benchmark. Üblicherweise werden so genannte Auftriebs- und Widerstandsbeiwerte (engl. lift, drag) sowie eine Druckdifferenz zwischen zwei festgelegten Punkten auf der Oberfläche des Zylinders verglichen. Durch den Einsatz der Ficticious-Boundary Methode ist die Berechnung der Widerstandsbeiwerte technisch sehr aufwendig und bisher wurde dazu für die dritte Dimension kein Verfahren eingeführt. Aus diesem Grund wird ein visueller Vergleich der Geschwindigkeits- und Druckfelder für drei Lösungen dargestellt, die auf verschieden erstellten Gittern basieren. Die ersten beiden Gitter wurden mit Hilfe der Software INGRID3DDEFORM erstellt. Für Lösung 1 wurde das Gitter nur mit der Gitterdeformationsmethode erstellt. Für Lösung 2 wurde eine nachträgliche Projektion von Gitterknoten auf den Objektrand durchgeführt. Für die Referenzlösung wurde manuell ein unstrukturiertes Gitter mit exakter Randanpassung generiert. Die Gitter für die drei verschiedenen Lösungen sind in Abbildung 7.19 im Bereich des Zylinders dargestellt. Abbildung 7.19: Drei Gitter für den DFG-Benchmark in der Nähe des Zylinders. Links: Gitter für Lösung 1. Mitte: Gitter für Lösung 2. Rechts: Gitter für Referenzlösung. Zum Vergleich der numerischen Qualität der jeweiligen Gitter wurde eine instationäre (zeitabhängige) Simulation mit den gleichen Parametern durchgeführt, welche einer Reynoldszahl von

91 7.5 Projektion zur Randanpassung 81 Re = 100 entsprechen. Weil der Zylinder nicht exakt mittig innerhalb des Gebiets positioniert ist, entsteht nach einer gewissen Zeit eine deutlich sichtbare Schwingung in der Strömung. Wie in Abbildung 7.20 zu sehen ist, ist der jeweilige Unterschied im Geschwindigkeitsfeld nach 18 Sekunden Simulationszeit sehr gering. Die Unterschiede im hinteren Bereich der Strömung nah am Ausflussrand sind vermutlich durch die unterschiedliche Feinheit der Gitter in diesem Bereich entstanden. Dennoch lässt sich eine Tendenz im Bereich des Zylinders erkennen, bei der Lösung 2 der Referenzlösung ähnlicher ist als die Lösung 1. Weitere Unterschiede im Geschwindigkeitsfeld sieht man auch in dem Bereich oberhalb des Zylinders, wo es auf Grund der Gebietsverengung zu höheren Geschwindigkeiten kommt. Das Stromlinienfeld ist bei Lösung 2 mit der Randprojektion weit ähnlicher als bei Lösung 1 ohne die Randprojektion. Eine mögliche Erklärung hierfür ist, dass ohne Randprojektion das von der FB-Methode gesehene Objekt ein geringeres Volumen besitzt als das tatsächliche Objekt. Dadurch entsteht mehr Volumen zwischen dem Objekt und dem Gebietsrand, was in einer geringeren Geschwindigkeit resultiert. Das Druckfeld der drei Lösungen zeigt ebenfalls nur sehr geringe Unterschiede (siehe Abbildung 7.21). In der zweiten Lösung sind Artefakte am Objektrand sichtbar, die vermutlich auf Grund der nicht vollständigen exakten Randanpassung entstanden sind, jedoch keinen Einfluss auf die Qualität der Lösung ausüben. Abbildung 7.20: Vergleich der Strömungsgeschwindigkeiten im DFG-Benchmark. Oben: Lösung 1, ohne Projektion auf den Objektrand. Mitte: Lösung 2, mit Projektion auf den Objektrand. Unten: Referenzlösung mit einem Gitter, welches manuell an den Rand angepasst wurde. Insgesamt lässt sich festhalten, dass mit den von INGRID3DDEFORM erstellten Gittern bereits durch die Fictitious-Boundary Methode eine Lösung berechnet wird, die sich kaum von der Referenzlösung unterscheidet. Eine nachträgliche Projektion kann jedoch die Qualität der Lösung verbessern. Daher sollte an einer Optimierung dieser Methode gearbeitet werden, so dass eine weitestgehend vollständige Randanpassung ermöglicht wird.

92 82 7. Resultate Abbildung 7.21: Vergleich des Druckfeldes im DFG-Benchmark. Oben: Lösung 1, ohne Projektion auf den Objektrand. Mitte: Lösung 2, mit Projektion auf den Objektrand. Unten: Referenzlösung mit einem Gitter, welches manuell an den Rand angepasst wurde. 7.6 Bewertung Nachfolgend sollen die erzielten Ergebnisse der Diplomarbeit diskutiert werden. Dazu werden zunächst die Methoden, die im Rahmen dieser Arbeit verwendet wurden, in dem globalen Kontext der gesamten Simulation betrachtet. Anschließend soll der Einsatz der entwickelten Software INGRID3DDEFORM als Hilfswerkzeug zur numerischen Strömungssimulation diskutiert werden. Abschließend wird ein Ergebnis präsentiert, welches erst durch diese Software möglich wurde Eingesetzte Methoden Im folgenden Abschnitt werden die Ergebnisse der einzelnen Methoden und ihre Beziehungen untereinander noch einmal herausgestellt. Spezialbaum zur Punktklassifizierung Ein zentrales Element der verwendeten Methoden ist der entwickelte Spezialbaum als Suchdatenstruktur. Für das Problem der Punktklassifizierung garantiert der Spezialbaum eine Laufzeit von O(N log M). Bei den experimentellen Untersuchungen sank jedoch die Zeit pro Knoten sogar mit Erhöhung der Knotenzahl, was den Spezialbaum somit mit einer Laufzeit von nahezu O(N) optimal macht. Sein Einsatz minimiert dabei die Anzahl der Dreiecke für die ein Schnitttest durchgeführt werden muss fast unabhängig von der Größe und Beschaffenheit der Oberflächentriangulierung. Dennoch ist eine weitere Optimierung durch eine bessere Balancierung des Baumes vorstellbar. Bei der Unterteilung eines Baumknotens wird bei dem vorgestellten Verfahren sein Intervall exakt halbiert, ohne die Dreiecksmengen in die Unterteilung mit einzubeziehen, die er tatsächlich enthält. Es müsste untersucht werden, ob sich die Aufteilung nach anderen Kriterien positiv auf die Laufzeit auswirkt. Zum Beispiel könnte eine Unterteilung des Knotens nach dem Median der Dreieckskoordinaten aller Dreiecke erfolgen, die in dem Knoten gespeichert sind. Diese Art der

93 7.6 Bewertung 83 Unterteilung würde zwar mehr Rechenzeit beim Aufbau des Baumes erfordern, jedoch wären die Dreiecksmengen gleichmäßiger auf seine Blätter aufgeteilt. Der Einsatz des Spezialbaumes ist sowohl zur Bestimmung des Initialbandes für die Fast Marching Methode als auch für die Projektionstechniken nicht optimal, da seine Funktionsweise ganz auf die Klassifizierung einzelner Punkte spezialisiert wurde. Soll mit Hilfe des Spezialbaums eine minimale Dreiecksmenge bestimmt werden, die sich zwischen zwei Knoten einer Kante befindet, so verzweigt sich die Tiefensuche im Spezialbaum bei langen Kanten sehr stark und liefert große Dreiecksmengen. Für diesen Fall wäre ein normaler Octree vermutlich die bessere Lösung. Jedoch ist das Ziel der Gittererstellung ein Gitter größtmöglicher Feinheit, also mit kleinstmöglichen Hexaedern und damit mit kurzen Kanten. Wächst im Laufe der Gittererstellung die Anzahl der Knoten, so wird gleichzeitig die Länge der Kanten geringer und damit sinkt die Verzweigung der Tiefensuche und die Anzahl der Dreiecke, die durch sie bestimmt wird. Die Laufzeit zur Bestimmung des Initialbandes für die Fast Marching Methode sinkt ab einer gewissen Gittergröße sogar unter die Laufzeit der Verbreitungsphase, die mit einer Laufzeit von O(N log N) mit größer werdendem N pro Knoten sogar weiter steigt. Damit ist der Einsatz des Spezialbaumes auch für die anderen Methoden akzeptabel, da er ab einer gewissen Knotenzahl, bzw. Kantenlänge die nahezu optimale Laufzeit erreicht. Distanzberechnung mit Fast Marching Die Berechnung des Distanzfeldes mit Hilfe der Fast Marching Methode ist mit einer Gesamtlaufzeit von O(N log N) fast optimal und dabei unabhängig vor der verwendeten Objektrepräsentation. Wird die so berechnete approximative Distanz als Monitorfunktion für die Gitterdeformation verwendet, so führen die Ungenauigkeiten im Distanzfeld zu vernachlässigbar geringen Unterschieden in der Gitterdeformation. Erfahrungsgemäß ist die Fast Marching Methode sehr robust und lässt sich auf einfache Weise an andere Monitorfunktionen (anstatt der euklidischen Distanz) anpassen, die zu anderen Ergebnissen der Gitterdeformationen führen können. Vor allem in Bezug auf die nachträgliche Randanpassung sind Untersuchungen mit anderen Monitorfunktionen zu empfehlen. Gitterdeformation Die Gitterdeformationsmethode funktioniert mit der vorgestellten Methode zur Bestimmung der Monitorfunktion für beliebige dreidimensionale Oberflächentriangulierungen unabhängig vom Genus oder der Anzahl der Objekte. Durch den Einsatz der Mehrgitterdeformation kann die Gitterqualität im Vergleich zum bisherigen Verfahren deutlich verbessert werden. Mit Hilfe der Fictitious-Boundary Methode kann somit eine Strömungssimulation für beliebige Objekte durchgeführt werden. Beim Einsatz der Gitterdeformation werden Objektdetails durch die Fictitious-Boundary Methode erst gesehen, wenn das Gitter fein genug ist und sich ganze Hexaederseitenflächen in ihrem Inneren befinden. Dadurch entstehen keine Probleme bei der Gittererstellung mit kleinen Details, die nicht bereits im Grobgitter erfasst wurden. Beim Golfmodell verursachen zum Beispiel die Details wie die Radkästen oder die Außenspiegel keine Einschränkungen für die Gittererstellung. Die Gitterqualität verschlechtert sich somit nicht durch Verfeinerung des Gitters, was bei exakt randangepassten Gittern vorkommen kann. Die mit dieser Methode einher gehende Ungenauigkeit kann dabei noch durch den Einsatz der Projektionstechniken gemindert werden. Einer der Vorteile der Gitterdeformation ist die Tatsache, dass kein exakt randangepasstes Grobgitter in einem Vorverarbeitungsschritt von Hand erstellt werden muss. Ein Nachteil ist die Tatsache, dass sich auch innerhalb des Objektes Hexaeder befinden. Diese fließen zwar nicht in die Berechnung ein (sind also unnötig), belegen jedoch Speicherplatz. Insgesamt wird die Gitterdeformation in Kombination mit der Fictitious-Boundary Methode als eine sehr

94 84 7. Resultate gute Lösung für die Gittererstellung eingeschätzt. Projektionstechniken Den Einfluss der Projektionstechniken auf die Qualität der Lösung für komplexe Objekte zu bestimmen, ist auf Grund fehlender Referenzwerte ohne sehr aufwendige Analysen nicht einfach. Selbst für einen standardisierten Benchmark ist dies schwer durchzuführen. Dennoch zeigen die Ergebnisse, dass bei Objekten wie dem Golf große Gebiete der Objektapproximation exakt randangepasst werden können. Die Projektionstechniken sind in diesem Fall eher als prototypisch anzusehen und bieten viele Verbesserungsmöglichkeiten. Zum einen ist die Laufzeit im Vergleich zu den anderen Methoden um ein Vielfaches langsamer, da sehr viele Projektionsrichtungen getestet werden und dazu sehr viele Schnitttests mit der Oberflächentriangulierung nötig sind. Zum anderen werden die Ergebnisse der Projektion schlechter, wenn das Gitter feiner wird. Bei feineren Gittern entstehen mehr Überschneidungen zwischen Gitterschichten und der Objektoberfläche. Es können also schlechter einzelne Gitterschichten komplett auf die Objektoberfläche projiziert werden, um eine großflächig exakte Randanpassung zu bilden. Es bietet sich an dieser Stelle jedoch die Möglichkeit, die Mehrgitterdeformation mit den Projektionstechniken zu kombinieren. Beim Einsatz der Mehrgitterdeformation ist die Änderung des Gitters durch die Gitterdeformation beispielsweise auf Ebene 4 erfahrungsgemäß minimal, wenn es zuvor auf den Ebenen 1 bis 3 mit den gleichen Parametern deformiert wurde. Es kann also auf Ebene 3 eine Projektion durchgeführt und das Gitter anschließend verfeinert werden, ohne eine Deformation auf Ebene 4 durchzuführen. Dadurch bleiben die exakt randangepassten Seitenflächen auch nach ihrer Unterteilung durch erneute Projektion exakt randangepasst. Diese Vorgehensweise ist jedoch sehr heuristisch und muss nicht unbedingt zu besseren Ergebnissen führen. Eine weniger heuristische Idee ist aus der Beobachtung heraus entstanden, dass Gitterschichten, die die Objektoberfläche schneiden, die zuvor beschriebenen Gräben in der exakten Randanpassung entstehen lassen. Um diese Gräben verschwinden zu lassen, müssten ganze Gitterschichten bewegt werden, um die Flächen mit der exakten Randanpassung zu ebnen. Zu diesem Zweck können eventuell die aktiven Konturen (engl. snakes) verwendet werden, die das Gitter in der Nähe der Objektoberfläche verschieben und dadurch Hexaederseitenflächen genauer an die Objektoberfläche anpassen könnten. Zusammenfassung Insgesamt bieten die vorgestellten Techniken eine gute Möglichkeit zur Erstellung von Gittern, die für eine Strömungssimulation genutzt werden können. Die eingesetzten Methoden nehmen dabei teilweise einen Bruchteil der Zeit ein, die von den bestehenden Methoden des FEATFLOW-Pakets (Gitterdeformation und Navier-Stokes Löser) gebraucht wird. Tabelle 7.15 zeigt die ermittelten Laufzeiten für die einzelnen Methoden auf den jeweiligen Ebenen der erstellten Mehrgitterhierarchie. Zur Ermittlung dieser Zeiten wurde eine Gitterhierarchie mit vier Ebenen erstellt, wobei jede Hierarchieebene einmal deformiert wurde. Die Zeit zum Aufbau des Spezialbaumes wird nur bei Gitterebene 1 aufgelistet, da der Spezialbaum nur einmal am Anfang der Prozedur aufgebaut werden muss. Die Laufzeit für die Gitterunterteilung ist diejenige Zeit, die für die reguläre Unterteilung einer Hierarchieebene gebraucht wird, das Grobgitter muss dabei nicht unterteilt werden. Die Projektion wird nur auf der letzten Hierarchieebene einmal durchgeführt. Das Ergebnis der Strömungssimulation ist in Abbildung 7.22 und 7.23 dargestellt, die Skala reicht dabei von rot für die maximale Geschwindigkeit zu blau für Stillstand. Die Punktklassifizierung und die Berechnung der Monitorfunktion dienen als Vorverarbeitungsschritte für die Gitterdeformationsmethode. Die Gesamtlaufzeit für einen Gitterdeformationsschritt wird also aus der Summe der einzelnen Methoden bestimmt. Für die Ebenen 1 bis 4 nehmen

95 7.6 Bewertung 85 Laufzeiten beim Golfmodell im Benchmarkkanal Hierarchieebene (N) 1 (1782) 2 (12427) 3 (92565) 4 (714025) Spezialbaum (Aufbau) 5,36E+3 Punktklassifizierung < Fast Marching (Initial,) ,69E+3 1,48E+4 Fast Marching (Verbr,) ,35E+3 Gitterdeformation 432 3,38E+3 3,05E+4 2,64E+5 Gitterunterteilung 1,10E+3 7,34E+3 5,77E+4 Projektion 5,69E+5 Löser (stationär) 5,72E+6 Tabelle 7.15: Zusammenfassung der Laufzeiten für das Golfmodell im Benchmarkkanal und einem aus Hexaedern bestehendem Grobgitter. dabei die Punktklassifizierung und die Berechnung der Monitorfunktion 12%, 8%, 20% und 6% der Gesamtlaufzeit für die Gitterdeformation ein. Die relativ zeitintensive Unterteilung der Gitter, begründet im Aufbau der Gitterdatenstruktur, nimmt dennoch auf jeder Hierarchieebene nur ca. 20%-30% der Laufzeit für die Gitterdeformation ein. Die Projektion ist wie zuvor beschrieben sehr langsam und dauert auf der letzten Hierarchieebene in etwa doppelt so lang wie die Gitterdeformation und länger als die Summe aller vorhergehenden Methoden. Jedoch beträgt die Laufzeit aller Methoden, inklusive der Projektion, immer noch nur 17% der Laufzeit für eine stationäre Lösung der Strömung, wobei üblicherweise eine instationäre Lösung berechnet wird, die für diese Gittergröße ein vielfaches dieser Laufzeit (mehrere Tage) dauern kann. Somit machen die eingesetzten Methoden zur Gittergenerierung, obwohl noch nicht vollständig optimiert, bereits nur einen kleinen Bruchteil der Gesamtlaufzeit für eine Strömungssimulation aus. Insgesamt kann der Einsatz von Parallelisierungstechniken im Zusammenhang mit Mehrkernprozessoren weitere Geschwindigkeitsgewinne mit sich bringen. Abbildung 7.22: Strömungssimulation für das Golfmodell im Benchmarkkanal. Darstellung des Geschwindigkeits- und des Druckfeldes von der Seite.

96 86 7. Resultate Abbildung 7.23: Strömungssimulation für das Golfmodell im Benchmarkkanal. Darstellung des Geschwindigkeits- und des Druckfeldes von oben INGRID3DDEFORM Nachfolgend werden Vor- und Nachteile der erstellte Software INGRID3DDEFORM zur Gittergenerierung aufgezeigt. Zuerst werden einige Nachteile dargestellt: Erhöhter Speicherbedarf Sowohl INGRID3DDEFORM als auch das FEATFLOW-Paket bauen auf eigenen Datenstrukturen auf, die jedoch eine große Menge redundanter Daten enthalten. Dadurch geht viel Speicherplatz verloren und die maximale Anzahl von Hexaedern die momentan in INGRID3DDEFORM verarbeitet werden kann beträgt ca , wobei ca. 2 GB Speicherplatz verbraucht wird. Eine Anpassung der Datenstrukturen könnte zusammen mit der Verwendung eines gemeinsamen Speicherbereichs einen großen Speicherplatzgewinn erlauben. Auch beim Export der Gitter ist der unterschiedliche Aufbau der Datenstrukturen hinderlich. Um eine vollständige Kompatibilität zu erreichen, ist bisher ein Austausch großer Datenmengen erforderlich. Wäre der Aufbau der Datenstrukturen gleich, so könnten diese Datenmengen drastisch reduziert werden. Ungenauigkeit der Objektapproximation Durch den Einsatz der Gitterdeformation und eines strukturierten Hexaedergitters ist es mit den bestehenden Techniken selbst für einfache Geometrien nicht möglich, eine vollständige Randanpassung vorzunehmen. Ein Einsatz der Fictitious-Boundary Methode bleibt erforderlich. Dadurch entstehen Ungenauigkeiten in der Objektapproximation, die zu zusätzlichen numerischen Ungenauigkeiten in der Lösung der Strömungssimulation führen können. Eine Verbesserung der Fictitious-Boundary Methode, bei der Hexaeder, die die Objektoberfläche schneiden, gesondert behandelt werden, könnte in diesem Fall die numerische Ungenauigkeit mindern. Dies würde jedoch eine Erweiterung der Methode der Finiten Elemente erfordern. Keine lokale Gitterverbesserung Durch die verwendeten Methoden ist es bisher nicht möglich, Operatoren zu verwenden, die nur lokal auf manuell festgelegte Bereiche wirken. Manchmal wäre es zum Beispiel einfacher, eine manuelle Verschiebung von Knoten vorzunehmen. Die eingesetzten Techniken wirken direkt auf das gesamte Gitter, was nicht immer erwünscht ist.

97 7.6 Bewertung 87 Nachfolgend werden die Vorteile der Software dargestellt, denn mit ihrer Hilfe können Gitter erstellt werden, die Strömungssimulationen für nahezu beliebige dreidimensionale Objekte erlauben. Des Weiteren existieren Programmfunktionen, die den Prozess der Gittererstellung relativ komfortabel gestalten. Interaktivität Alle eingesetzten Techniken können interaktiv gesteuert werden. Dies erlaubt Korrekturen und Nachbesserungen im Prozess der Gittererstellung. Die Gitterdeformation kann durch die Anpassung verschiedener Parameter in einem aus mehreren Schritten bestehenden Prozess angepasst werden, um zu einem besseren Ergebnis zu führen. Ebenso kann eine erfolgte Projektion, zum Beispiel durch die Nutzung von Glättungsoperatoren, wieder weitestgehend rückgängig gemacht werden. Kontrolle Durch visuelle und computergestützte Kontrollen kann das Gitter in jedem Schritt auf seine Tauglichkeit für eine Simulation überprüft werden. Speicher- und Ladefunktionen Die Möglichkeit, ein erstelltes Gitter zu speichern und wieder zu laden, kann die Gittererstellung deutlich vereinfachen. Falls sich ein Gitter als untauglich erweist, kann die Gittererstellung an einem vorher gespeicherten Zustand wieder aufgenommen werden. Kompatibilität Die erstellten Gitter sind vollkommen kompatibel zu jeder Applikation die auf den FEATFLOW-Paketen basieren und damit vielfach einsetzbar. Erweiterbarkeit Die Software bietet eine Umgebung zur Integration neuer Methoden und Verfahren, die gleichzeitig auf Grund der Kontrollmechanismen relativ komfortabel getestet werden können. Zum Beispiel können auf einfache Weise unterschiedliche Monitorfunktionen definiert werden, die nicht auf der euklidischen Distanz zur Objektoberfläche beruhen Erweiterte Visualisierung für die DFG Im Rahmen der Arbeit an dieser Software wurde eine Strömungssimulation an Testobjekt 6 durchgeführt. Die mit Hilfe der Software INGRID3DDEFORM berechnete instationäre Strömungssimulation wurde unter Einsatz diverser externer Programme visualisiert und wird in einem Kalender der Deutschen Forschungsgemeinschaft (DFG 1 ) erscheinen. Berechnet wurde die Simulation auf einem Gitter mit ca Hexaedern, es wurden also lineare Gleichungssysteme mit ca. sieben Millionen Unbekannten gelöst. Das Ergebnis wird in Abbildung 7.24 dargestellt und zeigt eine weiter gehende Möglichkeit zur Visualisierung der in INGRID3DDEFORM erstellten Datenmengen. Gleichzeitig verdeutlicht es das Potential dieser Software zur Berechnung von Strömungssimulationen um nahezu beliebig komplexe dreidimensionale Objekte. 1 Informationen zur DFG sind unter zu finden.

98 88 7. Resultate Abbildung 7.24: Bild für den DFG Kalender. Zu sehen ist eine gerenderte Darstellung der beiden Objekte mit Partikelverfolgung und zwei Schnittebenen des simulierten Geschwindigkeitsfeldes. Der kleine Bildausschnitt zeigt zwei Schichten des erstellten Gitters und die Objekte als Oberflächentriangulationen.

99 89 Kapitel 8 Ausblick Das folgende Kapitel soll Ideen für eine mögliche Weiterentwicklung der Software IN- GRID3DDEFORM skizzieren. Es wird zuerst eine Reihe von Optimierungen der bestehenden Techniken dargestellt, bevor mögliche ein paar Ideen für neue Verfahren vorgestellt werden, die zu besseren Ergebnissen führen können. 8.1 Optimierungen Ein wichtiger Schritt in der Weiterentwicklung der Software ist die Optimierung der verwendeten Methoden. Einige Ideen zur Verbesserung der einzelnen Methoden wurden bereits in Kapitel 7.6 vorgestellt. Von den nachfolgend vorgestellten Vorschlägen zur Optimierung sind einige essentiell, wohingegen andere eine eher untergeordnete Rolle spielen. Die Reihenfolge der Vorschläge entspricht ihrer Priorität für eine Integration in die Software. Die Priorität basiert auf den Erfahrungen, die in der Entwicklungszeit von INGRID3DDEFORM gesammelt wurden, und stellt im Grunde einen Plan für die Weiterentwicklung dar. Datenstruktur Zuerst sollte die Gitterdatenstruktur der Software an die von FEATFLOW angepasst werden. Beide Datenstrukturen parallel zu verwalten, ist sehr speicherintensiv und im Grunde unnötig. Ein Manko der aktuellen Datenstruktur in INGRID3DDEFORM besteht in der eher langsamen Unterteilung einer Hierarchieebene und ein anderes entsteht durch die notwendigen Konvertierungen für eine Kompatibilität mit der FEATFLOW Datenstruktur. Andererseits bietet die Datenstruktur von FEATFLOW nicht alle Funktionen, die in INGRID3DDEFORM verwendet werden. Es bietet sich daher eine Kombination beider Datenstrukturen an, die auf der FEATFLOW Datenstruktur basiert und gleichzeitig die grundlegende Funktionalität der bisherigen Datenstruktur von IN- GRID3DDEFORM erhält. Weiterhin sollte eine Kompatibilität zu den Softwarepaketen FEAST und FEATFLOW 2 gewährleistet werden, die am Lehrstuhl für Angewandte Mathematik und Numerik beim Fachbereich Mathematik an der Universität Dortmund entwickelt werden. Fictitious-Boundary Methode Auf Grund der Erfahrungen, die im Laufe dieser Diplomarbeit gesammelt wurden, bietet die Fictitious-Boundary Methode sehr viele Vorteile und Freiheiten bei der Gittererstellung. Ein vollkommener Verzicht auf diese Methode kann nur mit langjähriger Forschungsarbeit erreicht werden. Daher wäre eine Verbesserung der numerischen Genauigkeit dieser Methode ein wichtiges

100 90 8. Ausblick Kriterium für qualitativ wertvolle Ergebnisse. Dazu müssen diejenigen Hexaeder gesondert behandelt werden, die trotz der Projektionstechniken durch die Objektoberfläche geschnitten werden. Eine Möglichkeit würde hybride Gitter erfordern, bei denen die Hexaeder entlang ihrer Schnittfläche mit der Objektoberfläche durch andere Gitterelemente wie zum Beispiel Tetraeder unterteilt werden würden. Die so neu erstellten Tetraeder könnten sich besser exakt an die Objektoberfläche anpassen lassen. Eine andere Möglichkeit besteht in der Anpassung der Methode der Finiten Elemente, bei der die Schnittfläche mit der Objektoberfläche innerhalb der Hexaeder möglichst genau approximiert werden müsste. In einem Großteil der entstehenden Problemfälle würde es zum Beispiel reichen, eine zusätzliche diagonale Seitenfläche in den Hexaedern zu definieren, um eine bessere Approximation zu erreichen. Mehrgitteralgorithmus Die Gitterdeformationsmethode wird ab einer Gittergröße von ca Knoten deutlich langsamer als die restlichen verwendeten Methoden zur Gittererstellung. Trotz des Einsatzes der Mehrgitterdeformation, bei der auf den feineren Gittern die Auswirkung eines weiteren Gitterdeformationsschrittes minimal ist, müssen große lineare Gleichungssysteme aufgestellt und gelöst werden. Ein Einsatz des Mehrgitteralgorithmus zur schnelleren Lösung dieser Gleichungssysteme ist daher sehr zu empfehlen. Interaktion mit allen Hierarchieebenen Momentan ist eine Interaktion nur mit der aktuell feinsten Hierarchieebene möglich. Zu Entwicklungszwecken bietet es sich jedoch an, eine Interaktion mit den vorherigen Hierarchieebenen zu ermöglichen. Zumindest die Visualisierung aller Hierarchieebenen sollte auf einfache Weise möglich sein. Für eine Änderung der Gitterpositionen auf den gröberen Hierarchieebenen müsste eine entsprechende Translation für die Positionen der Gitterknoten auf den feineren Hierarchieebenen entwickelt werden. Datenstruktur für Triangulierung Der Spezialbaum ist bisher nur auf eine effiziente Punktklassifizierung ausgelegt. Für andere Methoden, zum Beispiel eine Kollisionserkennung bei mehreren sich bewegenden Objekten, bieten sich andere Hüllkörperdatenstrukturen an, die für diese Art von Problemen spezifiziert sind. Eine Erweiterung um eine solche Datenstruktur wird in naher Zukunft notwendig sein. Eventuell kann mit einer solchen Datenstruktur die Initialphase der Fast Marching Methode ebenso wie die Methoden zur Projektion beschleunigt werden. Unterschiedliche Monitorfunktionen Für die Qualität der Gitterdeformation spielt die Art der Montorfunktion eine entscheidende Rolle, daher können verschiedene Arten von Monitorfunktionen in die Software integriert werden, um dem Benutzer eine Auswahl verschiedener Möglichkeiten zu bieten, die Gitterdeformation beeinflussen zu können. Anstatt der Euklidischen- kann zum Beispiel die Maximum-Metrik als Monitorfunktion verwendet werden. In Kapitel wurde die Problematik der Gitterdeformation mit einer auf der Euklidischen Distanz beruhenden Monitorfunktion für das Beispiel des Würfels dargestellt. Mit Hilfe der Maximum-Metrik als Monitorfunktion, für deren Berechnung sich die Fast Marching Methode genauso gut eignet, lässt sich ein Gitter so deformieren, dass nachträglich eine vollständige exakte Randanpassung durch die Projektion möglich wird (siehe Abbildung 8.1). Der Parameter α für die Skalierung der Monitorfunktion zu inneren Knoten muss dazu auf den Wert α = 1.5 eingestellt werden.

101 8.2 Erweiterte Möglichkeiten zur Verbesserung der Gittererzeugung 91 Abbildung 8.1: Beispiel für Gitterdeformation und Projektion mit Maximum-Metrik als Monitorfunktion. Links: Darstellung der Monitorfunktion aus der Maximum-Metrik. Mitte: Darstellung des deformierten Gitters. Rechts: Darstellung des deformierten Gitters und der exakt an die Objektoberfläche angepassten Approximation. 8.2 Erweiterte Möglichkeiten zur Verbesserung der Gittererzeugung Der folgende Abschnitt beschreibt drei Beispiele für eine mögliche Entwicklung neuer Methoden, die bei der Gittererstellung in einem geringeren Randapproximationsfehler resultieren können, also eine möglichst vollständige exakt randangepasste Objektapproximation zum Ziel haben. Gitterdeformation Die eingesetzte Methode zur Gitterdeformation beruht auf einer vorgegebenen Zielfunktion (Monitorfunktion) für die Größe der Hexaeder. Es ist, wie bereits beschrieben, möglich, mit unterschiedlichen Monitorfunktionen zu arbeiten und somit die Gitterdeformation zu steuern. Würde die Gitterdeformationsmethode so angepasst werden, dass sie zusätzlich zur Hexaedergröße, ihre Lage und Qualität berücksichtigt, so könnte dies zu Gittern führen, die sich besser an die Objektoberfläche anpassen lassen. NURBS Eine Erweiterung um die von Hein [2007] entwickelten Methoden, die auf einer Beschreibung der Objektoberfläche mit NURBS basiert, ist möglich. Durch NURBS definierte Objekte haben den Vorteil, dass sie gekrümmte Oberflächen exakt definieren, im Gegensatz zu den Oberflächentriangulierungen, mit deren Hilfe nur eine Approximation möglich ist. Die Approximation kann zwar nahezu beliebig genau werden, bleibt jedoch eine Approximation. Ein weiterer Vorteil der Beschreibung durch NURBS ist, dass sie per Definition bereits eine Parametrisierung bieten, was sich für einige Methoden als vorteilhaft erweisen könnte. Es ist sogar eine Kombination aus NURBS und Oberflächentriangulierung vorstellbar, die auf den ersten Gitterebenen die schnellen Methoden der Oberflächentriangulierung nutzen und im letzten Schritt auf die langsameren aber genaueren, auf NURBS basierenden Methoden wechseln. Spezielle Geometrien Es existieren spezielle Objekte, für die besondere Techniken entwickelt werden können, die zu besseren Ergebnissen für die Approximation der Objekte führen können. Soll eine Strömung für eine auf dem Wasser schwimmende Ragattasegelyacht simuliert werden, so erfüllt das Modell

102 92 8. Ausblick dieser Yacht gleich zwei Besonderheiten, aus denen Vorteile gewonnen werden können. Die Abbildungen 8.2 und 8.3 zeigen das berechnete Druck- sowie Geschwindigkeitsfeld für eine stationäre Simulation um ein selbst erstelltes Modell einer Ragattasegelyacht mit so genanntem Kippkiel zu ihrer Stabilisierung. Abbildung 8.2: Darstellung des berechneten Druckfeldes für das Yachtmodell. Links: Darstellung des Druckfeldes einer Gitterschicht durch das Objekt. Rechts: Darstellung des Druckfeldes an einem Flügel der so genannten Kielbombe. Abbildung 8.3: Darstellung des berechneten Geschwindigkeitsfeldes für das Modell einer Ragattasegelyacht. Links: Darstellung zweier Gitterschichten und einem transparenten Objekt. Rechts: Darstellung zweier Gitterschichten und der verwendeten Objektapproximation. Eine Besonderheit der Ragattasegelyacht ist ihre Symmetrie, bei dieser Art von Objekten wäre es theoretisch möglich, ein Gitter für nur eine Hälfte des Gebiets zu erstellen. Dieses könnte im Anschluss an die Gittergenerierung entlang der Symmetrieachse des Objekts gespiegelt werden, um ein vollständiges Gitter für eine Simulation zu erhalten. Mit diesem Verfahren könnte entweder die Rechenzeit zur Erstellung eines Gitters halbiert, oder ein doppelt so großes Gitter in einer ähnlichen Laufzeit erstellt werden. Andererseits ist es auf Grund der Symmetrie sogar möglich, eine Simulation mit entsprechenden Randbedingungen nur auf einer Hälfte des Gebiets zu berechnen. Zum anderen ragt das Modell über die Gebietsgrenzen hinaus. Eine exakte Randanpassung am Rumpf des Objekts wird dadurch erschwert, dass viele Gitterschichten dort die Objektoberfläche

103 8.2 Erweiterte Möglichkeiten zur Verbesserung der Gittererzeugung 93 schneiden. Wie in Abbildung 8.4 dargestellt, existieren Hexaeder im Inneren des Modells, deren Knoten üblicherweise fest am Gebietsrand verankert sind. Wäre es möglich, die Knoten des Gitters, die am Gebietsrand liegen, von dort zu lösen und einer Membran ähnlich an den Rumpf der Yacht anzupassen, könnte dies in einer deutlich besseren Randanpassung resultieren. Hier könnte eventuell ein durch NURBS definiertes Gebiet von Vorteil sein, welches an den Rumpf der Yacht angepasst wird. Eine Erweiterung der Software INGRID3DDEFORM um die vorgestellten Verbesserungen wäre insbesondere im Hinblick auf eine Nutzung der Gittererstellung für industrielle Zwecke vorteilhaft. Abbildung 8.4: Darstellung einer Gitterschicht im Inneren des Modells einer Ragattasegelyacht. Die oberen Gitterknoten der dargestellten Schicht wurden bereits zu Testzwecken vom Gebietsrand losgelöst.

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

CFD * in der Gebäudetechnik

CFD * in der Gebäudetechnik CFD * in der Gebäudetechnik * CFD = Computational Fluid Dynamics Innenraumströmung Systemoptimierung Weitwurfdüsen Anordnung von Weitwurfdüsen in einer Mehrzweckhalle Reinraumtechnik Schadstoffausbreitung

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Kevin Caldwell. 18.April 2012

Kevin Caldwell. 18.April 2012 im Rahmen des Proseminars Numerische Lineare Algebra von Prof.Dr.Sven Beuchler 18.April 2012 Gliederung 1 2 3 Mathematische Beschreibung von naturwissenschaftlich-technischen Problemstellungen führt häufig

Mehr

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte 50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Anhand des bereits hergeleiteten Models erstellen wir nun mit der Formel

Anhand des bereits hergeleiteten Models erstellen wir nun mit der Formel Ausarbeitung zum Proseminar Finanzmathematische Modelle und Simulationen bei Raphael Kruse und Prof. Dr. Wolf-Jürgen Beyn zum Thema Simulation des Anlagenpreismodels von Simon Uphus im WS 09/10 Zusammenfassung

Mehr

A Vortex Particle Method for Smoke, Fire, and Explosions

A Vortex Particle Method for Smoke, Fire, and Explosions Hauptseminar WS 05/06 Graphische Datenverarbeitung A Vortex Particle Method for Smoke, Fire, and Explosions ( Ein Wirbel-Partikel Ansatz für Rauch, Feuer und Explosionen ) Martin Petrasch Inhalt 1. Überblick

Mehr

Lineare Funktionen. 1 Proportionale Funktionen 3 1.1 Definition... 3 1.2 Eigenschaften... 3. 2 Steigungsdreieck 3

Lineare Funktionen. 1 Proportionale Funktionen 3 1.1 Definition... 3 1.2 Eigenschaften... 3. 2 Steigungsdreieck 3 Lineare Funktionen Inhaltsverzeichnis 1 Proportionale Funktionen 3 1.1 Definition............................... 3 1.2 Eigenschaften............................. 3 2 Steigungsdreieck 3 3 Lineare Funktionen

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Brückenkurs Mathematik TU Dresden 2015 Lineare Gleichungssysteme Schwerpunkte: Modellbildung geometrische Interpretation Lösungsmethoden Prof. Dr. F. Schuricht TU Dresden, Fachbereich Mathematik auf der

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Lineare Gleichungssysteme 1 Zwei Gleichungen mit zwei Unbekannten Es kommt häufig vor, dass man nicht mit einer Variablen alleine auskommt, um ein Problem zu lösen. Das folgende Beispiel soll dies verdeutlichen

Mehr

Berechnung der Erhöhung der Durchschnittsprämien

Berechnung der Erhöhung der Durchschnittsprämien Wolfram Fischer Berechnung der Erhöhung der Durchschnittsprämien Oktober 2004 1 Zusammenfassung Zur Berechnung der Durchschnittsprämien wird das gesamte gemeldete Prämienvolumen Zusammenfassung durch die

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

Excel 2013. Fortgeschrittene Techniken. Peter Wies. 1. Ausgabe, März 2013 EX2013F

Excel 2013. Fortgeschrittene Techniken. Peter Wies. 1. Ausgabe, März 2013 EX2013F Excel 2013 Peter Wies 1. Ausgabe, März 2013 Fortgeschrittene Techniken EX2013F 15 Excel 2013 - Fortgeschrittene Techniken 15 Spezielle Diagrammbearbeitung In diesem Kapitel erfahren Sie wie Sie die Wert-

Mehr

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Vollständigkeit halber aufgeführt. Gehen wir einmal davon aus, dass die von uns angenommenen 70% im Beispiel exakt berechnet sind. Was würde

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

(1) Problemstellung. (2) Kalman Filter

(1) Problemstellung. (2) Kalman Filter Inhaltsverzeichnis (1) Problemstellung...2 (2) Kalman Filter...2 Funktionsweise... 2 Gleichungen im mehrdimensionalen Fall...3 Schätzung des Systemzustands...3 Vermuteter Schätzfehler... 3 Aktualisierung

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

Modellbildungssysteme: Pädagogische und didaktische Ziele

Modellbildungssysteme: Pädagogische und didaktische Ziele Modellbildungssysteme: Pädagogische und didaktische Ziele Was hat Modellbildung mit der Schule zu tun? Der Bildungsplan 1994 formuliert: "Die schnelle Zunahme des Wissens, die hohe Differenzierung und

Mehr

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x + 400 y = 520 300x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775,

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x + 400 y = 520 300x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775, Aufgabenpool für angewandte Mathematik / 1. Jahrgang V B, C, D Drinks Ein gastronomischer Betrieb kauft 300 Dosen Energydrinks (0,3 l) und 400 Liter Flaschen Mineralwasser und zahlt dafür 50, Euro. Einen

Mehr

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über Güte von s Grundlegendes zum Konzept der Güte Ableitung der Gütefunktion des Gauss im Einstichprobenproblem Grafische Darstellung der Gütefunktionen des Gauss im Einstichprobenproblem Ableitung der Gütefunktion

Mehr

Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test?

Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test? Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test? Auch wenn die Messungsmethoden ähnlich sind, ist das Ziel beider Systeme jedoch ein anderes. Gwenolé NEXER g.nexer@hearin gp

Mehr

FB IV Mathematik Universität Trier. Präsentation von Nadja Wecker

FB IV Mathematik Universität Trier. Präsentation von Nadja Wecker FB IV Mathematik Universität Trier Präsentation von Nadja Wecker 1) Einführung Beispiele 2) Mathematische Darstellung 3) Numerischer Fluss für Diffusionsgleichung 4) Konvergenz 5) CFL-Bedingung 6) Zusammenfassung

Mehr

Festigkeit von FDM-3D-Druckteilen

Festigkeit von FDM-3D-Druckteilen Festigkeit von FDM-3D-Druckteilen Häufig werden bei 3D-Druck-Filamenten die Kunststoff-Festigkeit und physikalischen Eigenschaften diskutiert ohne die Einflüsse der Geometrie und der Verschweißung der

Mehr

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland OECD Programme for International Student Assessment Deutschland PISA 2000 Lösungen der Beispielaufgaben aus dem Mathematiktest Beispielaufgaben PISA-Hauptstudie 2000 Seite 3 UNIT ÄPFEL Beispielaufgaben

Mehr

SDD System Design Document

SDD System Design Document SDD Software Konstruktion WS01/02 Gruppe 4 1. Einleitung Das vorliegende Dokument richtet sich vor allem an die Entwickler, aber auch an den Kunden, der das enstehende System verwenden wird. Es soll einen

Mehr

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

SS 2005 FAU Erlangen 20.6.2005. Eine Wegeplanungs-Strategie. Jeremy Constantin, Michael Horn, Björn Gmeiner

SS 2005 FAU Erlangen 20.6.2005. Eine Wegeplanungs-Strategie. Jeremy Constantin, Michael Horn, Björn Gmeiner SS 2005 FAU Erlangen 20.6.2005 Voronoi Diagramm Eine Wegeplanungs-Strategie Jeremy Constantin, Michael Horn, Björn Gmeiner Grundseminar: Umgebungsexploration und Wegefindung mit Robotern am Beispiel "Katz

Mehr

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen Austausch- bzw. Übergangsrozesse und Gleichgewichtsverteilungen Wir betrachten ein System mit verschiedenen Zuständen, zwischen denen ein Austausch stattfinden kann. Etwa soziale Schichten in einer Gesellschaft:

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

1. Sichtbarkeitsproblem beim Rendern einer dreidimensionalen Szene auf einer zweidimensionalen

1. Sichtbarkeitsproblem beim Rendern einer dreidimensionalen Szene auf einer zweidimensionalen 3D-Rendering Ulf Döring, Markus Färber 07.03.2011 1. Sichtbarkeitsproblem beim Rendern einer dreidimensionalen Szene auf einer zweidimensionalen Anzeigefläche (a) Worin besteht das Sichtbarkeitsproblem?

Mehr

Simulation von räumlich verteilten kontinuierlichen Modellen

Simulation von räumlich verteilten kontinuierlichen Modellen Vorlesungsreihe Simulation betrieblicher Prozesse Simulation von räumlich verteilten kontinuierlichen Modellen Prof. Dr.-Ing. Thomas Wiedemann email: wiedem@informatik.htw-dresden.de HOCHSCHULE FÜR TECHNIK

Mehr

Zahlen auf einen Blick

Zahlen auf einen Blick Zahlen auf einen Blick Nicht ohne Grund heißt es: Ein Bild sagt mehr als 1000 Worte. Die meisten Menschen nehmen Informationen schneller auf und behalten diese eher, wenn sie als Schaubild dargeboten werden.

Mehr

Use Cases. Use Cases

Use Cases. Use Cases Use Cases Eigenschaften: Ein Use Case beschreibt einen Teil des Verhaltens eines Systems aus externer Sicht (Formuliert in der der Fachsprache der Anwendung) Dies geschieht, indem ein Systemdialog beschrieben

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Programm 4: Arbeiten mit thematischen Karten

Programm 4: Arbeiten mit thematischen Karten : Arbeiten mit thematischen Karten A) Anteil der ausländischen Wohnbevölkerung an der Wohnbevölkerung insgesamt 2001 in Prozent 1. Inhaltliche und kartographische Beschreibung - Originalkarte Bei dieser

Mehr

Kapitalerhöhung - Verbuchung

Kapitalerhöhung - Verbuchung Kapitalerhöhung - Verbuchung Beschreibung Eine Kapitalerhöhung ist eine Erhöhung des Aktienkapitals einer Aktiengesellschaft durch Emission von en Aktien. Es gibt unterschiedliche Formen von Kapitalerhöhung.

Mehr

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während

Mehr

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger Software Engineering (Übungsblatt 2) Sommersemester 2012, Dr. Andreas Metzger Übungsblatt-Themen: Prinzip, Technik, Methode und Werkzeug; Arten von Wartung; Modularität (Kohäsion/ Kopplung); Inkrementelle

Mehr

Lineare Differentialgleichungen erster Ordnung erkennen

Lineare Differentialgleichungen erster Ordnung erkennen Lineare Differentialgleichungen erster Ordnung In diesem Kapitel... Erkennen, wie Differentialgleichungen erster Ordnung aussehen en für Differentialgleichungen erster Ordnung und ohne -Terme finden Die

Mehr

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!. 040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl

Mehr

Informationen zum Aufnahmetest Mathematik

Informationen zum Aufnahmetest Mathematik Erwachsenenschule Bremen Abendgymnasium und Kolleg Fachvertretung Mathematik Informationen zum Aufnahmetest Mathematik Der Aufnahmetest Mathematik ist eine schriftliche Prüfung von 60 Minuten Dauer. Alle

Mehr

Informationssicherheit als Outsourcing Kandidat

Informationssicherheit als Outsourcing Kandidat Informationssicherheit als Outsourcing Kandidat aus Kundenprojekten Frankfurt 16.06.2015 Thomas Freund Senior Security Consultant / ISO 27001 Lead Auditor Agenda Informationssicherheit Outsourcing Kandidat

Mehr

Einführung in die Algebra

Einführung in die Algebra Prof. Dr. H. Brenner Osnabrück SS 2009 Einführung in die Algebra Vorlesung 13 Einheiten Definition 13.1. Ein Element u in einem Ring R heißt Einheit, wenn es ein Element v R gibt mit uv = vu = 1. DasElementv

Mehr

Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen?

Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen? Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen können zwei Ebenen (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen? Wie heiÿt

Mehr

Rekursionen. Georg Anegg 25. November 2009. Methoden und Techniken an Beispielen erklärt

Rekursionen. Georg Anegg 25. November 2009. Methoden und Techniken an Beispielen erklärt Methoden und Techniken an Beispielen erklärt Georg Anegg 5. November 009 Beispiel. Die Folge {a n } sei wie folgt definiert (a, d, q R, q ): a 0 a, a n+ a n q + d (n 0) Man bestimme eine explizite Darstellung

Mehr

3. Zusammenhang. 22 Andreas Gathmann

3. Zusammenhang. 22 Andreas Gathmann 22 Andreas Gathmann 3. Zusammenhang Eine der anschaulichsten Eigenschaften eines topologischen Raumes ist wahrscheinlich, ob er zusammenhängend ist oder aus mehreren Teilen besteht. Wir wollen dieses Konzept

Mehr

Lichtbrechung an Linsen

Lichtbrechung an Linsen Sammellinsen Lichtbrechung an Linsen Fällt ein paralleles Lichtbündel auf eine Sammellinse, so werden die Lichtstrahlen so gebrochen, dass sie durch einen Brennpunkt der Linse verlaufen. Der Abstand zwischen

Mehr

Protokoll 1. 1. Frage (Aufgabentyp 1 Allgemeine Frage):

Protokoll 1. 1. Frage (Aufgabentyp 1 Allgemeine Frage): Protokoll 1 a) Beschreiben Sie den allgemeinen Ablauf einer Simulationsaufgabe! b) Wie implementieren Sie eine Einlass- Randbedingung (Ohne Turbulenz!) in OpenFOAM? Geben Sie eine typische Wahl für U und

Mehr

Informationsblatt Induktionsbeweis

Informationsblatt Induktionsbeweis Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln

Mehr

3.2 Spiegelungen an zwei Spiegeln

3.2 Spiegelungen an zwei Spiegeln 3 Die Theorie des Spiegelbuches 45 sehen, wenn die Person uns direkt gegenüber steht. Denn dann hat sie eine Drehung um die senkrechte Achse gemacht und dabei links und rechts vertauscht. 3.2 Spiegelungen

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Anmerkungen zur Übergangsprüfung

Anmerkungen zur Übergangsprüfung DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung

Mehr

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis Unterrichtsmaterialien in digitaler und in gedruckter Form Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis Das komplette Material finden Sie hier: Download bei School-Scout.de

Mehr

Maschinenbau Erneuerbare Energien. Bachelorarbeit. Numerische Simulation zur Umströmung einer Photovoltaikanlage. Irmela Blaschke

Maschinenbau Erneuerbare Energien. Bachelorarbeit. Numerische Simulation zur Umströmung einer Photovoltaikanlage. Irmela Blaschke Beuth Hochschule für Technik Berlin University of Applied Sciences Fachbereich VIII Maschinenbau Erneuerbare Energien CFX Berlin Software GmbH Karl-Marx-Allee 90 10243 Berlin Bachelorarbeit Numerische

Mehr

Senkung des technischen Zinssatzes und des Umwandlungssatzes

Senkung des technischen Zinssatzes und des Umwandlungssatzes Senkung des technischen Zinssatzes und des Umwandlungssatzes Was ist ein Umwandlungssatz? Die PKE führt für jede versicherte Person ein individuelles Konto. Diesem werden die Beiträge, allfällige Einlagen

Mehr

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse: Informationssystemanalyse Problemstellung 2 1 Problemstellung Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse: große Software-Systeme werden im Schnitt ein Jahr zu spät

Mehr

TECHNISCHE UNIVERSITÄT MÜNCHEN

TECHNISCHE UNIVERSITÄT MÜNCHEN TECHISCHE UIVERSITÄT MÜCHE Zentrum Mathematik PRF. R.R. JÜRGE RICHTER-GEBERT, VAESSA KRUMMECK, MICHAEL PRÄHFER Höhere Mathematik für Informatiker I (Wintersemester 003/004) Aufgabenblatt 1 (4. ktober 003)

Mehr

1 C H R I S T O P H D R Ö S S E R D E R M A T H E M A T I K V E R F Ü H R E R

1 C H R I S T O P H D R Ö S S E R D E R M A T H E M A T I K V E R F Ü H R E R C H R I S T O P H D R Ö S S E R D E R M A T H E M A T I K V E R F Ü H R E R L Ö S U N G E N Seite 7 n Wenn vier Menschen auf einem Quadratmeter stehen, dann hat jeder eine Fläche von 50 mal 50 Zentimeter

Mehr

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung. Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,

Mehr

BSV Ludwigsburg Erstellung einer neuen Internetseite

BSV Ludwigsburg Erstellung einer neuen Internetseite BSV Ludwigsburg Erstellung einer neuen Internetseite Änderungshistorie Version Datum Bearbeiter Änderung 0.1 02.06.2012 A. Lorenz Neuanlage Seite 1/9 1 Inhaltsverzeichnis: 1 Inhaltsverzeichnis:... 2 2

Mehr

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am 14.08.08

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am 14.08.08 Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements von Stephanie Wilke am 14.08.08 Überblick Einleitung Was ist ITIL? Gegenüberstellung der Prozesse Neuer

Mehr

Mathematik. UND/ODER Verknüpfung. Ungleichungen. Betrag. Intervall. Umgebung

Mathematik. UND/ODER Verknüpfung. Ungleichungen. Betrag. Intervall. Umgebung Mathematik UND/ODER Verknüpfung Ungleichungen Betrag Intervall Umgebung Stefan Gärtner 004 Gr Mathematik UND/ODER Seite UND Verknüpfung Kommentar Aussage Symbolform Die Aussagen Hans kann schwimmen p und

Mehr

2.8 Grenzflächeneffekte

2.8 Grenzflächeneffekte - 86-2.8 Grenzflächeneffekte 2.8.1 Oberflächenspannung An Grenzflächen treten besondere Effekte auf, welche im Volumen nicht beobachtbar sind. Die molekulare Grundlage dafür sind Kohäsionskräfte, d.h.

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

Binärdarstellung von Fliesskommazahlen

Binärdarstellung von Fliesskommazahlen Binärdarstellung von Fliesskommazahlen 1. IEEE 754 Gleitkommazahl im Single-Format So sind in Gleitkommazahlen im IEEE 754-Standard aufgebaut: 31 30 24 23 0 S E E E E E E E E M M M M M M M M M M M M M

Mehr

11.3 Komplexe Potenzreihen und weitere komplexe Funktionen

11.3 Komplexe Potenzreihen und weitere komplexe Funktionen .3 Komplexe Potenzreihen und weitere komplexe Funktionen Definition.) komplexe Folgen: z n = x n + j. y n mit zwei reellen Folgen x n und y n.) Konvergenz: Eine komplexe Folge z n = x n + j. y n heißt

Mehr

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof Bedienungsanleitung für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof Matthias Haasler Version 0.4 Webadministrator, email: webadmin@rundkirche.de Inhaltsverzeichnis 1 Einführung

Mehr

5.2 Neue Projekte erstellen

5.2 Neue Projekte erstellen 5.2 Neue Projekte erstellen Das Bearbeiten von bestehenden Projekten und Objekten ist ja nicht schlecht wie aber können Sie neue Objekte hinzufügen oder gar völlig neue Projekte erstellen? Die Antwort

Mehr

Erfolg und Vermögensrückgänge angefertigt im Rahmen der Lehrveranstaltung Nachrichtentechnik von: Eric Hansen, eric-hansen@gmx.de am: 07.09.

Erfolg und Vermögensrückgänge angefertigt im Rahmen der Lehrveranstaltung Nachrichtentechnik von: Eric Hansen, eric-hansen@gmx.de am: 07.09. Abstract zum Thema Handelssysteme Erfolg und Vermögensrückgänge angefertigt im Rahmen der Lehrveranstaltung Nachrichtentechnik von: Eric Hansen, eric-hansen@gmx.de am: 07.09.01 Einleitung: Handelssysteme

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen 1. Quadratische Gleichungen Quadratische Gleichungen lassen sich immer auf die sog. normierte Form x 2 + px + = 0 bringen, in

Mehr

4 Aufzählungen und Listen erstellen

4 Aufzählungen und Listen erstellen 4 4 Aufzählungen und Listen erstellen Beim Strukturieren von Dokumenten und Inhalten stellen Listen und Aufzählungen wichtige Werkzeuge dar. Mit ihnen lässt sich so ziemlich alles sortieren, was auf einer

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

Mehr

WAS finde ich WO im Beipackzettel

WAS finde ich WO im Beipackzettel WAS finde ich WO im Beipackzettel Sie haben eine Frage zu Ihrem? Meist finden Sie die Antwort im Beipackzettel (offiziell "Gebrauchsinformation" genannt). Der Aufbau der Beipackzettel ist von den Behörden

Mehr

WinWerk. Prozess 4 Akonto. KMU Ratgeber AG. Inhaltsverzeichnis. Im Ifang 16 8307 Effretikon

WinWerk. Prozess 4 Akonto. KMU Ratgeber AG. Inhaltsverzeichnis. Im Ifang 16 8307 Effretikon Prozess 4 Akonto WinWerk 8307 Effretikon Telefon: 052-740 11 11 Telefax: 052 740 11 71 E-Mail info@kmuratgeber.ch Internet: www.winwerk.ch Inhaltsverzeichnis 1 Akonto... 2 1.1 Allgemein... 2 2 Akontobeträge

Mehr

3. Verpackungskünstler. Berechnungen am Quader, Umgang mit Termen, räumliche Vorstellung

3. Verpackungskünstler. Berechnungen am Quader, Umgang mit Termen, räumliche Vorstellung Berechnungen am Quader, Umgang mit Termen, räumliche Vorstellung Päckchen, die man verschenken möchte, werden gerne mit Geschenkband verschnürt. Dazu wird das Päckchen auf seine größte Seite gelegt, wie

Mehr

Divergenz 1-E1. Ma 2 Lubov Vassilevskaya

Divergenz 1-E1. Ma 2 Lubov Vassilevskaya Divergenz 1-E1 1-E2 Vektorfeld: Aufgabe 1 Stellen Sie graphisch folgende Vektorfelder dar x, y = x i y j a) F x, y = x i y j b) F Welcher Unterschied besteht zwischen den beiden Vektorfeldern? 1-A Vektorfeld:

Mehr

Doing Economics with the Computer Sommersemester 2002. Excel Solver 1

Doing Economics with the Computer Sommersemester 2002. Excel Solver 1 Universität Bern Kurt Schmidheiny / Manuel Wälti Doing Economics with the Computer Sommersemester 2002 Excel Solver 1 Mit dem Solver unterstützt Excel eine Funktion, mit der u.a. komplex verschachtelte

Mehr

Beschreibung des MAP-Tools

Beschreibung des MAP-Tools 1. Funktionen des MAP-Tool 2. Aufbau des MAP-Tools 3. Arbeiten mit dem MAP-Tool Beschreibung MAP-Tool.doc Erstellt von Thomas Paral 1 Funktionen des MAP-Tool Die Hauptfunktion des MAP-Tools besteht darin,

Mehr

1. LINEARE FUNKTIONEN IN DER WIRTSCHAFT (KOSTEN, ERLÖS, GEWINN)

1. LINEARE FUNKTIONEN IN DER WIRTSCHAFT (KOSTEN, ERLÖS, GEWINN) 1. LINEARE FUNKTIONEN IN DER WIRTSCHAFT (KOSTEN, ERLÖS, GEWINN) D A S S O L L T E N N A C H E U R E M R E F E R A T A L L E K Ö N N E N : Kostenfunktion, Erlösfunktion und Gewinnfunktion aufstellen, graphisch

Mehr

Animation ist das Erzeugen von Filmen mit Hilfe der Computergrafik. Objekte bewegen sich hierbei oder Beleuchtung, Augpunkt, Form,... ändern sich.

Animation ist das Erzeugen von Filmen mit Hilfe der Computergrafik. Objekte bewegen sich hierbei oder Beleuchtung, Augpunkt, Form,... ändern sich. Kapitel 1 Animation (Belebung) Animation ist das Erzeugen von Filmen mit Hilfe der Computergrafik. Objekte bewegen sich hierbei oder Beleuchtung, Augpunkt, Form,... ändern sich. Anwendungen findet die

Mehr

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008 Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen

Mehr

Der Leverage-Effekt wirkt sich unter verschiedenen Umständen auf die Eigenkapitalrendite aus.

Der Leverage-Effekt wirkt sich unter verschiedenen Umständen auf die Eigenkapitalrendite aus. Anhang Leverage-Effekt Leverage-Effekt Bezeichnungs- Herkunft Das englische Wort Leverage heisst Hebelwirkung oder Hebelkraft. Zweck Der Leverage-Effekt wirkt sich unter verschiedenen Umständen auf die

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Mag. Christian Gürtler Programmierung Grundlagen der Informatik 2011 Inhaltsverzeichnis I. Allgemeines 3 1. Zahlensysteme 4 1.1. ganze Zahlen...................................... 4 1.1.1. Umrechnungen.................................

Mehr

Departement Bau, Verkehr und Umwelt Abteilung Tiefbau

Departement Bau, Verkehr und Umwelt Abteilung Tiefbau Departement Bau, Verkehr und Umwelt Abteilung Tiefbau Anleitung "Neue IMS-Version 2012" Dokumenttyp: Anleitung Autor: ZD/sf, Version: 1.2 Gültig ab: 08.03.2012 Änderungskontrolle Version Datum Erstellt

Mehr

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007 Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Mehr

8.2 Thermodynamische Gleichgewichte, insbesondere Gleichgewichte in Mehrkomponentensystemen Mechanisches und thermisches Gleichgewicht

8.2 Thermodynamische Gleichgewichte, insbesondere Gleichgewichte in Mehrkomponentensystemen Mechanisches und thermisches Gleichgewicht 8.2 Thermodynamische Gleichgewichte, insbesondere Gleichgewichte in Mehrkomponentensystemen Mechanisches und thermisches Gleichgewicht 8.2-1 Stoffliches Gleichgewicht Beispiel Stickstoff Sauerstoff: Desweiteren

Mehr

Im Original veränderbare Word-Dateien

Im Original veränderbare Word-Dateien Computergrafik Bilder, Grafiken, Zeichnungen etc., die mithilfe von Computern hergestellt oder bearbeitet werden, bezeichnet man allgemein als Computergrafiken. Früher wurde streng zwischen Computergrafik

Mehr

Praktikum Physik. Protokoll zum Versuch: Geometrische Optik. Durchgeführt am 24.11.2011

Praktikum Physik. Protokoll zum Versuch: Geometrische Optik. Durchgeführt am 24.11.2011 Praktikum Physik Protokoll zum Versuch: Geometrische Optik Durchgeführt am 24.11.2011 Gruppe X Name1 und Name 2 (abc.xyz@uni-ulm.de) (abc.xyz@uni-ulm.de) Betreuerin: Wir bestätigen hiermit, dass wir das

Mehr

PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN

PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN Karlsruhe, April 2015 Verwendung dichte-basierter Teilrouten Stellen Sie sich vor, in einem belebten Gebäude,

Mehr

Plotten von Linien ( nach Jack Bresenham, 1962 )

Plotten von Linien ( nach Jack Bresenham, 1962 ) Plotten von Linien ( nach Jack Bresenham, 1962 ) Ac Eine auf dem Bildschirm darzustellende Linie sieht treppenförmig aus, weil der Computer Linien aus einzelnen (meist quadratischen) Bildpunkten, Pixels

Mehr

Eine Logikschaltung zur Addition zweier Zahlen

Eine Logikschaltung zur Addition zweier Zahlen Eine Logikschaltung zur Addition zweier Zahlen Grundlegender Ansatz für die Umsetzung arithmetischer Operationen als elektronische Schaltung ist die Darstellung von Zahlen im Binärsystem. Eine Logikschaltung

Mehr

Eine der Aktien hat immer einen höheren Gewinn als die andere Aktie. Ihre Aufgabe ist es diese auszuwählen.

Eine der Aktien hat immer einen höheren Gewinn als die andere Aktie. Ihre Aufgabe ist es diese auszuwählen. Instruktionen am Anfang von Experiment 1 (auf Papier ausgeteilt: grünmarkierte Textstellen zeigen den Instruktionstext in der jeweiligen Bedingung an; Kommentare sind gelb markiert.) Stellen Sie sich vor,

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

Simulation LIF5000. Abbildung 1

Simulation LIF5000. Abbildung 1 Simulation LIF5000 Abbildung 1 Zur Simulation von analogen Schaltungen verwende ich Ltspice/SwitcherCAD III. Dieses Programm ist sehr leistungsfähig und wenn man weis wie, dann kann man damit fast alles

Mehr

Entladen und Aufladen eines Kondensators über einen ohmschen Widerstand

Entladen und Aufladen eines Kondensators über einen ohmschen Widerstand Entladen und Aufladen eines Kondensators über einen ohmschen Widerstand Vorüberlegung In einem seriellen Stromkreis addieren sich die Teilspannungen zur Gesamtspannung Bei einer Gesamtspannung U ges, der

Mehr

6.2 Scan-Konvertierung (Scan Conversion)

6.2 Scan-Konvertierung (Scan Conversion) 6.2 Scan-Konvertierung (Scan Conversion) Scan-Konvertierung ist die Rasterung von einfachen Objekten (Geraden, Kreisen, Kurven). Als Ausgabemedium dient meist der Bildschirm, der aus einem Pixelraster

Mehr