X-Git-Url: https://hackdaworld.org/gitweb/?p=lectures%2Flatex.git;a=blobdiff_plain;f=posic%2Fthesis%2Fd_tersoff.tex;h=b031be2f58ecd016152de51b4e26e136c23450aa;hp=cb2e96beda6da4e4dcb435167a907aa95d599b11;hb=17d5c879c418790a154098e51c524eca183c4d98;hpb=633db250e42a5724c851597ee938cfa93df0665b diff --git a/posic/thesis/d_tersoff.tex b/posic/thesis/d_tersoff.tex index cb2e96b..b031be2 100644 --- a/posic/thesis/d_tersoff.tex +++ b/posic/thesis/d_tersoff.tex @@ -3,7 +3,7 @@ \section{Form of the Tersoff potential and its derivative} -The Tersoff potential is of the form +The Tersoff potential~\cite{tersoff_m} is of the form \begin{eqnarray} E & = & \sum_i E_i = \frac{1}{2} \sum_{i \ne j} V_{ij} \textrm{ ,} \\ V_{ij} & = & f_C(r_{ij}) [ f_R(r_{ij}) + b_{ij} f_A(r_{ij}) ] \textrm{ .} @@ -22,7 +22,7 @@ with \zeta_{ij} & = & \sum_{k \ne i,j} f_C (r_{ik}) \omega_{ik} g(\theta_{ijk}) \textrm{ ,}\\ g(\theta_{ijk}) & = & 1 + c_i^2/d_i^2 - c_i^2/[d_i^2 + (h_i - \cos \theta_{ijk})^2] \textrm{ .} \end{eqnarray} -The cutoff function $f_C$ is taken to be +The cut-off function $f_C$ is taken to be \begin{equation} f_C(r_{ij}) = \left\{ \begin{array}{ll} @@ -32,15 +32,15 @@ f_C(r_{ij}) = \left\{ 0, & r_{ij} > S_{ij} \end{array} \right. \end{equation} -with $\theta_{ijk}$ being the bond angle between bonds $ij$ and $ik$ as shown in Figure \ref{img:tersoff_angle}.\\ +with $\theta_{ijk}$ being the bond angle between bonds $ij$ and $ik$ as shown in Figure~\ref{img:tersoff_angle}.\\ \\ For a three body potential, if $V_{ij}$ is not equal to $V_{ji}$, the derivative is of the form \begin{equation} \nabla_{{\bf r}_i} E = \frac{1}{2} \big[ \sum_j ( \nabla_{{\bf r}_i} V_{ij} + \nabla_{{\bf r}_i} V_{ji} ) + \sum_k \sum_j \nabla_{{\bf r}_i} V_{jk} \big] \textrm{ .} \end{equation} -In the following all the necessary derivatives to calculate $\nabla_{{\bf r}_i} E$ are done. +In the following, all the necessary derivatives to calculate $\nabla_{{\bf r}_i} E$ are written down. - \section{Derivative of $V_{ij}$ with respect to ${\bf r}_i$} + \section[Derivative of $V_{ij}$ with respect to ${r}_i$]{\boldmath Derivative of $V_{ij}$ with respect to ${\bf r}_i$} \begin{eqnarray} \nabla_{{\bf r}_i} V_{ij} & = & \nabla_{{\bf r}_i} f_C(r_{ij}) \big[ f_R(r_{ij}) + b_{ij} f_A(r_{ij}) \big] + \nonumber \\ @@ -67,7 +67,7 @@ In the following all the necessary derivatives to calculate $\nabla_{{\bf r}_i} & = & \Big[ \frac{\cos\theta_{ijk}}{r_{ij}^2} - \frac{1}{r_{ij} r_{ik}} \Big] {\bf r}_{ij} + \Big[ \frac{\cos\theta_{ijk}}{r_{ik}^2} - \frac{1}{r_{ij} r_{ik}} \Big] {\bf r}_{ik} \end{eqnarray} - \section{Derivative of $V_{ji}$ with respect to ${\bf r}_i$} + \section[Derivative of $V_{ji}$ with respect to ${r}_i$]{\boldmath Derivative of $V_{ji}$ with respect to ${\bf r}_i$} \begin{eqnarray} \nabla_{{\bf r}_i} V_{ji} & = & \nabla_{{\bf r}_i} f_C(r_{ji}) \big[ f_R(r_{ji}) + b_{ji} f_A(r_{ji}) \big] + \nonumber \\ @@ -95,7 +95,7 @@ In the following all the necessary derivatives to calculate $\nabla_{{\bf r}_i} & = & \frac{1}{r_{ji} r_{jk}} {\bf r}_{jk} - \frac{\cos\theta_{jik}}{r_{ji}^2} {\bf r}_{ji} \end{eqnarray} - \section{Derivative of $V_{jk}$ with respect to ${\bf r}_i$} + \section[Derivative of $V_{jk}$ with respect to ${r}_i$]{\boldmath Derivative of $V_{jk}$ with respect to ${\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} \\ @@ -109,7 +109,7 @@ In the following all the necessary derivatives to calculate $\nabla_{{\bf r}_i} \section{Implementation issues} -As seen in the last sections the derivatives of $V_{ij}$, $V_{ji}$ and $V_{jk}$ +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}$ @@ -118,7 +118,7 @@ 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 +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$ @@ -128,9 +128,7 @@ 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$} +\subsection[Derivative of $V_{ij}$ with respect to ${r}_j$]{\boldmath Derivative of $V_{ij}$ with respect to ${\bf r}_j$} \begin{eqnarray} \nabla_{{\bf r}_j} V_{ij} & = & @@ -140,24 +138,24 @@ The following symmetry considerations help to obtain the 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}$ +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}$. +The pair contributions are, thus, easily obtained. +The contribution of the bond order term is given by: \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) + \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$} +\subsection[Derivative of $V_{ij}$ with respect to ${r}_k$]{\boldmath 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 @@ -172,14 +170,14 @@ vanish. \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! +Concerning $b_{ij}$, in addition to the angular term, the derivative of the cut-off function has to be considered. \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) + \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} @@ -187,9 +185,8 @@ Now look at $b_{ij}$, not only angle important here! \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: +The implementation of the force evaluation shown in the following is applied to the potential designed by Erhart and Albe~\cite{albe_sic_pot}. +There are slight differences compared 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$. @@ -198,11 +195,14 @@ There are slight differences comparted to the original potential by Tersoff: \item The exponent of the $b$ term is constantly $-\frac{1}{2}$. \end{itemize} These differences actually slightly ease code realization. +The respective flow chart is displayed in Fig.~\ref{fig:flowchart}. \begin{figure} \renewcommand\labelitemi{} \renewcommand\labelitemii{} \renewcommand\labelitemiii{} +{\small +\fbox{\begin{minipage}{\textwidth} LOOP i \{ \begin{itemize} \item // nop (only used in orig. Tersoff) @@ -214,13 +214,13 @@ LOOP i \{ \item LOOP j \{ \begin{itemize} \item $\zeta_{ij}=0$ - \item set $S_{ij}$ (cutoff) + \item set $S_{ij}$ (cut-off) \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 set $ik$-dependent values \item calculate: $r_{ik}$, $r_{ik}^2$ \item IF $r_{ik} > S_{ik}$ THEN CONTINUE \item calculate: $\theta_{ijk}$, $\cos(\theta_{ijk})$, @@ -267,7 +267,9 @@ f_C(r_{ik})dg(\theta_{ijk})\nabla_{{\bf r}_k}\cos\theta_{ijk}\big)$ \item \} \end{itemize} \} -\caption{Implementation of the force evaluation for Tersoff like bond-order - potentials using pseudocode.} +\end{minipage}} +} +\caption{Flow chart of the force evaluation for Tersoff-like bond order potentials using pseudocode.} +\label{fig:flowchart} \end{figure}