Die Simulation allgemeiner Bauelementstrukturen erfordert eine effiziente Verwaltung der Bauelementgeometrien. In MINIMOS-NT wurde eine zweidimensionale Geometrie- und Gitterverwaltung implementiert. Um trotzdem eine räumliche Struktur der Geometrie zu erhalten, wird eine konstante Weite in der dritten Dimension angenommen. Das heißt, die zweidimensionale Geometrie ist die Grundfläche eines geraden Prismas mit der Höhe entsprechend der gewählten Weite. Diese Weite ist frei wählbar. Der Standardwert ist .
Zur Verwaltung der Geometriedaten wird das Profile Interchange Format (PIF) von VISTA verwendet (s. Abschnitt 2.6). PIF unterstützt auch die Unterteilung der Geometrie in Segmente. Das Simulationsgebiet muß durch nichtüberlappende Segmente lückenlos aufgefüllt sein. Benachbarte Segmente berühren einander an Grenzflächen.
Segmente besitzen eine physikalische Bedeutung für die Simulation. Jedem Segment sind eine Materialspezifikation und eine Definition der Dotierstoffkonzentration zugeordnet. Innerhalb eines Segments werden die selben physikalischen Modelle verwendet. Es werden daher alle benötigten Informationen segmentweise verwaltet. Dies betrifft die Gitter für die Diskretisierung ebenso wie die verteilten physikalischen Größen und die physikalischen Modelle.
Abbildung 2.3: Beispiel für eine Doubly Connected Edge List
Struktur. Ein Eintrag der Datenstruktur ist eindeutig einer Linie der
Geometrie zugeordnet. Eine Linie ist die orientierte Verbindung zweier
Punkte. Die hier gezeigte Linie ist die Verbindung von
nach . Sie weist eine Referenz zur links liegenden Fläche
und zur rechts liegenden Fläche auf. Jeder Linieneintrag
besitzt weiters am Start- und am Endpunkt eine Referenz zur nächsten
im Gegenuhrzeigersinn angeschlossenen Linie. Für ist das die
Linie am Startpunkt und die Linie am
Endpunkt .
An eine Verwaltung der Geometrien werden folgende Anforderungen gestellt [23]:
Um ein effiziente Speicherung der Geometrieinformation zu gewährleisten, wird eine Doubly Connected Edge List Struktur verwendet (s. Abb. 2.3). Linien werden als Punktpaare definiert, wobei eine Orientierung durch Definition eines Start- und Endpunktes gegeben ist. Für jedes Linienende ist eine Referenz auf die nächste im Gegenuhrzeigersinn folgende Linie definiert. Weiters ist für jede Linie ein linke und rechte Fläche angegeben. Mit Hilfe dieser Datenstruktur lassen sich auch komplizierte Geometrien darstellen.
Abbildung 2.4: Aufteilung der Geometrie in Streifen (Slabs) zur
effizienten Bestimmung der Bereichsinformation für einen gegebenen
Punkt. Der Aufwand für diese Bestimmung ist und
für den Speicherbedarf , wobei N die Anzahl
der Geometriepunkte ist.
Für die effiziente Bereitstellung der Bereichsinformation wird eine Slab Methode benutzt. Wie Abbildung 2.4 zeigt, wird die Geometrie dazu in Streifen unterteilt Slabs, welche wiederum aus trapezförmigen Vierecken aufgebaut sind. Sowohl die Streifen als auch die Vierecke überlappen sich nicht, sodaß Datenstrukturen zur Speicherung verwendet werden können, die eine Suche vom Aufwand der Ordnung erlauben (N ist die Anzahl der Punkte der Geometrie). Der mittlere Speicherbedarf entspricht der Ordnung . Für MINIMOS-NT wurde ein quasibalancierter Binärbaum implementiert.
Erst mit Hilfe dieser grundlegenden Datenstrukturen ist es möglich einen Diskretisierungspunkt eindeutig und effizient einem bestimmten Bereich des Simulationsgebiets zuzuordnen.
Für die Bauelementsimulation kommt zumeist die Finite-Boxen-Methode für die Diskretisierung der Differentialgleichungen zur Anwendung [12][27][29]. Dies liegt zum einen an der Verfügbarkeit der Scharfetter-Gummel Diskretisierung für die Finite-Boxen-Methode, welche bei der Diskretisierung von Transportgleichungen mit einem Diffusions- und Feldstromanteil die Verwendung von weniger Diskretisierungspunkten bei gleichbleibender Genauigkeit der Lösung gegenüber einer einfachen Differenzenmethode erlaubt, zum anderen, daß auch lokal, also für jede Box, der Erhaltungssatz der Ladung
erfüllt ist.
Abbildung 2.5: Die Box des Diskretisierungspunktes
, wie sie für die Finite-Boxen-Methode Verwendung
findet. Die wesentlichen Parameter, die für die Finite-Boxen-Methode
benötigt werden, sind das Boxvolumen für die Integration von
Konzentrationsgößen und die Nachbarschaftsbeziehungen des
Diskretisierungspunktes zu den Punkten zur
Berechnung von Flußgrößen. Jedem Diskretisierungspunktpaar wird
die Fläche und der Punktabstand
zugeordnet.
Die Finite-Boxen-Methode geht davon aus, daß jedem Diskretisierungspunkt ein eindeutig definierter Bereich des Simulationsgebiets zugeordnet ist. Dieser Bereich ist im Falle der Voronoi-Zerlegung definiert als
wobei den gesamten Simulationsbereich bezeichnet, ein beliebiger Punkt aus ist und die zum Diskretisierungspunkt gehörende Box ist. Der Rand der Box wird mit bezeichnet. Die Vereinigung aller Boxen ist wiederum das Definitionsgebiet :
ist das Volumen der Box und ist die Fläche des Randes der Box ,
Abbildung 2.6: Delaunay-Dreiecksgitter einer einfachen Geometrie.
Die Zuordnung einer Box zu jedem Diskretisierungspunkt definiert eine eindeutige paarweise Nachbarschaftsbeziehung der Diskretisierungspunkte zueinander, sogenannte Kanten. Wie Abbildung 2.5 als zweidimensionales Beispiel zeigt, wird durch jede Kante eine Boxfläche und ein Punktabstand definiert. Die Menge der Diskretisierungspunkte und der Kanten definiert das Gitter auf dem die Differentialgleichungen diskretisiert werden (s. Abb. 2.6). Die Zuordnung eines Bereichs zu einem Diskretisierungspunkt durch (2.2) ist für Vierecksgitter immer möglich. Für Dreiecksgitter muß das Delaunay-Kriterium erfüllt sein. Dieses Kriterium besagt im wesentlichen, daß innerhalb des Umkreises eines Dreiecks kein weiterer Diskretisierungspunkt liegen darf (im dreidimensionalen darf in der Umkugel eines Tetraeders kein weiterer Diskretisierungspunkt liegen). Eine beliebige Verteilung von Diskretisierungspunkten kann durch Hinzufügen weiterer Punkte immer so modifiziert werden, daß dieses Kriterium erfüllt ist [23]. Die Menge der Boxflächen wird als der Voronoi-Graph bezeichnet (s. Abb. 2.7 als zweidimensionales Beispiel).
Abbildung 2.7: Voronoi-Graph des Dreiecksgitters von
Abb. 2.6.
Es wird für jedes Segment ein eigenes Gitter definiert. Das bedeutet, daß zusätzliche Information für die Verbindung der Segmentgitter an den Grenzflächen benötigt wird. Diese Information wird durch Grenzflächengitter verwaltet.
Für ein bestimmtes Segmentgitter sind zwei Arten geometrischer Informationen zu unterscheiden: Informationen, die durch einen Diskretisierungspunkt identifiziert werden, also einer Box zugeordnet sind und Informationen, die durch ein Punktpaar identifiziert werden, also einer Boxgrenzfläche zugeordnet sind.
Abbildung 2.9 zeigt ein Programmbeispiel für die Abarbeitung aller referenzierten Diskretisierungspunkte. Das Feld grid->boxcen[] referenziert die zu den gültigen Diskretisierungspunkten gehörenden Werte der Elektronenkonzentration im Feld n[]. Das Feld grid->boxvol[] enthält die Volumina der Diskretisierungsboxen. grid->boxnum ist die Anzahl der gültigen Diskretisierungsboxen.