again more
[lectures/latex.git] / nlsop / diplom / simulation.tex
index c68cf28..837c17f 100644 (file)
@@ -1,4 +1,5 @@
 \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 kurz f"ur die Schlagw"orter {\bf N}ano, {\bf L}amelle und {\bf S}elbst{\bf O}ragnisations{\bf P}rozess steht.
   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.
     Bei den gegebenen Bedingungen werden ungef"ahr $50 nm$ des Targets bei einer Dosis von $4,3 \times 10^{-17} cm^{-2}$ abgetragen.
 
   \section{Simulierte Tiefenbereiche}
+  \label{section:sim_tiefenbereich}
 
   Wie bereits erw"ahnt gibt es zwei verschiedene Versionen des Programms, die verschiedene Tiefenbereiche, im Folgenden Simulationsfenster genannt, simulieren.
 
   Die Transformation wird wie in Abschnitt \ref{subsubsection:lin_g_p} beschrieben durchgef"uhrt.
   Dasselbe betrifft die Wahl der Tiefen-Koordinate f"ur den Einbau des Kohlenstoffatoms.
   Anstatt der Wahrscheinlichkeitsverteilung der nuklearen Bremskraft entsprechend wird das 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 stehen 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 Implantationskurve $I(x)$ bis $300 nm$ zur Fl"ache der gesamten Implantationskurve ist.
+  \begin{equation}
+  n_c < n \frac{\int_0^{300 nm} I(x) dx}{\int_0^{\infty} I(x) dx}
+  \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 "moglich.
 
+  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 Konzentartionsprofil durch Diffusionsprozesse nicht ver"andert werden darf, 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 Diffusion innerhalb kristalliner Gebiete in weiteren Simulationen ausgeschlossen wurde.
+  Als Relikt bleibt die Option die Diffusion in $z$-Richtung auszuschalten.
+
   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.
 
   F"ur vern"unftige Ergebnisse muss die Qualit"at der Zufallszahlen gesichert sein.
   Es gibt viele statistische Tests eine Zahlenfolge auf ihre Verteilung beziehungsweise Zuf"alligkeit zu "uberpr"ufen.
+
   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 Script-Programm z"ahlt die H"aufigkeit der einzelnen Zufallszahlen der Zufallszahlensequenz.
