+ \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.9,1){\pnode{h5}}
+ \ncline[]{check_d}{h5}
+ \rput(14.9,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(8,9){\pnode{h10}}
+ \rput(8,3){\pnode{h11}}
+ \ncline[]{-}{d_is_amorph}{h10}
+ \ncline[]{-}{h10}{h11}
+ \lput*{0}{nein}
+ \ncline[]{->}{h11}{check_d}
+
+ \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 gro"sen 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 sind, 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"aherten Implantationsprofil verwendet.
+ Au"serdem 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 au"serhalb 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 Kohlenstoffverteilungskurve $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$ gro"sem Target, einem Treffer pro Durchlauf 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 sogenannten \dq Vorrat an Entropie\dq{}.
+ Eine Zufallszahl wird durch Anwendung des {\em SHA}-Algorithmus \cite{sha} (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}.
+ Dieser 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}, 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.
+