29.06.2015 Aufrufe

Numerische Simulation der Bildung fluider Strukturen auf ...

Numerische Simulation der Bildung fluider Strukturen auf ...

Numerische Simulation der Bildung fluider Strukturen auf ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

ANHANG A. ECONLUB2D -DOKUMENTATION<br />

class Mesh {<br />

protected:<br />

int maxNumberOfNodes;<br />

int maxDepth;<br />

int minDepth;<br />

MacroElement *first;<br />

// maximale Anzahl Gitterpunkte<br />

// maximale Gittertiefe<br />

// minimale Gittertiefe<br />

// erstes MacroElement<br />

public:<br />

Mesh(int maxNumberOfNodes, int minDepth, int maxDepth);<br />

virtual void createMacroTriangulation();<br />

std::list active;<br />

std::list sleeping;<br />

std::list free;<br />

};<br />

// [...]<br />

Mesh legt also maximale und minimale Gittertiefe fest, ebenso die maximale Anzahl an<br />

Gitterpunkten. Letztere muß nicht unbedingt mit <strong>der</strong> <strong>auf</strong> dem Level maxDepth maximal<br />

möglichen Anzahl an Gitterpunkten übereinstimmen – für adaptiv verfeinerte Gitter machen<br />

auch an<strong>der</strong>e Angaben Sinn.<br />

Mesh speichert lediglich einen Zeiger first <strong>auf</strong> das erste Element <strong>der</strong> Makrotriangulierung.<br />

Besteht die Makrotriangulierung aus mehr als einem Makroelement, so werden die weiteren<br />

Makroelemente mit Hilfe des Zeigers MacroElement::next angehängt. Es entsteht also<br />

folgende Baumstruktur:<br />

Mesh<br />

first<br />

child[0] Element<br />

parent<br />

MacroElement child[1]<br />

next parent Element<br />

etc...<br />

etc...<br />

MacroElement<br />

etc...<br />

next<br />

NULL<br />

Der Konstruktor erhält die maximale Anzahl an Knoten, die minimale und die maximale<br />

Gittertiefe als Parameter übergeben. Er erzeugt die Makrotriangulierung durch Aufruf <strong>der</strong><br />

Funktion createMacroTriangulation(). Ist diese Funktion nicht überladen, so wird das<br />

Einheitsquadrat [0, 1] 2 ⊂<br />

2 durch zwei Dreiecke unterteilt. Anschließend wird das Gitter<br />

automatisch bis zum Level minDepth verfeinert.<br />

98

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!