\chapter{Simulation}
\label{chapter:simulation}

Im Folgenden soll die Implementation der Monte-Carlo-Simulation nach dem vorangegangen Modell diskutiert werden.
Die Simulation tr"agt den Namen {\em nlsop}, was f"ur die Schlagw"orter {\bf N}ano, {\bf L}amellar und {\bf S}elbst{\bf O}ragnisations-{\bf P}rozess steht.
Die Simulation ist in der Programmiersprache {\em C} \cite{kerningham_ritchie} geschrieben.
Der Simulationscode wurde auf Computern der {\em IA32}-Rechnerarchitektur mit dem {\em GNU C Compiler} auf einem Linux Bestriebssystem "ubersetzt und betrieben.

Ziel der Simulation ist die Validierung des Modells anhand der experimentellen Ergebnisse, wie sie in Abbildung \ref{img:xtem_img} vorliegen.
Es wurden zwei Versionen der Simulation erstellt, die unterschiedliche Tiefenbereiche abdecken.
Die erste Version beschreibt den Bereich von der Oberfl"ache des Targets bis zum Beginn der durchgehenden amorphen $SiC_x$-Schicht, also den Tiefenbereich von $0$ bis $300 nm$.
Nachdem eine Beschreibung der Bildung lamellarer amorpher Ausscheidungen mit dieser Version sehr gut funktioniert hat, wurde eine zweite Version entwickelt, die den gesamten Implantationsbereich betrachtet.
Auf weitere Unterschiede in den zwei Versionen wird in einem gesonderten Abschnitt genauer eingegangen.

Die Simulation kann grob in drei Abschnitte unterteilt werden.
Im ersten Schritt werden die Kollisionen eines Ions im Target und die daraus resultierende Amorphisierung beziehungsweise Rekristallisation eines Gebietes simuliert.
Nachdem das Ion seine Energie durch St"o"se im Target abgegeben hat kommt es zur Ruhe.
Der Einbau des Kohlenstoffs im Target wird im zweiten Schritt ausgef"uhrt.
Als letztes wird die Diffusion von Kohlenstoff von kristallinen in amorphe Gebiete und der Sputtervorgang realisiert.

