From 3d6ada0c1c3dc7a335df4cd8c167f4b0961851ff Mon Sep 17 00:00:00 2001 From: hackbard Date: Thu, 3 Apr 2008 18:51:37 +0200 Subject: [PATCH] added Makefile + changes to appendix and sim chapter --- posic/thesis/Makefile | 24 +++++ posic/thesis/d_tersoff.tex | 169 +++++++++++++++++++++++++++++++++++- posic/thesis/simulation.tex | 20 ++++- 3 files changed, 210 insertions(+), 3 deletions(-) create mode 100644 posic/thesis/Makefile diff --git a/posic/thesis/Makefile b/posic/thesis/Makefile new file mode 100644 index 0000000..eabf68b --- /dev/null +++ b/posic/thesis/Makefile @@ -0,0 +1,24 @@ +# Makefile +LATEX = latex +DVIPS = dvips -tlandscape +DVIPDF= dvipdf +PS2PDF = ps2pdf +PDFLATEX = pdflatex + +SRC = thesis.tex +PDF = $(SRC:%.tex=%.pdf) + +all: $(PDF) + +%.dvi: %.tex + $(PDFLATEX) $< $@ + $(PDFLATEX) $< $@ + +%.ps: %.dvi + $(DVIPS) $< + +%.pdf: %.dvi + $(DVIPDF) $< + +clean: + rm -f *.log *.aux diff --git a/posic/thesis/d_tersoff.tex b/posic/thesis/d_tersoff.tex index dbc798a..cb2e96b 100644 --- a/posic/thesis/d_tersoff.tex +++ b/posic/thesis/d_tersoff.tex @@ -1,4 +1,4 @@ -\chapter{Derivative of the three body Tersoff potential} +\chapter{Force evaluation for the three body Tersoff potential} \label{app:d_tersoff} \section{Form of the Tersoff potential and its derivative} @@ -100,9 +100,174 @@ In the following all the necessary derivatives to calculate $\nabla_{{\bf r}_i} \begin{eqnarray} \nabla_{{\bf r}_i} V_{jk} & = & f_C(r_{jk}) f_A(r_{jk}) \nabla_{{\bf r}_i} b_{jk} \\ \nabla_{{\bf r}_i} b_{jk} & = & - \frac{\chi_{jk}}{2} (1+\beta^{n_j} \zeta_{jk}^{n_j})^{-\frac{1}{2n_j}-1} \beta^{n_j} \zeta_{jk}^{n_j-1} \nabla_{{\bf r}_i} \zeta_{jk} \\ -\nabla_{{\bf r}_i} \zeta_{jk} & = & \sum_{l \neq j,k} \big( g(\theta_{jkl}) \nabla_{{\bf r}_i} f_C(r_{jl}) + f_C(r_{jl}) \nabla_{{\bf r}_i} g(\theta_{jkp}) \big) \nonumber \\ +\nabla_{{\bf r}_i} \zeta_{jk} & = & \sum_{l \neq j,k} \big( g(\theta_{jkl}) \nabla_{{\bf r}_i} f_C(r_{jl}) + f_C(r_{jl}) \nabla_{{\bf r}_i} g(\theta_{jkl}) \big) \nonumber \\ & = & f_C(r_{ji}) \nabla_{{\bf r}_i} g(\theta_{jki}) + g(\theta_{jki}) \nabla_{{\bf r}_i} f_C(r_{ji}) \\ \nabla_{{\bf r}_i} g(\theta_{jki}) & = & - \frac{2(h_j-\cos\theta_{jki})c_j^2}{\big[d_j^2 + (h_j - \cos\theta_{jki})^2\big]^2} \nabla_{{\bf r}_i} (\cos\theta_{jki}) \\ \nabla_{{\bf r}_i} \cos \theta_{jki} & = & \nabla_{{\bf r}_i} \Big( \frac{{\bf r}_{jk} {\bf r}_{ji}}{r_{jk} r_{ji}} \Big) \nonumber \\ & = & \frac{1}{r_{jk} r_{ji}} {\bf r}_{jk} - \frac{\cos\theta_{jki}}{r_{ji}^2} {\bf r}_{ji} \end{eqnarray} + + \section{Implementation issues} + +As seen in the last sections the derivatives of $V_{ij}$, $V_{ji}$ and $V_{jk}$ +with respect to ${\bf r}_i$ are necessary to compute the forces for atom $i$. +According to this, for every triple $(ijk)$ the derivatives of the three +potential contributions, denoted by $V_{ijk}$, $V_{jik}$ and $V_{jki}$ +have to be computed. +In simulation, however, it is not practical to evaluate all three potential +derivatives for each $(ijk)$ triple. +The $V_{jik}$ and $V_{jki}$ potential and its derivatives will be calculated +in subsequent loops anyways. +To avoid multiple computation of the same potential derivatives +the force contributions for atom $j$ and $k$ due to the $V_{ijk}$ contribution +have to be considered by calculating the derivatives of $V_{ijk}$ +with respect to ${\bf r}_j$ and ${\bf r}_k$ +inside the loop of the $(ijk)$ triple +in addition to the derivative with respect to ${\bf r}_i$. +This poses a more convenient method to obtain the forces +keeping in mind that all the necessary force contributions for atom $i$ +are calculated and added in subsequent loops. + +The following symmetry considerations help to obtain the + + \subsection{Derivative of $V_{ij}$ with respect to ${\bf r}_j$} + +\begin{eqnarray} + \nabla_{{\bf r}_j} V_{ij} & = & + \nabla_{{\bf r}_j} f_C(r_{ij}) \big[ f_R(r_{ij}) + + b_{ij} f_A(r_{ij}) \big] + \nonumber \\ + & & + f_C(r_{ij}) \big[ \nabla_{{\bf r}_j} f_R(r_{ij}) + + b_{ij} \nabla_{{\bf r}_j} f_A(r_{ij}) + + f_A(r_{ij}) \nabla_{{\bf r}_j} b_{ij} \big] +\end{eqnarray} +Using the equality $\nabla_{{\bf r}_i} r_{ij}=-\nabla_{{\bf r}_j} r_{ij}$ +the following relations are valid: +\begin{eqnarray} + \nabla_{{\bf r}_j} f_R(r_{ij}) &=& - \nabla_{{\bf r}_i} f_R(r_{ij}) \\ + \nabla_{{\bf r}_j} f_A(r_{ij}) &=& - \nabla_{{\bf r}_i} f_A(r_{ij}) \\ + \nabla_{{\bf r}_j} f_C(r_{ij}) &=& - \nabla_{{\bf r}_i} f_C(r_{ij}) +\end{eqnarray} +The pair contributions .... easy. +Now having a look at $b_{ij}$. +\begin{eqnarray} + \nabla_{{\bf r}_j}\cos\theta_{ijk} &=& + \nabla_{{\bf r}_j}\Big(\frac{{\bf r}_{ij}{\bf }r_{ik}}{r_{ij}r_{ik}}\Big) + \nonumber \\ + &=& \frac{1}{r_{ij}r_{ik}}{\bf r}_{ik} - + \frac{\cos\theta_{ijk}}{r_{ij}^2}{\bf r}_{ij} +\end{eqnarray} + + \subsection{Derivative of $V_{ij}$ with respect to ${\bf r}_k$} + +The derivative of $V_{ij}$ with respect to ${\bf r}_k$ just consists of the +single term +\begin{eqnarray} + \nabla_{{\bf r}_k} V_{ij} & = & + f_C(r_{ij})f_A(r_{ij})\nabla_{{\bf r}_{k}}b_{ij} +\end{eqnarray} +since the derivatives of the functions only depending on atom $i$ and $j$ +vanish. +\begin{eqnarray} + \nabla_{{\bf r}_k} f_R(r_{ij}) &=& 0 \\ + \nabla_{{\bf r}_k} f_A(r_{ij}) &=& 0 \\ + \nabla_{{\bf r}_k} f_C(r_{ij}) &=& 0 +\end{eqnarray} +Now look at $b_{ij}$, not only angle important here! +\begin{eqnarray} + \nabla_{{\bf r}_k}\zeta_{ij} &=& + g(\theta_{ijk})\nabla_{{\bf r}_k}f_C(r_{ik}) + + f_C(r_{ik})\nabla_{{\bf r}_k}g(\theta_{ijk}) \\ + \nabla_{{\bf r}_k}f_C(r_{ik}) &=& - \nabla_{{\bf r}_i}f_C(r_{ik}) \\ + \nabla_{{\bf r}_k}\cos\theta_{ijk} &=& + \nabla_{{\bf r}_k}\Big(\frac{{\bf r}_{ij}{\bf }r_{ik}}{r_{ij}r_{ik}}\Big) + \nonumber \\ + &=&\frac{1}{r_{ij}r_{ik}}{\bf r}_{ij} - + \frac{\cos\theta_{ijk}}{r_{ik}^2}{\bf r}_{ik} +\end{eqnarray} + + \subsection{Code realization} + +The implementation of the force evaluation shown in the following +is applied to the potential designed by Erhard and Albe. +There are slight differences comparted to the original potential by Tersoff: +\begin{itemize} + \item Difference in sign of the attractive part. + \item $c$, $d$ and $h$ values depend on atom $k$ in addition to atom $i$. + \item Difference in sign of the $\cos\theta_{ijk}$ term. + \item There are no parameters $\beta$ and $\chi$. + \item The exponent of the $b$ term is constantly $-\frac{1}{2}$. +\end{itemize} +These differences actually slightly ease code realization. + +\begin{figure} +\renewcommand\labelitemi{} +\renewcommand\labelitemii{} +\renewcommand\labelitemiii{} +LOOP i \{ +\begin{itemize} + \item // nop (only used in orig. Tersoff) + \item LOOP j \{ + \begin{itemize} + \item // nop (only used in orig. Tersoff) + \end{itemize} + \item \} + \item LOOP j \{ + \begin{itemize} + \item $\zeta_{ij}=0$ + \item set $S_{ij}$ (cutoff) + \item calculate: $r_{ij}$, $r_{ij}^2$ + \item IF $r_{ij} > S_{ij}$ THEN CONTINUE + \item + \item LOOP k \{ + \begin{itemize} + \item set $ik$-depending values + \item calculate: $r_{ik}$, $r_{ik}^2$ + \item IF $r_{ik} > S_{ik}$ THEN CONTINUE + \item calculate: $\theta_{ijk}$, $\cos(\theta_{ijk})$, + $dg(\theta_{ijk})$, $g(\theta)$, + $f_C(r_{ik})$, $df_C(r_{ik})$ + \item $\zeta_{ij}=\zeta_{ij}+f_C(r_{ik})g(\theta)$ + \end{itemize} + \item \} + \item + \item calculate: $f_C(r_{ij})$, $df_C(r_{ij})$, $f_A(r_{ij})$, + $df_A(r_{ij})$, $f_R(r_{ij})$, $df_R(r_{ij})$, + $b_{ij}$, $db_{ij}$ + \item calculate: +$ +F=-\frac{1}{2}\big( +\nabla_{{\bf r}_i} f_C(r_{ij}) \big[ f_R(r_{ij}) - b_{ij} f_A(r_{ij}) \big] + +f_C(r_{ij}) \big[ \nabla_{{\bf r}_i} f_R(r_{ij}) - + b_{ij} \nabla_{{\bf r}_i} f_A(r_{ij}) \big]\big) +$ + \item $F_{Atom\, i} = F_{Atom\, i} + F$ + \item $F_{Atom\, j} = F_{Atom\, j} - F$ + \item $E=E+\frac{1}{2}f_C(r_{ij})[f_R(r_{ij})-b_{ij}f_A(r_{ij})]$ + \item $d\zeta_{ij}=\frac{1}{2}f_A(r_{ij})f_C(r_{ij})db_{ij}$ + \item + \item LOOP k \{ + \begin{itemize} + \item calculate: $\nabla_{{\bf r}_i}\cos\theta_{ijk}$, + $\nabla_{{\bf r}_j}\cos\theta_{ijk}$, + $\nabla_{{\bf r}_k}\cos\theta_{ijk}$ + \item $ +F_{Atom\, i}+= d\zeta_{ij}\big( +g(\theta_{ijk})\nabla_{{\bf r}_i}f_C(r_{ik}) + +f_C(r_{ik})dg(\theta_{ijk})\nabla_{{\bf r}_i}\cos\theta_{ijk}\big)$ + \item $ +F_{Atom\, j}+= d\zeta_{ij} +f_C(r_{ik})dg(\theta_{ijk})\nabla_{{\bf r}_j}\cos\theta_{ijk}$ + \item $ +F_{Atom\, k}+= d\zeta_{ij}\big( +g(\theta_{ijk})\nabla_{{\bf r}_k}f_C(r_{ik}) + +f_C(r_{ik})dg(\theta_{ijk})\nabla_{{\bf r}_k}\cos\theta_{ijk}\big)$ + \end{itemize} + \item \} + \end{itemize} + \item \} +\end{itemize} +\} +\caption{Implementation of the force evaluation for Tersoff like bond-order + potentials using pseudocode.} +\end{figure} + diff --git a/posic/thesis/simulation.tex b/posic/thesis/simulation.tex index 2662a54..c28b982 100644 --- a/posic/thesis/simulation.tex +++ b/posic/thesis/simulation.tex @@ -1,6 +1,6 @@ \chapter{Simulation} -\newpage +\section{Cohesive energies} \begin{figure}[!h] \begin{center} @@ -11,3 +11,21 @@ \label{img:ec_vs_lc} \end{center} \end{figure} + + +\section{Silicon self-interstitials} + +\begin{itemize} + \item Tetrahedral: + \begin{itemize} + \item Cohesive energy: $3.405 \, eV$ + \end{itemize} + \item Hexagonal: + \begin{itemize} + \item Cohesive energy: $4.480 \, eV$ + \end{itemize} + \item 110 dumbbell: + \begin{itemize} + \item Cohesive energy: $4.392 \, eV$ + \end{itemize} +\end{itemize} -- 2.20.1