5.3.4 Die Slab-Methode



next up previous contents
Next: 5.3.5 Der Octree Up: 5.3 Geometrieabfragen Previous: 5.3.3 Die Winkelmethode

5.3.4 Die Slab-Methode

 

  
Abbildung 5.6: Bei der Ortsbestimmung mittels der Slabmethode wird die Geometrie durch vertikale Geraden durch die Eckpunkte des Simulationsgebietes in (vertikale) slabs unterteilt. Jeder slab enthält Dreiecke und Trapeze, die vollständig in einem Gebiet liegen.

Bei der zweidimensionalen Slab Methode [Pre85] wird das zu untersuchende Gebiet zuerst in Streifen (,,Slabs``) unterteilt. Dies geschieht einfach dadurch, daß durch jeden Eckpunkt der Region eine vertikale Gerade gezogen wird. Dadurch entstehen in jedem Slab eine Reihe von Trapezen und Dreiecken, wie am Beispiel von Abb. 5.6 gezeigt wird. Diese Slabs werden dann etwa in einem binären Baum, der nach der lateralen Koordinate sortiert wird, abgespeichert, um einen möglichst effizienten und schnellen Zugriff zu einem bestimmten Slab zu garantieren.

Wie aus Abb. 5.6 zu ersehen ist, kann durchaus mehr als ein Trapez oder Dreieck - etwa bei Hinterschneidungen - in einem Slab liegen. Dies ist in Abb. 5.6 zum Beispiel für die Gebiete, die mit 1 - 3 bezeichnet sind, der Fall. Für jedes dieser Elemente eines Slabs werden zwei Referenzen auf Linien - eine für die obere und eine für die untere Begrenzungslinie - abgespeichert.

Der Algorithmus zur Bestimmung des Aufenthaltsortes eines Ions funktioniert nun folgendermaßen: Zuerst wird der Slab, in dem sich das Ion befindet, bestimmt. Dies geschieht einfach durch eine binäre Suche nach der lateralen Koordinate. Wenn der entsprechende Streifen gefunden wurde, dann muß noch untersucht werden, in welchem Teilgebiet (Dreieck oder Trapez) sich das Ion befindet. Im zweidimensionalen Raum heißt das, daß die vertikale Koordinate gegen die abgespeicherten Grenzlinien getestet wird. Dafür kann etwa ein etwas modifizierter Algorithmus nach Abschnitt 5.3.2 verwendet werden. Außerdem kann wieder - um diesen Test zu optimieren - eine binäre Suche verwendet werden. Im Beispiel laut Abb. 5.6 wäre das Ergebnis dieses Algorithmus, daß sich das Ion im zweiten Teilgebiet des zweiten Slabs befindet. Für dieses Element ist dann eine gewisse Kennung abgespeichert, die angibt, in welchem Material sich das Ion befindet - in Abb. 5.6 wäre das etwa Vakuum.

Diese Technik kann naürlich auch rein prinzipiell auf dreidimensionale Anwendungen ausgebaut werden. Allerdings wird diese Methode wieder viel komplexer, weil im dreidimensionalen Fall zwei Normalebenen konstruiert werden müssen (etwa die x/z- und die y/z-Ebene). Die Slabs müssen dann nach zwei Dimensionen sortiert werden (etwa y und x). Die in den einzelnen Slabs entstehenden Elemente sind viel komplizierter und vielfältiger als im zweidimensionalen Fall. Außerdem nimmt die Anzahl der generierten Teilelemente wegen der Unterteilung in zwei Richtungen im Vergleich zum zweidimensionalen Fall quadratisch zu. Das bedeutet aber wiederum auch eine quadratische Zunahme der Rechenzeit, weil ja der Rechenaufwand mit der Anzahl der Elemente linear steigt.

Nach der Bestimmung des Slabs aus den lateralen Koordinaten, muß noch analog zum zweidimensionalen Fall die vertikale Koordinate überprüft werden, um das richtige Teilelement zu finden. Die zweidimensionale Sortierung, die größere Anzahl der entstehenden Teilelemente und deren komplexere Gestalt bedingen einen signifikanten Zuwachs in der Rechenzeit. Weiters müssen auch hier, wie bei allen bisher beschriebenen Methoden, zeitintensive Multiplikationen und Additionen (beim Einsetzen in die Geraden- beziehungsweise Ebenen-Gleichungen) durchgeführt werden.



next up previous contents
Next: 5.3.5 Der Octree Up: 5.3 Geometrieabfragen Previous: 5.3.3 Die Winkelmethode



Martin Stiftinger
Sat Oct 15 14:00:19 MET 1994