Im Folgenden werden der Simulationsalgorithmus und die dazu ben"otigten Annahmen besprochen.
Ein weiterer Abschnitt besch"aftigt sich mit der Extraktion von, f"ur die Simulation notwendigen Informationen aus {\em TRIM}-Ergebnissen.
Das Kapitel schlie"st mit dem Test der verwendeten Zufallszahlen.

  \section{Annahmen der Simulation}

    \subsection{Unterteilung des Targets}
    \label{subsection:unterteilung}

    Wie in Abbildung \ref{img:sim_gitter} zu sehen ist, wird das Target in W"urfel mit der Seitenl"ange $a = 3 nm$ zerlegt.
    \printimg{h}{width=12cm}{gitter_oZ.eps}{Unterteilung des Targets in W"urfel mit $3 nm$ Kantenl"ange. Jedes Volumen ist entwerder amorph (rot) oder kristallin (blau) und protokolliert die lokale Kohlenstoffkonzentration.}{img:sim_gitter}
    Die Anzahl der W"urfel in $x$, $y$ und $z$ Richtung ist frei einstellbar.
    Ein solches Volumen kann durch den Ortsvektor $\vec{r}(k,l,m)$, wobei $k$, $l$ und $m$ ganze Zahlen sind, addressiert werden.
    Jeder W"urfel hat entweder den Zustand amorph (rot), oder ist kristallin (blau).
    Die lokale Anzahl der implantierten Kohlenstoffatome wird ebenfalls protokolliert.

    Die Ausdehnung des Targets in $x,y$-Richtung ist im Gegensatz zur Tiefe sehr gro"s und kann als unendlich ausgedehnt angenommen werden.
    Um die Anzahl der W"urfel in diese Richtungen in der Simulation aus Gr"unden der Rechenzeit m"oglichst klein halten zu k"onnen, werden periodische Randbedingungen in der $x,y$-Ebene verwendet.

    In Version 1 der Simulation wurden $x = y = 50$ beziehungsweise $x = y = 64$ und $z = 100$ gesetzt.
    In Version 2 sind $x = y = 64$ und $z = 233$.

    Zum besseren Vergleich der Simulationsergebnisse mit den experimentell erhaltenen TEM-Aufnahmen k"onnen Querschnitte der amoprh/kristallinen Struktur als Bitmap ausgegeben werden.
    Kristalline W"urfel sind schwarz und amorphe "Wurfel wei"s dargestellt.
    F"ur die $x-z$- beziehungsweise  $y-z$-Querschnitte besteht die M"oglichkeit "uber mehrere Querschnittezu mitteln.
    Die selbe Mittelung "uber den amorph/kristallinen Zustand ist bei den TEM-Aufnahmen, der auf eine Dicke von $100$ bis $300 nm$ pr"aparierten Proben der Fall.

    \subsection{Amorphisierung und Rekristallisation}
    \label{subsection:a_and_r}

    Nach dem in Kapitel \ref{chapter:modell} vorgestellten Modell gibt es drei statistisch unabh"angige zur Amorphisierung beitragende Mechanismen.
    Eine lokale Wahrscheinlichkeit f"ur die Amorphisierung $p_{c \rightarrow a}$ eines beliebigen kristallinen Volumens am Ort $\vec{r}$ setzt sich aus den drei Einzelwahrscheinlichkeiten f"ur die ballistische, kohlenstoffinduzierte und spannungsinduzierte Amorphisierung zusammen.
    Sie wird wie folgt berechnet:
    \begin{equation}
    p_{c \rightarrow a}(\vec r) = p_{b} + p_{c} c_C (\vec r) + \sum_{amorphe \, Nachbarn} \frac{p_{s} \, c_C (\vec{r'})}{(\vec r - \vec{r'})^2}
    \label{eq:p_ca_local}
    \end{equation}

    Der Beitrag der ballistischen Amorphisierung besteht nur aus der Konstanten $p_b$.
    Die Wahrscheinlichkeit f"ur die ballistische Amorphisierung in einem Sto"s ist unabh"angig vom Ort und somit eine Konstante.
    Sie hat die Einheit $1$.
    Die h"ohere Wahrscheinlichkeit, im Maximum der nuklearen Bremskraft zu amorphisieren, kommt durch die h"ohere Anzahl an St"o"sen in diesem Tiefenbereich zustande.
    Wieso dieser Beitrag in dieser Art sinnvoll ist, wird in Abschnitt \ref{subsection:parse_trim_coll} gekl"art.

    Die Wahrscheinlichkeit f"ur die kohlenstoffinduzierte Amorphisierung wird proportional zur lokalen Kohlenstoffkonzentration $c_C$ angenommen.
    $p_c$ ist die dazugeh"orige Proportionalit"atskonstante und hat demnach die Einheit $[p_c] = m^3$.

    Der Beitrag der Druckspannungen setzt sich aus den einzelnen Beitr"agen amorpher Gebiete in der selben Ebene zusammen, da nur diese unrelaxierte Spannungen aus"uben.
    Dabei ist der Wahrscheinlichkeitsbeitrag eines amorphen Volumens bei $\vec{r'}$ auf das Volumen am Ort $\vec{r}$ wieder proportional zur lokalen Kohlenstoffkonzentration in $\vec{r'}$.
    Dies ist offensichtlich, denn je mehr Kohlenstoff in einem amorphen Volumen vorhanden ist, desto gr"o"ser ist die ausgehende Spannung auf die Umgebung.
    Gleichzeitig ist der Beitrag indirekt proportional zum Abstandsquadrat $(\vec r - \vec{r'})^2$, da der Druck quadratisch mit der Entfernung abf"allt.
    $p_s$ ist eine Proportionalit"atskonstante und hat somit die Einheit $[p_s] = m^5$.

    Die Rekristallisationswahrscheinlichkeit amorpher Gebiete $p_{a \rightarrow c}$ sollte sich genau entgegensetzt zu $p_{c \rightarrow a}$ verhalten und wird deshalb als
    \begin{equation}
    p_{a \rightarrow c}(\vec r) = 1 - p_{c \rightarrow a}(\vec r)
    \label{eq:p_ac_local}
    \end{equation}
    angenommen.
    Jedoch muss die direkte Nachbarschaft des Volumens ber"ucksichtigt werden.
    Da es sich bei den betrachteten Temperaturen allein um ionenstrahlinduzierte, epitaktische Rekristallisation handelt und einschr"ankend hier nur der Temperaturbereich bis $250 \, ^{\circ} \mathrm{C}$ behandelt wird, in dem keine merkliche ionenstrahlinduzierte Nukleation innerhalb amorpher Bereiche auftritt \cite{basic_phys_proc}, sollte f"ur die Rekristallisation die Strukturinformation einer kristallinen Nachbarschaft notwendig sein.
    Mit einer zunehmenden Anzahl von amorphen Nachbarn sollte die Rekristallisationswahrscheinlichkeit also sukzessive abnehmen und ganz verschwinden, wenn kein einziger kristalliner Nachbar vorhanden ist.
    Mit der im Abschnitt \ref{subsection:unterteilung} beschriebenen Unterteilung hat ein Volumen genau sechs Grenzfl"achen, von denen die Rekristallisationsfront ausgehen kann.
    Damit kann man \eqref{eq:p_ac_local} neu schreiben und man erh"alt:
    \begin{equation}
    p_{a \rightarrow c}(\vec r) = (1 - p_{c \rightarrow a}(\vec r)) \Big(1 - \frac{\sum_{direkte \, Nachbarn} \delta (\vec{r'})}{6} \Big) \, \textrm{,}
    \label{eq:p_ac_genau}
    \end{equation}
    mit
    \begin{equation}
    \delta (\vec r) = \left\{ 
    \begin{array}{ll}
      1 & \textrm{wenn Gebiet bei $\vec r$ amorph} \\
      0 & \textrm{sonst} \\
    \end{array}
    \right.
    \label{eq:dedltafunc}
    \end{equation}

    Die Proportionalit"atskonstanten $p_b$, $p_c$ und $p_s$ sind bisher experimentell nicht zug"anglich und werden daher als frei w"ahlbare Simulationsparameter angenommen.
    Es stellt sich also die Frage, ob ein Satz von Parametern existiert, der es erlaubt, experimentell gefundene Verteilungen, wie sie in Abbildung \ref{img:xtem_img} gezeigt werden, durch die Simulation zu reproduzieren.
    Durch Variation der gefundenen Parameter k"onnen dann die unterschiedlichen Einfl"usse der verschiedenen Amorphisierungsmechanismen untersucht und der Selbstorganisationsprozess verstanden werden.
    
    \subsection{Diffusion}

    Weiterhin sieht das Modell die M"oglichkeit der Diffusion von Kohlenstoff aus kristallinen in umliegende amorphe Volumina vor.
    In Zeitintervallen $T_{Diff}$ wird ein Anteil $d_r$ des Kohlenstoffs eines kristallinen Volumens in das benachbarte amorphe Volumen transferiert.
    Da von einem konstanten Strahlstrom ausgegangen wird, kann die Zeit $T_{Diff}$ auf eine Anzahl von implantierten Ionen $d_v$ abgebildet werden.
    Die Diffusion des Kohlenstoffs von amorphen in kristalline Gebiete wird also durch die zwei Parameter $d_r$ und $d_v$ gesteuert.
    Die Parameter sind ebenfalls frei w"ahlbar.
    Aus Gr"unden der Rechenzeit sollte die Diffusionsroutine nicht nach jedem implantierten Ion ausgef"uhrt werden.
    Diffusion innerhalb kristalliner Gebiete sowie Diffusion innerhalb amorpher Gebiete wird ausgeschlossen.
    Von einer m"oglichen Kohlenstoff"ubers"attigung im Amorphen wird nicht ausgegangen, da der Kohlenstoff in $a-Si$ gut l"oslich ist.
    Da die L"oslichkeit von Kohlenstoff in $c-Si$ nahezu Null ist, wird der Kohlenstoff immer bestrebt sein von dem kristallinen Bereich in die amorphen Gebiete zu diffundieren.

    \subsection{Sputtern}

    Es wird von einer, "uber der Oberfl"ache gleichm"assig verteilten und w"ahrend des Implantationsvorgangs konstanten Sputterrate ausgegangen.
    Auf Grund der Unterteilung des Targets in W"urfel mit der Seitenl"ange $3 nm$ muss diese Sputterrate in Einheiten einer Dosis, welche $3 nm$ sputtert, angegeben werden.
    Jedesmal, nachdem das Programm diese Dosis durchlaufen hat, wird die Sputterroutine aufgerufen, welche die oberste Targetebene abtr"agt.

  \section{Statistik von Sto"sprozessen}

  F"ur die Simulation ben"otigt man die Statistik der Sto"sprozesse des Kohlenstoffs im Siliziumtarget unter den gegebenen Implantationsbedingungen.
  Dabei sind insbesondere die nukleare Bremskraft f"ur den Amorphisierungs- beziehungsweise Rekristallisationsschritt und das Implantationsprofil f"ur den Einbau des Kohlenstoffs ins Siliziumtarget von Interesse.
  {\em NLSOP} benutzt die Ergebnisse des {\em TRIM}-Programms, welches die Wechelswirkung der Ionen mit dem Target simuliert und somit ein geeignetes Bremskraft- und Implantationsprofil, sowie eine genaue Buchf"uhrung "uber die Sto"skaskaden bereitstellt.
  Durch die Abbildung von Zufallszahlen auf die so erhaltenen Verteilungen k"onnen die eigentlichen physikalischen Abl"aufe sehr schnell und einfach behandelt werden.
  Im Folgenden wird auf die Ermittlung einiger, f"ur {\em NLSOP} wichtige Statistiken eingegangen.

    \subsection{Implantationsprofil und nukleare Bremskraft}

    \printimg{h}{width=13cm}{trim92_2.eps}{Von {\em TRIM 92} ermittelte Reichweitenverteilung und tiefenabh"angige Bremskr"afte f"ur $180 keV$ $C^+ \rightarrow Si$.}{img:bk_impl_p}
    Abbildung \ref{img:bk_impl_p} zeigt die von {\em TRIM 92} ermittelte nukleare Bremskraft sowie das Kohlenstoffkonzentrationsprofil f"ur die in dieser Arbeit verwendeten Parameter.
    Die gestrichelte Linie markiert das Ionenprofilmaximum bei $500 nm$.
    Sputtereffekte und Abweichungen auf Grund der kontinuierlich ver"anderten Targetzusammensetzung w"ahrend der Hochdosisimplantation werden von {\em TRIM} allerdings nicht ber"ucksichtigt.
    
    Die Profile werden von {\em TRIM} selbst in seperate Dateien geschrieben.
    Tauscht man die Kommata (Trennung von Ganzzahl und Kommastelle) durch Punkte aus, so kann {\em NLSOP} diese Dateien auslesen und die Profile extrahieren.
   
    \printimg{h}{width=12cm}{trim_impl.eps}{Durch {\em SRIM 2003.26} berechnetes Implantationsprofil f"ur $180 keV$ $C^+ \rightarrow Si$.}{img:trim_impl}
    In Abbildung \ref{img:trim_impl} ist das f"ur diese Simulation verwendete, von einer neueren {\em TRIM}-Version ({\em SRIM 2003.26})  berechnete Implantationsprofil abgebildet.
    Dieses Profil verwendet {\em NLSOP} zum Einbau des Kohelnstoffs.
    Das Implantationsmaximum liegt hier bei ungef"ahr $530 nm$.
    Auff"allig ist eine Verschiebung des Maximums um $30 nm$ zu dem Maximum aus Abbildung \ref{img:bk_impl_p}.
    Dies ist auf eine Ver"anderung in der elektronischen Bremskrfat zuru"ckzuf"uhren.

    \subsection{Durchschnittliche Anzahl der St"o"se der Ionen und Energieabgabe}
    \label{subsection:parse_trim_coll}

    Weiterhin bietet {\em TRIM} die M"oglichkeit eine Datei Namens {\em COLLISION.TXT} anzulegen, in der s"amtliche Sto"skaskaden protokolliert sind.
    Zu jedem Sto"s sind Koordinaten und Energie"ubertrag angegeben.
    Mit dem Programm {\em parse\_trim\_collision} (siehe Anhang \ref{section:hilfsmittel}) kann diese Datei ausgewertet werden.
    Die daraus gewonnen Erkenntnisse sollen im Folgenden diskutiert werden.
    F"ur diese Statistik wurden die Sto"skaskaden von $8300$ implantierten Ionen verwendet.

    \printimg{h}{width=12cm}{trim_coll.eps}{Auf das Maximum 1 skalierte tiefenabh"angige Energieabgabe (blau) und Anzahl der Kollisionen (rot).}{img:trim_coll}
    Abbildung \ref{img:trim_coll} zeigt die nukleare Energieabgabe und die Anzahl der St"o"se von Ionen und Recoils in Abh"angigkeit von der Tiefe.
    Beide Graphen wurden auf das selbe Maximum skaliert.
    Man erkennt, dass diese nahezu identisch sind.
    Die durchschnittliche Energieabgabe pro Sto"s ist also ungef"ahr konstant und unabh"angig von der Tiefe.
    Dies ist der Grund f"ur die Wahl eines konstanten Beitrags der ballistischen Amorphisierung in Abschnitt \ref{subsection:a_and_r}.
    Jeder Sto"s "ubertr"agt durchschnittlich einen konstanten Energiebetrag im Falle einer Kollision, und tr"agt somit einen konstanten Anteil zur Amorphisierungswahrscheinlichkeit bei.
    
    Desweiteren ist nun die Wahrscheinlichkeit f"ur eine Kollision in einer bestimmten Tiefe bekannt.
    Sie ist proportional zur Anzahl der Kollisionen in dieser Tiefe.
    Durch die h"ohere Anzahl der St"o"se im Maximum der nuklearen Bremskraft steigt die Wahrscheinlichkeit f"ur ein Ion in diesem Tiefenbereich zu amorphisieren.

    \printimg{h}{width=12cm}{trim_nel.eps}{Durch {\em SRIM 2003.26} berechneter nuklearer Energieverlust f"ur $180 keV$ $C^+ \rightarrow Si$.}{img:trim_nel}
    Zum Vergleich zeigt Abbildung \ref{img:trim_nel} die von {\em SRIM 2003.26} selbst berechnete nukleare Bremskraft.
    Wie zu erwarten entspricht sie ungef"ahr dem Verlauf der in Abbildung \ref{img:trim_coll} gezeigten Energieabgabe.
    Daher wird dieses Profil f"ur {\em NLSOP} zur Verteilung der Kollisionen im Taregt verwendet.

    Ein implantiertes Ion und dadurch entstandene Recoils verursachen durchschnittlich eine Anzahl von $1088$ Kollisionen, bis alle Teilchen bis auf Energien unterhalb der Verlagerungsenergie f"ur $Si$ Atome von $15 eV$ \cite{ziegler_biersack_littmark} abgesunken sind.
    Die Zahl der getroffenen W"urfel, also Volumina in denen ein Ion mindestens eine Kollision verursacht, ist sehr viel geringer.
    Das Auswertungsprogramm {\em parse\_trim\_collision} z"ahlt durchschnittlich $75$ getroffene Volumina pro implantiertem Ion.
    Genauer gesagt z"ahlt das Programm die Anzahl der Ebenen mit $3 nm$ H"ohe in denen Kollisionen verursacht werden.
    Teilchenbahnen parallel zur Targetoberfl"ache verf"alschen diese Zahl.
    Ausserdem werden mehrmalige Durchl"aufe der Ebenen nicht mitgez"ahlt.
    Man sollte weiterhin beachten, dass Volumina in denen selbst nur eine Kollision stattfindet mitgez"ahlt werden, was allerdings nur sehr unwahrscheinlich zur Amorphisierung f"uhren wird.
    Daher wird eine Trefferzahl von $h=100$ f"ur die Simulation angenommen.

  \section{Simulationsalgorithmus}

  Die Simulation kann in die drei Abschnitte Amorphisierung/Rekristallisation, Fremdatomeinbau und Diffusion/Sputtern gegliedert werden.
  Die beschriebenen Prozeduren werden sequentiell abgearbeitet und beliebig oft durchlaufen.

  Wenn, wie in Version 2 der Simulation, pro Durchlauf die Anzahl der simulierten Sto"skaskaden gleich der Anzahl der getroffenen Volumina ist, entspricht ein Durchlauf genau einem implantierten Ion.
  Im Folgenden sei die Anzahl der W"urfel in $x$, $y$ und $z$ Richtung $X$, $Y$ und $Z$.
  Eine Anzahl von $N$ Durchl"aufen ist damit "aquivalent zur Dosis $D$, die wie folgt gegeben ist:
  \begin{equation}
  D = \frac{N}{XY(3 nm)^2} \, \textrm{.}
  \label{eq:dose_steps}
  \end{equation}

  Es wird mit einem komplett kristallinen und kohlenstofffreien Target gestartet.

    \subsection{Amorphisierung und Rekristallisation}
    \label{subsection:a_r_step}

      \begin{figure}[h]
      \begin{center}
      \begin{pspicture}(0,0)(15,18)

        \rput(7,18){\rnode{start}{\psframebox{{\em NLSOP} Start}}}

        \rput(7,16){\rnode{random1}{\psframebox{\parbox{8.5cm}{
          Ausw"urfeln der Zufallszahlen:\\
          $R_1$, $R_2$, $R_3$ entsprechend nuklearer Bremskraft\\
          $R_4 \in [0,1[$
        }}}}
        \ncline[]{->}{start}{random1}

        \rput(7,14){\rnode{koord_wahl}{\psframebox{\parbox{7.5cm}{
          Bestimmung von $\vec{r}(k,l,m)$ durch Abbildung von $R_1$, $R_2$ und $R_3$ auf $k$, $l$ und $m$
        }}}}
        \ncline[]{->}{random1}{koord_wahl}

        \rput(7,11){\rnode{berechnung_pca}{\psframebox{\parbox{12cm}{
          Berechnung von $p_{c \rightarrow a}(\vec{r})$ und $p_{a \rightarrow c}(\vec{r})$:
          \[
          \begin{array}{lll}
          p_{c \rightarrow a}(\vec r) & = & p_{b} + p_{c} \, c_{Kohlenstoff}(\vec r) + \sum_{amorphe \, Nachbarn} \frac{p_{s} \, c_{Kohlenstoff}(\vec{r'})}{(\vec r - \vec{r'})^2} \\
          p_{a \rightarrow c}(\vec r) & = & (1 - p_{c \rightarrow a}(\vec r)) \Big(1 - \frac{\sum_{direkte \, Nachbarn} \delta (\vec{r'})}{6} \Big)
          \end{array}
          \]
          \[
          \delta (\vec r) = \left\{
            \begin{array}{ll}
	    1 & \textrm{wenn Gebiet bei $\vec r$ amorph} \\
	    0 & \textrm{sonst} \\
	    \end{array}
          \right.
          \]
        }}}}
        \ncline[]{->}{koord_wahl}{berechnung_pca}

        \rput(7,8){\rnode{status}{\psframebox{Volumen $\vec{r}(k,l,m)$ amorph?}}}
        \ncline[]{->}{berechnung_pca}{status}

        \rput(4,6){\rnode{cryst}{\psframebox[linestyle=solid,linecolor=blue]{$R_4 \le p_{c \rightarrow a}$?}}}
        \rput(10,6){\rnode{amorph}{\psframebox[linestyle=solid,linecolor=red]{$R_4 \le p_{a \rightarrow c}$?}}}
        \ncline[]{->}{status}{cryst}
        \lput*{0}{nein}

        \ncline[]{->}{status}{amorph}
        \lput*{0}{ja}

        \rput(4,4){\rnode{do_amorph}{\psframebox[linestyle=solid,linecolor=red]{Setze Volumen amorph}}}
        \ncline[]{->}{cryst}{do_amorph}
        \lput*{0}{ja}

        \rput(10,4){\rnode{do_cryst}{\psframebox[linestyle=solid,linecolor=blue]{Setze Volumen kristallin}}}
        \ncline[]{->}{amorph}{do_cryst}
        \lput*{0}{ja}

        \rput(7,3){\rnode{check_h}{\psframebox{Anzahl der Durchl"aufe gleich Anzahl der Treffer pro Ion?}}}

        \rput(7,6){\pnode{h_2}}
        \ncline[]{amorph}{h_2}
        \ncline[]{->}{h_2}{check_h}
        \lput*{0}{nein}

        \rput(7,6){\pnode{h_3}}
        \ncline[]{cryst}{h_3}
        \ncline[]{->}{h_3}{check_h}
        \lput*{0}{nein}

        \rput(14,3){\pnode{h_4}}
        \rput(14,16){\pnode{h_5}}
        \ncline[]{check_h}{h_4}
        \ncline[]{h_4}{h_5}
        \lput*{0}{nein}
        \ncline[]{->}{h_5}{random1}

        \ncline[]{->}{do_cryst}{check_h}
        \ncline[]{->}{do_amorph}{check_h}

        \rput(7,1){\rnode{weiter_1}{\psframebox{$\bigotimes$}}}
        \ncline[]{->}{check_h}{weiter_1}
        \lput*{0}{ja}

      \end{pspicture}
      \caption{{\em NLSOP} Ablaufschema Teil 1: Amorphisierung und Rekristallisation.}
      \label{img:flowchart1}
      \end{center}
      \end{figure}

    Im ersten Schritt sollen die Kollisionen und die daraus resultierende Amorphisierung beziehungsweise Rekristallisation simuliert werden.
    Das zugeh"orige Ablaufschema ist in Abbildung \ref{img:flowchart1} gezeigt.
    Zun"achst muss das gesto"sene Volumen ausgew"ahlt werden.
    Die St"o"se sind bez"uglich der $x$ und $y$ Richtung statistisch isotrop verteilt.
    Es werden zwei gleichverteilte Zufallszahlen $r_1 \in [0,X[$ und $r_2 \in [0,Y[$ nach \eqref{eq:gleichverteilte_r} ausgew"urfelt.
    Diese werden auf die ganzen Zahlen $k$ und $l$ abgebildet und bestimmen die Lage des getroffenen Volumens in der $x,y$-Ebene.
    Eine weitere, mit Hilfe der Verwerfungsmethode aus Abschnitt \ref{subsubsection:verwerf_meth} erzeugte Zufallszahl $r_3 \in [0,Z[$ entsprechend der nuklearen Bremskraft, abgebildet auf die ganze Zahl $m$, legt die Tiefe des getroffenen Volumens fest.
    Somit hat man den Ortsvektor $\vec{r}(k,l,m)$ f"ur den Amorphisierungs- oder Rekristallisationsvorgang bestimmt.
    Nun kann die Amorphisierungs- beziehungsweise Rekristallisationswahrscheinlichkeit nach \eqref{eq:p_ca_local} beziehungsweise \eqref{eq:p_ac_genau} berechnet werden.
    Eine weitere Zufallszahl $r_4 \in [0,1[$ entscheidet dann "uber einen eventuellen Statuswechsel des Volumens.
    Es gibt folgende M"oglichkeiten:
    \begin{enumerate}
    \item Volumen $\vec{r}(k,l,m)$ ist kristallin.\\
          Wenn $r_4$ kleiner gleich $p_{c \rightarrow a}$ ist, wechselt der Status zu amorph.
	  Ansonsten bleibt der Status unver"andert.
    \item Volumen $\vec{r}(k,l,m)$ ist amorph.\\
          Wenn $r_4$ kleiner gleich $p_{a \rightarrow c}$ ist, wechselt der Status zu kristallin.
	  Ansonsten bleibt der Status unver"andert.
    \end{enumerate}

    Der gesamte Amorphisierungs- und Rekristallisationsschritt wird f"ur die Anzahl der getroffenen Volumina pro implantierten Ion $h$ wiederholt.

    \subsection{Einbau des implantierten Kohlenstoffs ins Target}

      \begin{figure}[h]
      \begin{center}
      \begin{pspicture}(0,0)(15,5)

        \rput(2,5){\rnode{weiter_2}{\psframebox{$\bigotimes$}}}

        \rput(7,5){\rnode{random2}{\psframebox[fillstyle=solid,fillcolor=green]{\parbox{8.5cm}{
          Ausw"urfeln der Zufallszahlen:\\
          $R_5$, $R_6$, $R_7$ entsprechend Reichweitenverteilung
        }}}}
        \ncline[]{->}{weiter_2}{random2}

        \rput(7,3){\rnode{koord_wahl_i}{\psframebox[fillstyle=solid,fillcolor=green]{\parbox{7cm}{
          Bestimmung von $\vec{r}(k,l,m)$ durch Abbildung von $R_5$, $R_6$ und $R_7$ auf $k$, $l$ und $m$
        }}}}
        \ncline[]{->}{random2}{koord_wahl_i}

        \rput(7,1){\rnode{inc_c}{\psframebox[fillstyle=solid,fillcolor=green]{\parbox{7cm}{
          Erh"ohung des Kohlenstoffs im Volumen $\vec{r}(k,l,m)$
        }}}}
        \ncline[]{->}{koord_wahl_i}{inc_c}

	\rput(12,1){\rnode{weiter_3}{\psframebox{$\bigotimes$}}}
        \ncline[]{->}{inc_c}{weiter_3}

      \end{pspicture}
      \caption{{\em NLSOP} Ablaufschema Teil 2: Einbau des Kohlenstoffs (gr"un).}
      \label{img:flowchart2}
      \end{center}
      \end{figure}

    Nachdem das Ion die Sto"sprozesse beendet hat, kommt es im Target zur Ruhe.
    Die Wahl des Volumens, in das das Ion eingebaut wird, ist analog zur Wahl der Ermittlung des zu sto"senden Volumens.
    Lediglich die Implantationstiefe wird durch eine Zufallszahl bestimmt, deren Wahrscheinlichkeitsverteilung dem Konzentrationsprofil entspricht.
    Zur Erzeugung der entsprechenden Zufallszahl wird wieder die in \ref{subsubsection:verwerf_meth} beschriebene Verwerfungsmethode benutzt.

    In dem ausgew"ahlten W"urfel $\vec{r}(k,l,m)$ wird der Z"ahler f"ur den Kohlenstoff um eins erh"oht.

    \subsection{Diffusion und Sputtern}

      \begin{figure}[h]
      \begin{center}
      \begin{pspicture}(0,0)(15,14)

        \rput(7,14){\rnode{weiter_4}{\psframebox{$\bigotimes$}}}

        \rput(11,12){\rnode{is_d}{\psframebox[fillstyle=solid,fillcolor=yellow]{Durchlauf vielfaches von $d_v$?}}}
        \ncline[]{->}{weiter_4}{is_d}

        \rput(3,12){\rnode{is_s}{\psframebox[fillstyle=solid,fillcolor=red]{Durchlauf vielfaches von $n$?}}}
        \ncline[]{->}{is_d}{is_s}
        \lput*{0}{nein}

        \rput(11,10){\rnode{loop_d}{\psframebox[fillstyle=solid,fillcolor=yellow]{Gehe alle/verbleibende Volumina durch?}}}
        \ncline[]{->}{is_d}{loop_d}
        \lput*{0}{ja}

        \rput(11,9){\rnode{d_is_amorph}{\psframebox[fillstyle=solid,fillcolor=yellow]{Volumen $\vec{r}(k,l,m)$ amorph?}}}
        \ncline[]{->}{loop_d}{d_is_amorph}

        \rput(11,7){\rnode{loop_dn}{\psframebox[fillstyle=solid,fillcolor=yellow]{\parbox{4cm}{
          Gehe alle/verbleibende\\
          direkte Nachbarn durch
        }}}}
        \ncline[]{->}{d_is_amorph}{loop_dn}
        \lput*{0}{ja}

        \rput(11,6){\rnode{is_cryst}{\psframebox[fillstyle=solid,fillcolor=yellow]{Nachbarvolumen kristallin?}}}
        \ncline[]{->}{loop_dn}{is_cryst}

        \rput(12,4){\rnode{transfer}{\psframebox[fillstyle=solid,fillcolor=yellow]{\parbox{3.5cm}{
          "Ubertrage den Anteil $d_r$ des Kohlenstoffs
        }}}}
        \ncline[]{->}{is_cryst}{transfer}
        \lput*{0}{ja}

        \rput(11,3){\rnode{check_dn}{\psframebox[fillstyle=solid,fillcolor=yellow]{Alle Nachbarn durch?}}}
        \ncline[]{->}{transfer}{check_dn}
        \rput(9.5,5){\pnode{h1}}
        \ncline[]{is_cryst}{h1}
        \rput(9.5,3.2){\pnode{h2}}
        \ncline[]{->}{h1}{h2}
        \lput*{0}{nein}
        \rput(14,3){\pnode{h3}}
        \ncline[]{check_dn}{h3}
        \rput(14,7){\pnode{h4}}
        \ncline[]{h3}{h4}
        \lput*{0}{nein}
        \ncline[]{->}{h4}{loop_dn}

        \rput(11,1){\rnode{check_d}{\psframebox[fillstyle=solid,fillcolor=yellow]{Alle Volumina durch?}}}
        \ncline[]{->}{check_dn}{check_d}
        \lput*{0}{ja}
        \rput(14.5,1){\pnode{h5}}
        \ncline[]{check_d}{h5}
        \rput(14.5,10){\pnode{h6}}
        \ncline[]{h5}{h6}
        \lput*{0}{nein}
        \ncline[]{->}{h6}{loop_d}
        \rput(7,1){\pnode{h7}}
        \ncline[]{check_d}{h7}
        \lput*{0}{ja}
        \rput(7,11){\pnode{h8}}
        \ncline[]{h7}{h8}
        \rput(5.4,11.9){\pnode{h9}}
        \ncline[]{->}{h8}{h9}

        \rput(3,9){\rnode{s_p}{\psframebox[fillstyle=solid,fillcolor=red]{\parbox{7cm}{
          Sputterroutine:\\
          \begin{itemize}
            \item Kopiere Inhalt von Ebene $i$ nach\\
                  Ebene $i-1$ f"ur $i = Z,Z-1,\ldots ,2$
            \item Setze Status jedes Volumens in Ebene $Z$ kristallin
            \item Setze Kohlenstoff jedes Volumens in Ebene $Z$ auf Null
          \end{itemize}
        }}}}
        \ncline[]{->}{is_d}{loop_d}
        \lput*{0}{ja}
        \ncline[]{->}{is_s}{s_p}

        \rput(3,5){\rnode{check_n}{\psframebox{\parbox{4cm}{
          Anzahl Durchl"aufe entsprechend Dosis?
        }}}}
        \ncline[]{->}{s_p}{check_n}

        \rput(5,3){\rnode{start}{\psframebox{{\em NLSOP} Start}}}
        \ncline[]{->}{check_n}{start}
        \lput*{0}{nein}
        \rput(1,3){\rnode{stop}{\psframebox{{\em NLSOP} Stop}}}
        \ncline[]{->}{check_n}{stop}
        \lput*{0}{ja}

      \end{pspicture}
      \caption{{\em NLSOP} Ablaufschema Teil 2: Diffusion (gelb) und Sputtervorgang (rot).}
      \label{img:flowchart3}
      \end{center}
      \end{figure}

    Im Folgenden wird auf die Realisierung der Diffusion eingegangen.
    Die Simulation geht der Reihe nach alle Volumina durch.
    Im Falle eines amorphen Volumens werden aus direkt anliegenden kristallinen Volumina ein Anteil $d_r$ des Kohlenstoffs abgezogen und zu dem amorphen Volumen addiert.
    Da nur ganze Atome "ubertragen werden k"onnen, wird der Betrag auf die n"achst kleinere ganze Zahl abgerundet.
    Dieser Diffusionsvorgang wird alle $d_v$ Schritte ausgef"uhrt.

    Hier sei angemerkt, dass die Simulation prinzipiell auch Diffusion von Kohlenstoff innerhalb kristalliner Volumina behandeln kann.
    Die erste Idee war, dass Kohlenstoff in kristalline Gebiete diffundieren kann, die bereits einen grossen Anteil ihres Kohlenstoffs an einen amorphen Nachbarn abgegeben haben.
    Da jedoch das Konzentrationsprofil durch Diffusionsprozesse nicht ver"andert wird \cite{goetz}, wurde die rein kristalline Diffusion in $z$-Richtung ausgeschlossen.
    %Da weiterhin die Implantationsprofile von experimentellen Messungen und {\em TRIM}-Simulationen recht gut "ubereinstimmen, kann Diffusion in $z$-Richtung tats"achlich ausgeschlossen werden.
    Eine Vorzugsrichtung der Diffusion ist unphysikalisch, weshalb die gesamte Diffusion innerhalb kristalliner Gebiete in den folgenden Simulationen ausgeschlossen wurde.
    Als Relikt bleibt die Option die Diffusion auch vom Kristallinen ins Amorphe in $z$-Richtung auszuschalten.
    Setzt sich die Diffusionsrate aus einem Beitrag $d_r^{x,y}$ f"ur Diffusion in der Ebene und einem Beitrag $d_r^z$ f"ur Diffusion in $z$-Richtung zusammen, so kann durch diese Option $d_r^z = 0$ gesetzt werden.

    Die Sputterroutine wird nach der Dosis, die einem Abtrag von einer Ebene von Zellen ($3 nm$) entspricht, ausgef"uhrt und bewirkt, dass diese oberste Ebene entfernt wird.
    Der Zusammenhang zwischen Sputterrate $S$ und Anzahl der Simulationsdurchl"aufe $n$ ist demnach wie folgt gegeben:
    \begin{equation}
    S = \frac{(3 nm)^3 XY }{n} \quad \textrm{.}
    \end{equation}
    Nach $n$ Simulationsdurchl"aufen wird eine kohlenstofffreie, kristalline Ebene von unten her eingeschoben.
    Der Inhalt der Ebene $i$ wird auf die Ebene $i-1$ (f"ur $i = Z, Z-1, \ldots, 2$) "uberschrieben.
    Die Information der obersten Ebene $i=1$ geht dabei verloren.
    Diese entspricht der abgetragenen Ebene.
    Die Ebene $i=Z$ erh"alt kristallinen Status und die Kohlenstoffkonzentration Null.

    Dies macht allerdings nur Sinn, wenn das Implantationsprofil und die nukleare Bremskraft f"ur die Ebenen tiefer $Z$ auf Null abgefallen ist, um kristalline, kohlenstofffreie Ebenen zu garantieren.
    Daher wird das Sputtern nur in Simulationen "uber gro"se Tiefenbereiche ber"ucksichtigt.

    Die Sputterrate kann durch {\em TRIM} beziehungsweise Messungen des Kohlenstoffprofils bestimmt werden.
    Bei den gegebenen Bedingungen werden ungef"ahr $50 nm$ des Targets bei einer Dosis von $4,3 \times 10^{-17} cm^{-2}$ abgetragen \cite{basic_phys_proc}.

  \section{Simulierte Tiefenbereiche}
  \label{section:sim_tiefenbereich}

  Wie bereits erw"ahnt wurden zwei verschiedene Versionen des Programms entwickelt. Sie simulieren zwei unterschiedlich gro"se Tiefenbereiche, welche im Folgenden Simulationsfenster genannt werden.

  Da in erster Linie der Selbstorganisationsprozess der lamellaren Ausscheidungen an der vorderen Grenzfl"ache der amorphen $SiC_x$-Schicht simuliert werden soll, behandelt die erste Version den Tiefenbereich von der Oberfl"ache bis zum Beginn der durchgehend amorphen Schicht.
  Dies entspricht einer Tiefe von ungef"ahr $300 nm$ und somit einer Anzahl von $Z=100$ W"urfeln in $z$-Richtung.

  Wie in Abbildung \ref{img:bk_impl_p} gut zu erkennen ist, kann in diesem Tiefenbereich sowohl die Reichweitenverteilung, als auch die nukleare Bremskraft durch eine von der Tiefe linear abh"angige Funktion gen"ahert werden.
  Daher ergeben sich "Anderungen zu den im vorigen Abschnitt erkl"arten Methoden zur Wahl des Volumens, in dem ein Sto"sprozess beziehungsweise eine Konzentrationserh"ohung stattfindet.

  Die Zufallszahl $z$, die auf die Tiefenkoordinate $m$ abgebildet wird, muss der Verteilung $p(z)dz = (sz + s_0)dz$ gen"ugen.
  Dabei beschreiben $s$ und $s_0$ die linear gen"aherte nukleare Bremskraft.
  Die Transformation wird wie in Abschnitt \ref{subsubsection:lin_g_p} beschrieben durchgef"uhrt.
  Dasselbe betrifft die Wahl der Tiefenkoordinate f"ur den Einbau des Kohlenstoffatoms.
  Anstatt der Wahrscheinlichkeitsverteilung der nuklearen Bremskraft entsprechend, wird eine Verteilung entsprechend dem  linear gen"aherte Implantationsprofil verwendet.
  Ausserdem wird nicht nach jedem Durchlauf ein Ion im Simulationsbereich zur Ruhe kommen.
  Da das Maximum der Reichweitenverteilung sehr viel tiefer liegt, werden die meisten Ionen ausserhalb des Simulationsfensters liegen bleiben.
  Daher wird immer nur dann ein Ion eingebaut, wenn der im Simulationsbereich vorhandene Kohlenstoff $n_c$ kleiner als die Anzahl der Durchl"aufe $n$ multipliziert mit dem Verh"altnis der Fl"ache der Kohlenstoffverteilungskurvekurve $c_C(z)$ bis $300 nm$ zur Fl"ache der gesamten Kohlenstoffverteilungskurve ist.
  \begin{equation}
  n_c < n \frac{\int_0^{300 nm} c_C(z) dz}{\int_0^{\infty} c_C(z) dz}
  \end{equation}

  Da sowohl die Reichweitenverteilung, als auch die nukleare Bremskraft in Ebenen gr"osser $Z$ ungleich Null ist, kann Sputtern nicht beachtet werden.
  Der Diffusionsprozess ist uneingeschr"ankt m"oglich.
  In der ersten Version wurde der Einfluss der amorph/kristallinen Struktur direkter Nachbarn auf die Rekristallisation nach \eqref{eq:p_ac_genau} noch nicht beachtet.
  Die Rekristallisationswahrscheinlichkeit ergibt sich hier aus \eqref{eq:p_ac_local}.
  Die Rechenzeit einer Simulation mit $3 \times 10^7$ Durchl"aufen, einem $64 \times 64 \times 100$ grossem Target und Diffusion alle $100$ Schritte betr"agt auf einem $900 Mhz$ {\em Pentium 3} ungef"ahr $3$ Stunden.

  In der zweiten Version wird die gesamte Implantationstiefe simuliert.
  Das Simulationsfenster geht von $0-700 nm$.
  Dies entspricht einer Anzahl $Z=233$ von W"urfeln in $z$-Richtung.

  Die Tiefenkoordinaten f"ur den Sto"sprozess und die Kohlenstoffinkorporation werden, wie in Abschnitt \ref{subsection:a_r_step} beschrieben, nach der Verwerfungsmethode entsprechend dem nuklearen Bremskraftprofil und der Reichweitenverteilung gewonnen.

   Da sowohl der nukleare Energieverlust als auch die Kohlenstoffkonzentration in Ebenen gr"osser $Z$ auf Null abgesunken ist, kann die Sputterroutine ausgef"uhrt werden.
   Der Diffusionsprozess ist ebenfalls uneingeschr"ankt m"oglich.
   Auf dem selben Rechner ben"otigt eine Simulation f"ur ein Target der oben genannten Ausdehnung, einer Anzahl von $100$ Treffern pro Ion und $160 \times 10^6$ Schritten mit Diffusion alle $10^6$ Schritte ungef"ahr $3$ Tage.

  \section{Test der Zufallszahlen}

  Die Simulation kann auf zwei verschiedene Arten die ben"otigten Zufallszahlen beziehen.
  Die erste M"oglichkeit ist das Lesen der Zufallszahlen aus einer speziellen, vom Betriebssystem bereitgestellten Zeichendatei {\em /dev/urandom}.
  Das Betriebssystem generiert aus dem Rauschen einiger Treiber, zum Beispiel den Treibern f"ur Tastatur, Maus und Festplatte einen Vorrat an Entropie.
  Eine Zufallszahl wird durch Anwendung des {\em SHA}-Algorithmus (kurz f"ur {\bf S}ecure {\bf H}ash {\bf A}lgorithm) auf den Inhalt des Entropievorrates erzeugt.
  Eine zweite M"oglichkeit ist die Verwendung des Zufallszahlengenerators der Standardbibliothek der Programmiersprache {\em C}.
  Diese generiert die Zufallszahlensequenz nach der im Abschnitt \ref{subsection:rand_gen} vorgestellten linearen Kongruenzmethode.
  Das zuletzt genannte Verfahren ist damit unabh"angig vom Betriebssystem.

  F"ur vern"unftige Ergebnisse muss die Qualit"at der Zufallszahlen gesichert sein.
  Es gibt viele statistische Tests um eine Zahlenfolge auf ihre Verteilung beziehungsweise Zuf"alligkeit zu "uberpr"ufen.
  Die am h"aufigsten verwendeten Testverfahren sind der $\chi^2$-Test und der Kolmogorov-Smirnov-Test \cite{knuth}.
  
  Im Folgenden soll nur kontrolliert werden, dass f"ur gleichverteilte Zufallszahlen keine lokalen Anh"aufungen von Zahlen existieren.
  Desweiteren werden die Methoden zur Erzeugung spezieller Wahrscheinlichkeitsverteilungen durch Vergleich der H"aufigkeit auftretender Zufallszahlen mit dem gew"unschten Verlauf "uberpr"uft.

  Dazu werden f"ur die unterschiedlichen Verteilungen jeweils 10 Millionen Zufallszahlen zwischen $0$ und $232$ erzeugt und auf die n"achst kleinere ganze Zahl abgerundet.
  Ein einfaches Scriptprogramm ({\em random\_parse.sh}, siehe Anhang \ref{section:hilfsmittel}) z"ahlt die H"aufigkeit der einzelnen Zufallszahlen in der Zufallszahlensequenz.

  \printimg{h}{width=13cm}{random.eps}{H"aufigkeit ganzzahliger Zufallszahlen unterschiedlicher Wahrscheinlichkeitsverteilungen. F"ur jede Verteilung wurden 10 Millionen Zufallszahlen ausgew"urfelt.}{img:random_distrib}
  Abbildung \ref{img:random_distrib} zeigt die H"aufigkeit von Zufallszahlen zwischen $0$ und $232$, abgerundet auf die n"achst kleinere ganze Zahl, f"ur unterschiedliche Wahrscheinlichkeitsverteilungen.
  Die blauen Punkte zeigen die Gleichverteilung nach \eqref{eq:gleichverteilte_r}.
  Man erkennt keine lokalen Anh"aufungen.
  Die roten Punkte zeigen die H"aufigkeit der Zufallszahlen bei Verwendung einer linear steigenden Wahrscheinlichkeitsverteilung wie in Abschnitt \ref{subsubsection:lin_g_p} beschrieben.
  Dabei wurde $a=1$, $b=0$ und $Z=233$ gew"ahlt.
  Wie erwartet zeigen die Punkte einen linearen Verlauf.
  Die H"aufigkeiten, der mit der Verwerfungsmethode erzeugten Zufallszahlen entsprechend der nuklearen Bremskraft (gr"un) und dem Implantationsprofil (schwarz), stimmen sehr gut mit den Profilen in Abbildung \ref{img:bk_impl_p} "uberein.