+
   \begin{figure}[h]
   \includegraphics[width=12cm]{random.eps}
   \caption{H"aufigkeit ganzzahliger Zufallszahlen unterschiedlicher Wahrscheinlichkeitsverteilungen. F"ur jede Verteilung wurden 10 Millionen Zufallszahlen ausgew"urfelt.}
   \label{img:random_distrib}
   \end{figure}
-  Abbildung \ref{img:random_distrib} zeigt die H"aufigkeit von Zufallszahlen zwischen $0$ und $232$, abgerundet auf die naechst kleinere ganze Zahl, f"ur unterschiedliche Wahrscheinlichkeitsverteilungen.
+  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"aufigkeit 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.
 
   \section{Ablaufschema}
 
+  Das Ablaufshema ist aus Platzgr"unden in zwei Teile gegliedert.
+  Abbildung \ref{img:flowchart1} zeigt das Ablaufshema des Amorphisierungs- und Rekristallisationsvorgangs.
+  In Abbildung \ref{img:flowchart2} wird der Kohlenstoffeinbau sowie Diffusion und Sputtern behandelt.
+
+  \begin{figure}[h]
+  \begin{pspicture}(0,0)(12,18)
+
+    \rput(6,18){\rnode{start}{\psframebox{{\em NLSOP} Start}}}
+
+    \rput(6,16){\rnode{random1}{\psframebox{\parbox{7.5cm}{
+      Ausw"urfeln der Zufallszahlen:\\
+      $R_1$, $R_2$, $R_3$ entsprechend nuklearer Bremskraft\\
+      $R_4 \in [0,1[$
+    }}}}
+    \ncline[]{->}{start}{random1}
+
+    \rput(6,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(6,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(6,8){\rnode{status}{\psframebox{Volumen $\vec{r}(k,l,m)$ amorph?}}}
+    \ncline[]{->}{berechnung_pca}{status}
+
+    \rput(3,6){\rnode{cryst}{\psframebox[linestyle=solid,linecolor=blue]{$R_4 \le p_{c \rightarrow a}$?}}}
+    \rput(9,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(3,4){\rnode{do_amorph}{\psframebox[linestyle=solid,linecolor=red]{Setze Volumen amorph}}}
+    \ncline[]{->}{cryst}{do_amorph}
+    \lput*{0}{ja}
+
+    \rput(9,4){\rnode{do_cryst}{\psframebox[linestyle=solid,linecolor=blue]{Setze Volumen kristallin}}}
+    \ncline[]{->}{amorph}{do_cryst}
+    \lput*{0}{ja}
+
+    \rput(6,3){\rnode{check_h}{\psframebox{Anzahl der Durchl"aufe gleich Anzahl der Treffer pro Ion?}}}
+
+    \rput(6,6){\pnode{h_2}}
+    \ncline[]{amorph}{h_2}
+    \ncline[]{->}{h_2}{check_h}
+    \lput*{0}{nein}
+
+    \rput(6,6){\pnode{h_3}}
+    \ncline[]{cryst}{h_3}
+    \ncline[]{->}{h_3}{check_h}
+    \lput*{0}{nein}
+
+    \rput(13,3){\pnode{h_4}}
+    \rput(13,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(6,1){\rnode{weiter_1}{\psframebox{$\bigotimes$}}}
+    \ncline[]{->}{check_h}{weiter_1}
+    \lput*{0}{ja}
+
+  \end{pspicture}
+  \caption{{\em NLSOP} Ablaufshema Teil 1: Amorphisierung und Rekristallisation.}
+  \label{img:flowchart1}
+  \end{figure}
+
+  \begin{figure}[h]
+  \begin{pspicture}(0,0)(12,18)
+
+    \rput(6,18){\rnode{weiter_2}{\psframebox{$\bigotimes$}}}
+
+    \rput(6,16){\rnode{random2}{\psframebox[fillstyle=solid,fillcolor=green]{\parbox{7.5cm}{
+      Ausw"urfeln der Zufallszahlen:\\
+      $R_5$, $R_6$, $R_7$ entsprechend Reichweitenverteilung
+    }}}}
+    \ncline[]{->}{weiter_2}{random2}
+
+    \rput(2,14){\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$
+    }}}}
+    \ncbar[angleA=180,angleB=180]{->}{random2}{koord_wahl_i}
+
+    \rput(10,14){\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(10,12){\rnode{is_d}{\psframebox[fillstyle=solid,fillcolor=yellow]{Durchlauf vielfaches von $d_v$?}}}
+    \ncline[]{->}{inc_c}{is_d}
+
+    \rput(2,12){\rnode{is_s}{\psframebox[fillstyle=solid,fillcolor=red]{Durchlauf vielfaches von $n$?}}}
+    \ncline[]{->}{is_d}{is_s}
+    \lput*{0}{nein}
+
+    \rput(10,10){\rnode{loop_d}{\psframebox[fillstyle=solid,fillcolor=yellow]{Gehe alle/verbleibende Volumina durch?}}}
+    \ncline[]{->}{is_d}{loop_d}
+    \lput*{0}{ja}
+
+    \rput(10,9){\rnode{d_is_amorph}{\psframebox[fillstyle=solid,fillcolor=yellow]{Volumen $\vec{r}(k,l,m)$ amorph?}}}
+    \ncline[]{->}{loop_d}{d_is_amorph}
+
+    \rput(10,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(10,6){\rnode{is_cryst}{\psframebox[fillstyle=solid,fillcolor=yellow]{Nachbarvolumen kristallin?}}}
+    \ncline[]{->}{loop_dn}{is_cryst}
+
+    \rput(11,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(10,3){\rnode{check_dn}{\psframebox[fillstyle=solid,fillcolor=yellow]{Alle Nachbarn durch?}}}
+    \ncline[]{->}{transfer}{check_dn}
+    \rput(8.5,5){\pnode{h1}}
+    \ncline[]{is_cryst}{h1}
+    \rput(8.5,3.2){\pnode{h2}}
+    \ncline[]{->}{h1}{h2}
+    \lput*{0}{nein}
+    \rput(13,3){\pnode{h3}}
+    \ncline[]{check_dn}{h3}
+    \rput(13,7){\pnode{h4}}
+    \ncline[]{h3}{h4}
+    \lput*{0}{nein}
+    \ncline[]{->}{h4}{loop_dn}
+
+    \rput(10,1){\rnode{check_d}{\psframebox[fillstyle=solid,fillcolor=yellow]{Alle Volumina durch?}}}
+    \ncline[]{->}{check_dn}{check_d}
+    \lput*{0}{ja}
+    \rput(13.5,1){\pnode{h5}}
+    \ncline[]{check_d}{h5}
+    \rput(13.5,10){\pnode{h6}}
+    \ncline[]{h5}{h6}
+    \lput*{0}{nein}
+    \ncline[]{->}{h6}{loop_d}
+    \rput(6,1){\pnode{h7}}
+    \ncline[]{check_d}{h7}
+    \lput*{0}{ja}
+    \rput(6,11){\pnode{h8}}
+    \ncline[]{h7}{h8}
+    \rput(4.4,11.9){\pnode{h9}}
+    \ncline[]{->}{h8}{h9}
+
+    \rput(2,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(2,5){\rnode{check_n}{\psframebox{\parbox{4cm}{
+      Anzahl Durchl"aufe entsprechend Dosis?
+    }}}}
+    \ncline[]{->}{s_p}{check_n}
+
+    \rput(4,3){\rnode{start}{\psframebox{{\em NLSOP} Start}}}
+    \ncline[]{->}{check_n}{start}
+    \lput*{0}{nein}
+    \rput(0,3){\rnode{stop}{\psframebox{{\em NLSOP} Stop}}}
+    \ncline[]{->}{check_n}{stop}
+    \lput*{0}{ja}
+
+  \end{pspicture}
+  \caption{{\em NLSOP} Ablaufshema Teil 2: Kohlenstoffeinbau (gr"un), Diffusion (gelb) und Sputtervorgang (rot).}
+  \label{img:flowchart2}
+  \end{figure}
+