Um den Anwender zu entlasten, muß die Angabe der Kantenreferenzen in der Elementsspezifikation nicht in einer bestimmten Reihenfolge erfolgen. Das Programm bildet aus den zwölf gegebenen Kanten automatisch das korrekt orientierte Element.
Ziel ist es, die in Abbildung 5.22 gezeigte Kantennumerierung und Kantenorientierung zur Ausführung der transfiniten Interpolation, durch geeignete Umsortierung der Kantenreferenzen zu generieren.
Man startet dazu mit einer symbolischen Auftrennung der Kanten, dabei entstehen 24 Halbkanten (HK). Diese werden nach ihren Eckpunktskoordinaten (1-8) sortiert. Für eine praktische Realisierung kann man folgende Organisation der Halbkantenliste verwenden:
Die Kantenreferenz (Ref. K) zeigt durch einen Index auf den Eintrag in die Kantenliste. Die (Ref. HK ) zeigt auf die andere Hälfte der Kante in die Halbkantenliste. Ein Marker zeigt an, ob es sich um die linke oder rechte Hälfte der Kante handelt. Da die Referenzen (Ref HK), die beim Eintragen der Kanten in der Halbkantenliste aufgebaut werden, nicht zerstört werden sollen, sollte die Sortierung über ein zusätzliches Indexfeld (Scrambling-Feld) und alle folgendenden Vertauschungsoperationen über das 24 Einträge große Scrambling-Feld erfolgen. Wird im folgendenden Abschnitt über das Vertauschen von Halbkanten in der Halbkantenliste gesprochen, so ist immer ein Vertauschen von Einträgen im Scrambling-Feld gemeint.
Nach der Sortierung werden sogenannte Dreibeine aus den Halbkanten mit gleichen
Eckpunktskoordinaten gebildet.
Ein Dreibein geht von einem Hexaedereckpunkt aus und wird aus jeweils drei Halbkanten
erzeugt. Die richtige Numerierung eines Dreibeins, welche der richtigen Numerierung
der Hexadereckpunkte entspricht, erfolgt erst später. Auch die Bestimmung der
ausgezeichneten Richtungen wird erst später erfolgen. Alle
ungeraden lokalen Kantenbezeichnungen im Bereich 1-8 sind in
-Richtung
orientiert. Alle geraden lokalen Kantenbezeichnungen im Bereich 1-8 gehören
der
-Richtung an. Und die restlichen Kanten 9-12 sind in
-Richtung
orientiert.
Abbildung 5.22: Geeignete Orientierung für transfinite Interpolation
Aus der Halbkantenliste wird das Dreierpaket, daß an erster Stelle liegt,
herausgegriffen und diesem willkürlich Eckpunkt eins zugeordnet.
Dieses Dreibein ist nun noch richtig zu orientieren. Man bildet vom Eckpunkt zum
jeweils nächsten Punkt auf der gekrümmten Kante einen Vektor und bestimmt das
Spatprodukt dieser drei Vektoren.
Ist es negativ, so vertauscht man z.B. den zweiten und dritten Eintrag der
Halbkantenliste. Damit sind die Kanten k1, k4 und k9 in ihrer Reihenfolge
festgelegt.
Für den folgenden Teil der Überlegungen ist es günstig, den Hexaeder auf einen planaren Graphen abzubilden. Ausgehend vom Eckpunkt eins kann man folgenden Baum mit vier Ebenen zeichnen (Abbildung 5.23), um alle Abhängigkeiten der Punkte von Kanten eindeutig aufzulösen.
Abbildung 5.23: Unvollständiger planarer Graph des Hexaeders
Im Prinzip läßt sich das restliche Problem in zwei Teilschritte zerlegen: Alle Dreibeine einer Ebene aus schon gefundenen Kanten bestimmen und dann die Orientierung der neuen Dreibeine finden.
Die Ebene eins wurde mit Hilfe des Spatprodukts bereits gebildet und damit sind die
Kanten k1, k4 und k9 gefunden. Bei Ebene zwei läßt sich zunächst für Dreibein mit
p2 sicher sagen, daß k1 im Dreibein p2 an die erste Stelle der Dreiergrupper (-Richtung)
zu tauschen ist. Die Kante k1 im Dreibein p2 wird im Dreibein p1 an erster Stelle
-Richtung
gefunden. Die Kante k2 kann zunächst noch nicht festgelegt werden. Da aber in Dreibein
p4 Kante k4 in
-Richtung zeigen muß und damit auf die Stelle p4/
in der
Halbkantenliste zu tauschen ist und außerdem die Eckpunktsnummer p3 von Dreibein p2 gleich der
Eckpunktsnummer p3 von Dreibein p4 sein muß, so sind diese beiden Kanten durch
maximal vier Vergleiche zu finden. Diese Kantennummer ist dann an die
Stelle
im Dreibein p2 und für Dreibein p4 an die
Stelle zu plazieren.
Damit sind die Dreibeine p2 und p4 eindeutig bestimmt, und das Dreibein p5 kann einfach über
die entfernten Eckpunkte von Dreibein p1/ und Dreibein p4/
bestimmt
werden. Die Ebene vier mit Dreibein p7 läßt sich mit dem gleichen Schema bestimmen.
Aus dieser geordneten Halbkantenliste läßt sich am besten durch eine Abbildung über zwei Indexfelder
die richtige Kantenreferenzreihenfolge in das jeweilige Element eintragen. Das erste Feld weist auf die Stelle im Element, wo die Kantenreferenz im Element einzutragen ist, und das zweite Feld zeigt auf die richtige Halbkante, um die richtige Kantenreferenz zu finden. Die korrekte Orientierung der Kante im Element läßt sich gleichzeitig mit der Kantenzuordnung im Element über das dritte Markerfeld A/E bestimmen. Das Markerfeld gibt die richtige Kantenorientierung für die einzutragende Kante zurück. Stimmt die im dritten Feld angegebene Orientierung mit der in der Halbkantenliste eingetragenen Orientierung nicht überein, so ist dies parallel zur Kantenreferenz im Element durch einen Marker anzuzeigen.