Merge pull request #1867 from akohlmey/doc-convert-to-mathjax

Convert more documentation to use embedded math expressions
This commit is contained in:
Axel Kohlmeyer 2020-02-03 11:11:33 -05:00 committed by GitHub
commit f95428ee5e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
109 changed files with 518 additions and 849 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

View File

@ -1,15 +0,0 @@
\documentclass[12pt]{article}
\pagestyle{empty}
\begin{document}
$$
E_{a} = K_2\left(\theta - \theta_0\right)^2 + K_3\left(\theta - \theta_0\right)^3 + K_4\left(\theta - \theta_0\right)^4 + K_5\left(\theta - \theta_0\right)^5 + K_6\left(\theta - \theta_0\right)^6
$$
\end{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

View File

@ -1,14 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
\begin{eqnarray*}
a &=& {\rm lx} \\
b^2 &=& {\rm ly}^2 + {\rm xy}^2 \\
c^2 &=& {\rm lz}^2 + {\rm xz}^2 + {\rm yz}^2 \\
\cos{\alpha} &=& \frac{{\rm xy}*{\rm xz} + {\rm ly}*{\rm yz}}{b*c} \\
\cos{\beta} &=& \frac{\rm xz}{c} \\
\cos{\gamma} &=& \frac{\rm xy}{b} \\
\end{eqnarray*}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

View File

@ -1,14 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
\begin{eqnarray*}
{\rm lx} &=& a \\
{\rm xy} &=& b \cos{\gamma} \\
{\rm xz} &=& c \cos{\beta}\\
{\rm ly}^2 &=& b^2 - {\rm xy}^2 \\
{\rm yz} &=& \frac{b*c \cos{\alpha} - {\rm xy}*{\rm xz}}{\rm ly} \\
{\rm lz}^2 &=& c^2 - {\rm xz}^2 - {\rm yz}^2 \\
\end{eqnarray*}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = K [ 1 + \cos (n \phi - d) ]
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

View File

@ -1,17 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
\begin{eqnarray*}
E & = & E_d + E_{mbt} + E_{ebt} + E_{at} + E_{aat} + E_{bb13} \\
E_d & = & \sum_{n=1}^{3} K_n [ 1 - \cos (n \phi - \phi_n) ] \\
E_{mbt} & = & (r_{jk} - r_2) [ A_1 \cos (\phi) + A_2 \cos (2\phi) + A_3 \cos (3\phi) ] \\
E_{ebt} & = & (r_{ij} - r_1) [ B_1 \cos (\phi) + B_2 \cos (2\phi) + B_3 \cos (3\phi) ] + \\
& & (r_{kl} - r_3) [ C_1 \cos (\phi) + C_2 \cos (2\phi) + C_3 \cos (3\phi) ] \\
E_{at} & = & (\theta_{ijk} - \theta_1) [ D_1 \cos (\phi) + D_2 \cos (2\phi) + D_3 \cos (3\phi) ] + \\
& & (\theta_{jkl} - \theta_2) [ E_1 \cos (\phi) + E_2 \cos (2\phi) + E_3 \cos (3\phi) ] \\
E_{aat} & = & M (\theta_{ijk} - \theta_1) (\theta_{jkl} - \theta_2) \cos (\phi) \\
E_{bb13} & = & N (r_{ij} - r_1) (r_{kl} - r_3)
\end{eqnarray*}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

View File

@ -1,13 +0,0 @@
\documentstyle[12pt]{article}
\begin{document}
$$
E=-U_{min}
\frac{e^{-a U(\theta,\theta_0)}-1}{e^a-1}
\quad\mbox{with}\quad
U(\theta,\theta_0)
=-0.5 \left(1+\cos(\theta-\theta_0) \right)
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = \sum_{i=1,m} K_i [ 1.0 + \cos ( n_i \phi - d_i ) ]
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = K [ 1 + d \cos (n \phi) ]
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

View File

@ -1,10 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = A [1 - \cos(\theta)] + B [1 + \cos(3 \theta)] +
C [1 + \cos(\theta + \frac{\pi}{4})]
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = \sum_{n=1,5} A_n \cos^{n-1}(\phi)
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = \sum_{n=1,n} A_n \cos^{n-1}(\phi)
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

View File

@ -1,10 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = \frac{1}{2} K_1 [1 + \cos(\phi)] + \frac{1}{2} K_2 [1 - \cos(2 \phi)] +
\frac{1}{2} K_3 [1 + \cos(3 \phi)] + \frac{1}{2} K_4 [1 - \cos(4 \phi)]
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = K (\phi - \phi_0)^2
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

View File

@ -1,15 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
\pagestyle{empty}
\begin{eqnarray*}
E(\phi,\theta_1,\theta_2) & = &\sum_{i=1}^N\nolimits\ C_i\ \Phi_i(\phi)\ \Theta_{1i}(\theta_1)\ \Theta_{2i}(\theta_2)\\
\Phi_{i}(\phi) & = & u_i - \mathrm{cos}((\phi - a_i)K_i) \\
\Theta_{1i}(\theta_1) & = & v_i - \mathrm{cos}((\theta_1-b_i)L_i) \\
\Theta_{2i}(\theta_2) & = & w_i - \mathrm{cos}((\theta_2-c_i)M_i)
\end{eqnarray*}
% Check using: http://quicklatex.com/ (24pt font)
\pagestyle{empty}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

View File

@ -1,11 +0,0 @@
\documentclass[12pt]{article}
\pagestyle{empty}
\begin{document}
\begin{eqnarray*}
f(\theta) & = & K \qquad\qquad\qquad\qquad\qquad\qquad \theta < \theta_1 \\
f(\theta) & = & K \left(1-\frac{(\theta - \theta_1)^2}{(\theta_2 - \theta_1)^2}\right) \qquad \theta_1 < \theta < \theta_2
\end{eqnarray*}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

View File

@ -1,13 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
\begin{eqnarray*}
E & = & E_i + E_{aa} \\
E_i & = & K [ \frac{\chi_{ijkl} + \chi_{kjli} + \chi_{ljik}}{3} - \chi_0 ]^2 \\
E_{aa} & = & M_1 (\theta_{ijk} - \theta_1) (\theta_{kjl} - \theta_3) + \\
& & M_2 (\theta_{ijk} - \theta_1) (\theta_{ijl} - \theta_2) + \\
& & M_3 (\theta_{ijl} - \theta_2) (\theta_{kjl} - \theta_3)
\end{eqnarray*}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = \frac{1}{2} K \cos^2{\left(\chi - \chi_0\right)}
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = K [1 + d \cos (n \phi) ]
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = K_2 d^2 + K_4 d^4
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
\thispagestyle{empty}
$$
E = K (d - d_0)^2
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = K [C_0 + C_1 \cos ( \omega) + C_2 \cos( 2 \omega) ]
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = K (\chi - \chi_0)^2
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

View File

@ -1,15 +0,0 @@
\documentclass[12pt]{article}
\pagestyle{empty}
\begin{document}
$$
E = K \left(\theta - \theta_0\right)^2
$$
\end{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

View File

@ -1,12 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
\begin{eqnarray*}
E & = &\frac{1}{6} K \left(\Delta_{ijl} + \Delta_{ijk} + \Delta_{kjl} \right)^6 \\
\Delta_{ijl} & = & \cos{\theta_{ijl} - \cos{\theta_0}} \\
\Delta_{ijk} & = & \cos{\theta_{ijk} - \cos{\theta_0}} \\
\Delta_{kjl} & = & \cos{\theta_{kjl} - \cos{\theta_0}}
\end{eqnarray*}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
\thispagestyle{empty}
$$
E = K (d^2 - d_0^2)^2
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

View File

@ -1,13 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E=\frac{1}{2}K\left( \frac{1}{\sin\omega_0}\right) ^2 \left( \cos\omega - \cos\omega_0\right) ^2 \qquad \omega_0 \neq 0^o
$$
$$
E=K\left( 1-cos\omega\right) \qquad \omega_0 = 0^o
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

View File

@ -1,15 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
\begin{eqnarray*}
E(r_1,r_2, \ldots ,r_N) & = & \sum_{i,j} E_{\it pair}(r_i,r_j) +
\sum_{ij} E_{\it bond}(r_i,r_j) +
\sum_{ijk} E_{\it angle}(r_i,r_j,r_k) + \\
&& \sum_{ijkl} E_{\it dihedral}(r_i,r_j,r_k,r_l) +
\sum_{ijkl} E_{\it improper}(r_i,r_j,r_k,r_l) +
\sum_i E_{\it fix}(r_i)
\end{eqnarray*}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

View File

@ -1,13 +0,0 @@
\documentclass[preview]{standalone}
\usepackage{varwidth}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath, amssymb, graphics, setspace}
\begin{document}
\begin{varwidth}{50in}
\begin{equation}
\frac{d \vec{s}_{i}}{dt} = \lambda\, \vec{s}_{i} \times\left( \vec{\omega}_{i} \times\vec{s}_{i} \right)
\nonumber
\end{equation}
\end{varwidth}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

View File

@ -1,14 +0,0 @@
\documentclass[preview]{standalone}
\usepackage{varwidth}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath, amssymb, graphics, setspace}
\begin{document}
\begin{varwidth}{50in}
\begin{equation}
{\Delta t}_{\rm max} = \frac{2\pi}{\kappa
\left|\vec{\omega}_{\rm max} \right|}
\nonumber
\end{equation}
\end{varwidth}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

View File

@ -1,15 +0,0 @@
\documentclass[preview]{standalone}
\usepackage{varwidth}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath, amssymb, graphics, setspace}
\begin{document}
\begin{varwidth}{50in}
\begin{equation}
\omega_i^{\nu} =
(\nu - 1) \Delta \omega_i
{\rm ~~and~~} \Delta \omega_i = \frac{\omega_i}{Q-1}
, \nonumber
\end{equation}
\end{varwidth}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

View File

@ -1,16 +0,0 @@
\documentclass[preview]{standalone}
\usepackage{varwidth}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath, amssymb, graphics, setspace}
\begin{document}
\begin{varwidth}{50in}
\begin{equation}
\vec{k}_i =
\frac{\vec{m}_i^I \times \vec{m}_i^F}{\left|\vec{m}_i^I
\times \vec{m}_i^F\right|}
%&{\rm ~if~}& \vec{m}_i^I \times \vec{m}_i^F
, \nonumber
\end{equation}
\end{varwidth}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

View File

@ -1,16 +0,0 @@
\documentclass[preview]{standalone}
\usepackage{varwidth}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath, amssymb, graphics, setspace}
\begin{document}
\begin{varwidth}{50in}
\begin{equation}
\vec{m}_i^{\nu} = \vec{m}_i^{I} \cos(\omega_i^{\nu})
+ (\vec{k}_i \times \vec{m}_i^{I}) \sin(\omega_i^{\nu})
+ (1.0-\cos(\omega_i^{\nu})) \vec{k}_i (\vec{k}_i\cdot
\vec{m}_i^{I})
, \nonumber
\end{equation}
\end{varwidth}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

View File

@ -1,15 +0,0 @@
\documentclass[preview]{standalone}
\usepackage{varwidth}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath, amssymb, graphics, setspace}
\begin{document}
\begin{varwidth}{50in}
\begin{equation}
|| \vec{F} ||_{inf}
= {\rm max}\left(|F_1^1|, |F_1^2|, |F_1^3| \cdots,
|F_N^1|, |F_N^2|, |F_N^3|\right)
\nonumber
\end{equation}
\end{varwidth}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

View File

@ -1,15 +0,0 @@
\documentclass[preview]{standalone}
\usepackage{varwidth}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath, amssymb, graphics, setspace}
\begin{document}
\begin{varwidth}{50in}
\begin{equation}
% \left| \left| \vec{F} \right| \right|_2
|| \vec{F} ||_{max}
= {\rm max}\left(||\vec{F}_1||, \cdots, ||\vec{F}_N||\right)
\nonumber
\end{equation}
\end{varwidth}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

View File

@ -1,15 +0,0 @@
\documentclass[preview]{standalone}
\usepackage{varwidth}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath, amssymb, graphics, setspace}
\begin{document}
\begin{varwidth}{50in}
\begin{equation}
% \left| \left| \vec{F} \right| \right|_2
|| \vec{F} ||_{2}
= \sqrt{\vec{F}_1+ \cdots + \vec{F}_N}
\nonumber
\end{equation}
\end{varwidth}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

View File

@ -1,26 +0,0 @@
\documentclass[12pt]{article}
\usepackage{amsmath}
\begin{document}
\begin{eqnarray*}
\mathbf{x}
&=&
\begin{pmatrix}
\mathbf{a} &
\mathbf{b} &
\mathbf{c}
\end{pmatrix}
\cdot
\frac{1}{V}
\begin{pmatrix}
\mathbf{B \times C} \\
\mathbf{C \times A} \\
\mathbf{A \times B}
\end{pmatrix}
\cdot
\mathbf{X}
\end{eqnarray*}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

View File

@ -1,27 +0,0 @@
\documentclass[12pt]{article}
\usepackage{amsmath}
\begin{document}
\begin{eqnarray*}
\begin{pmatrix}
\mathbf{a} &
\mathbf{b} &
\mathbf{c}
\end{pmatrix}
& = &
\begin{pmatrix}
a_x & b_x & c_x \\
0 & b_y & c_y \\
0 & 0 & c_z \\
\end{pmatrix} \\
a_x &=& A \\
b_x &=& \mathbf{B} \cdot \mathbf{\hat{A}} \quad = \quad B \cos{\gamma} \\
b_y &=& |\mathbf{\hat{A}} \times \mathbf{B}| \quad = \quad B \sin{\gamma} \quad = \quad \sqrt{B^2 - {b_x}^2} \\
c_x &=& \mathbf{C} \cdot \mathbf{\hat{A}} \quad = \quad C \cos{\beta} \\
c_y &=& \mathbf{C} \cdot \widehat{(\mathbf{A} \times \mathbf{B})} \times \mathbf{\hat{A}} \quad = \quad \frac{\mathbf{B} \cdot \mathbf{C} - b_x c_x}{b_y} \\
c_z &=& |\mathbf{C} \cdot \widehat{(\mathbf{A} \times \mathbf{B})}|\quad = \quad \sqrt{C^2 - {c_x}^2 - {c_y}^2} \\
\end{eqnarray*}
\end{document}

View File

@ -39,8 +39,20 @@ vectors of a general parallelepiped, where there is no restriction on
**A** x **B** . **C** > 0. The equivalent LAMMPS **a**\ ,\ **b**\ ,\ **c** are a linear
rotation of **A**\ , **B**\ , and **C** and can be computed as follows:
.. image:: Eqs/transform.jpg
:align: center
.. math::
\begin{pmatrix} \mathbf{a} & \mathbf{b} & \mathbf{c} \end{pmatrix} = &
\begin{pmatrix}
a_x & b_x & c_x \\
0 & b_y & c_y \\
0 & 0 & c_z \\
\end{pmatrix} \\
a_x = & A \\
b_x = & \mathbf{B} \cdot \mathbf{\hat{A}} \quad = \quad B \cos{\gamma} \\
b_y = & |\mathbf{\hat{A}} \times \mathbf{B}| \quad = \quad B \sin{\gamma} \quad = \quad \sqrt{B^2 - {b_x}^2} \\
c_x = & \mathbf{C} \cdot \mathbf{\hat{A}} \quad = \quad C \cos{\beta} \\
c_y = & \mathbf{C} \cdot \widehat{(\mathbf{A} \times \mathbf{B})} \times \mathbf{\hat{A}} \quad = \quad \frac{\mathbf{B} \cdot \mathbf{C} - b_x c_x}{b_y} \\
c_z = & |\mathbf{C} \cdot \widehat{(\mathbf{A} \times \mathbf{B})}|\quad = \quad \sqrt{C^2 - {c_x}^2 - {c_y}^2}
where A = \| **A** \| indicates the scalar length of **A**\ . The hat symbol (\^)
indicates the corresponding unit vector. *beta* and *gamma* are angles
@ -60,8 +72,14 @@ fractional coordinates in the
old basis and then converting to distance coordinates in the new basis.
The transformation is given by the following equation:
.. image:: Eqs/rotate.jpg
:align: center
.. math::
\mathbf{x} = & \begin{pmatrix} \mathbf{a} & \mathbf{b} & \mathbf{c} \end{pmatrix} \cdot \frac{1}{V}
\begin{pmatrix}
\mathbf{B \times C} \\
\mathbf{C \times A} \\
\mathbf{A \times B}
\end{pmatrix} \cdot \mathbf{X}
where *V* is the volume of the box, **X** is the original vector quantity and
**x** is the vector in the LAMMPS basis.
@ -142,23 +160,36 @@ For extreme values of tilt, LAMMPS may also lose atoms and generate an
error.
Triclinic crystal structures are often defined using three lattice
constants *a*\ , *b*\ , and *c*\ , and three angles *alpha*\ , *beta* and
*gamma*\ . Note that in this nomenclature, the a, b, and c lattice
constants are the scalar lengths of the edge vectors **a**\ , **b**\ , and **c**
defined above. The relationship between these 6 quantities
(a,b,c,alpha,beta,gamma) and the LAMMPS box sizes (lx,ly,lz) =
constants *a*\ , *b*\ , and *c*\ , and three angles :math:`\alpha`,
:math:`\beta`, and :math:`\gamma`. Note that in this nomenclature,
the a, b, and c lattice constants are the scalar lengths of the edge
vectors **a**\ , **b**\ , and **c** defined above. The relationship
between these 6 quantities (a, b, c, :math:`\alpha`, :math:`\beta`,
:math:`\gamma`) and the LAMMPS box sizes (lx,ly,lz) =
(xhi-xlo,yhi-ylo,zhi-zlo) and tilt factors (xy,xz,yz) is as follows:
.. image:: Eqs/box.jpg
:align: center
.. math::
a = & {\rm lx} \\
b^2 = & {\rm ly}^2 + {\rm xy}^2 \\
c^2 = & {\rm lz}^2 + {\rm xz}^2 + {\rm yz}^2 \\
\cos{\alpha} = & \frac{{\rm xy}*{\rm xz} + {\rm ly}*{\rm yz}}{b*c} \\
\cos{\beta} = & \frac{\rm xz}{c} \\
\cos{\gamma} = & \frac{\rm xy}{b} \\
The inverse relationship can be written as follows:
.. image:: Eqs/box_inverse.jpg
:align: center
.. math::
The values of *a*\ , *b*\ , *c* , *alpha*\ , *beta* , and *gamma* can be printed
out or accessed by computes using the
{\rm lx} = & a \\
{\rm xy} = & b \cos{\gamma} \\
{\rm xz} = & c \cos{\beta}\\
{\rm ly}^2 = & b^2 - {\rm xy}^2 \\
{\rm yz} = & \frac{b*c \cos{\alpha} - {\rm xy}*{\rm xz}}{\rm ly} \\
{\rm lz}^2 = & c^2 - {\rm xz}^2 - {\rm yz}^2 \\
The values of *a*\ , *b*\ , *c* , :math:`\alpha` , :math:`\beta`, and
:math:`\gamma` can be printed out or accessed by computes using the
:doc:`thermo_style custom <thermo_style>` keywords
*cella*\ , *cellb*\ , *cellc*\ , *cellalpha*\ , *cellbeta*\ , *cellgamma*\ ,
respectively.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

View File

@ -30,10 +30,11 @@ a. You can "fetch" the current HTML and PDF files from the LAMMPS web site.
you update your local repository).
b. You can build the HTML and PDF files yourself, by typing "make
html" followed by "make pdf". Note that the PDF make requires the
HTML files already exist. This requires various tools including
html" followed by "make pdf". This requires various tools including
Sphinx, which the build process will attempt to download and install
on your system, if not already available. See more details below.
into a virtual environment in the folder doc/docenv, if not already
available. See more details below. To generate the PDF version of
the manual, additionally PDFLaTeX and several LaTeX packages are required.
----------
@ -56,7 +57,7 @@ the doc dir.
make clean # remove intermediate RST files created by HTML build
make clean-all # remove entire build folder and any cached data
make anchor_check # check for duplicate anchor labels
style_check # check for complete and consistent style lists
make style_check # check for complete and consistent style lists
make spelling # spell-check the manual

View File

@ -92,6 +92,7 @@ examples. If you are uncertain, please ask.
need to test compiling LAMMPS from scratch with -DLAMMPS\_BIGBIG
set in addition to the default -DLAMMPS\_SMALLBIG setting. Your code
will need to work correctly in serial and in parallel using MPI.
* For consistency with the rest of LAMMPS and especially, if you want
your contribution(s) to be added to main LAMMPS code or one of its
standard packages, it needs to be written in a style compatible with
@ -114,12 +115,14 @@ examples. If you are uncertain, please ask.
structures, performs its operations, and is formatted similar to other
LAMMPS source files, including the use of the error class for error
and warning messages.
* If you want your contribution to be added as a user-contributed
feature, and it's a single file (actually a \*.cpp and \*.h file) it can
rapidly be added to the USER-MISC directory. Send us the one-line
entry to add to the USER-MISC/README file in that dir, along with the
2 source files. You can do this multiple times if you wish to
contribute several individual features.
* If you want your contribution to be added as a user-contribution and
it is several related features, it is probably best to make it a user
package directory with a name like USER-FOO. In addition to your new
@ -132,7 +135,7 @@ examples. If you are uncertain, please ask.
and Install.sh files in other USER directories as examples. Send us a
tarball of this USER-FOO directory.
Your new source files need to have the LAMMPS copyright, GPL notice,
* Your new source files need to have the LAMMPS copyright, GPL notice,
and your name and email address at the top, like other
user-contributed LAMMPS source files. They need to create a class
that is inside the LAMMPS namespace. If the file is for one of the
@ -142,35 +145,43 @@ examples. If you are uncertain, please ask.
same stylistic format and syntax as other LAMMPS files, though that
would be nice for developers as well as users who try to read your
code.
* You **must** also create a **documentation** file for each new command or
style you are adding to LAMMPS. For simplicity and convenience, the
documentation of groups of closely related commands or styles may be
combined into a single file. This will be one file for a single-file
feature. For a package, it might be several files. These are simple
text files with a specific markup language, that are then auto-converted
to HTML and PDF. The tools for this conversion are included in the
source distribution, and the translation can be as simple as doing
feature. For a package, it might be several files. These are text
files with a .rst extension using the
`reStructuredText <rst_>`_ markup language, that are then converted to HTML
and PDF using the `Sphinx <sphinx_>`_ documentation
generator tool. Running Sphinx with the included configuration
requires Python 3.x. Configuration
settings and custom extensions for this conversion are included in
the source distribution, and missing python packages will be
transparently downloaded into a virtual environment via pip. Thus,
if your local system is missing required packages, you need access
to the internet. The translation can be as simple as doing
"make html pdf" in the doc folder.
Thus the documentation source files must be in the same format and
style as other \*.txt files in the lammps/doc/src directory for similar
commands and styles; use one or more of them as a starting point.
A description of the markup can also be found in
lammps/doc/utils/txt2html/README.html
As appropriate, the text files can include links to equations
(see doc/Eqs/\*.tex for examples, we auto-create the associated JPG
files), or figures (see doc/JPG for examples), or even additional PDF
files with further details (see doc/PDF for examples). The doc page
should also include literature citations as appropriate; see the
bottom of doc/fix\_nh.txt for examples and the earlier part of the same
file for how to format the cite itself. The "Restrictions" section of
the doc page should indicate that your command is only available if
LAMMPS is built with the appropriate USER-MISC or USER-FOO package.
See other user package doc files for examples of how to do this. The
prerequisite for building the HTML format files are Python 3.x and
virtualenv, the requirement for generating the PDF format manual
is the `htmldoc <http://www.htmldoc.org/>`_ software. Please run at least
"make html" and carefully inspect and proofread the resulting HTML format
doc page before submitting your code.
As appropriate, the text files can include inline mathematical
expression or figures (see doc/JPG for examples). Additional PDF
files with further details (see doc/PDF for examples) may also be
included. The doc page should also include literature citations as
appropriate; see the bottom of doc/fix\_nh.rst for examples and
the earlier part of the same file for how to format the cite itself.
Citation labels must be unique across all .rst files.
The "Restrictions" section of the doc page should indicate if
your command is only available if LAMMPS is built with the
appropriate USER-MISC or USER-FOO package.
See other user package doc files for examples of how to do this.
Please run at least "make html" and carefully inspect and proofread
the resulting HTML format doc page before submitting your code.
Upon submission of a pull request, checks for error free completion
of the HTML and PDF build will be performed and also a spell check,
a check for correct anchors and labels, and a check for completeness
of references all styles in their corresponding tables and lists is
run. In case the spell check reports false positives they can be
added to the file doc/utils/sphinx-config/false_positives.txt
* For a new package (or even a single command) you should include one or
more example scripts demonstrating its use. These should run in no
more than a couple minutes, even on a single processor, and not require
@ -178,6 +189,7 @@ examples. If you are uncertain, please ask.
examples of input scripts other users provided for their packages.
These example inputs are also required for validating memory accesses
and testing for memory leaks with valgrind
* If there is a paper of yours describing your feature (either the
algorithm/science behind the feature itself, or its initial usage, or
its implementation in LAMMPS), you can add the citation to the \*.cpp
@ -198,3 +210,6 @@ Finally, as a general rule-of-thumb, the more clear and
self-explanatory you make your documentation and README files, and the
easier you make it for people to get started, e.g. by providing example
scripts, the more likely it is that users will try out your new feature.
.. _rst: https://docutils.readthedocs.io/en/sphinx-docs/user/rst/quickstart.html
.. _sphinx: https://sphinx-doc.org

View File

@ -42,8 +42,10 @@ Description
The *charmm* and *charmmfsw* dihedral styles use the potential
.. image:: Eqs/dihedral_charmm.jpg
:align: center
.. math::
E = K [ 1 + \cos (n \phi - d) ]
See :ref:`(MacKerell) <dihedral-MacKerell>` for a description of the CHARMM
force field. This dihedral style can also be used for the AMBER force
@ -66,9 +68,9 @@ The following coefficients must be defined for each dihedral type via the
the data file or restart files read by the :doc:`read_data <read_data>`
or :doc:`read_restart <read_restart>` commands:
* K (energy)
* n (integer >= 0)
* d (integer value of degrees)
* :math:`K` (energy)
* :math:`n` (integer >= 0)
* :math:`d` (integer value of degrees)
* weighting factor (1.0, 0.5, or 0.0)
The weighting factor is required to correct for double counting

View File

@ -36,114 +36,124 @@ Description
The *class2* dihedral style uses the potential
.. image:: Eqs/dihedral_class2.jpg
:align: center
.. math::
where Ed is the dihedral term, Embt is a middle-bond-torsion term,
Eebt is an end-bond-torsion term, Eat is an angle-torsion term, Eaat
is an angle-angle-torsion term, and Ebb13 is a bond-bond-13 term.
E = & E_d + E_{mbt} + E_{ebt} + E_{at} + E_{aat} + E_{bb13} \\
E_d = & \sum_{n=1}^{3} K_n [ 1 - \cos (n \phi - \phi_n) ] \\
E_{mbt} = & (r_{jk} - r_2) [ A_1 \cos (\phi) + A_2 \cos (2\phi) + A_3 \cos (3\phi) ] \\
E_{ebt} = & (r_{ij} - r_1) [ B_1 \cos (\phi) + B_2 \cos (2\phi) + B_3 \cos (3\phi) ] + \\
& (r_{kl} - r_3) [ C_1 \cos (\phi) + C_2 \cos (2\phi) + C_3 \cos (3\phi) ] \\
E_{at} = & (\theta_{ijk} - \theta_1) [ D_1 \cos (\phi) + D_2 \cos (2\phi) + D_3 \cos (3\phi) ] + \\
& (\theta_{jkl} - \theta_2) [ E_1 \cos (\phi) + E_2 \cos (2\phi) + E_3 \cos (3\phi) ] \\
E_{aat} = & M (\theta_{ijk} - \theta_1) (\theta_{jkl} - \theta_2) \cos (\phi) \\
E_{bb13} = & N (r_{ij} - r_1) (r_{kl} - r_3)
Theta1 and theta2 are equilibrium angles and r1 r2 r3 are equilibrium
bond lengths.
where :math:`E_d` is the dihedral term, :math:`E_{mbt}` is a middle-bond-torsion term,
:math:`E_{ebt}` is an end-bond-torsion term, :math:`E_{at}` is an angle-torsion term, :math:`E_{aat}`
is an angle-angle-torsion term, and :math:`E_{bb13}` is a bond-bond-13 term.
:math:`\theta_1` and :math:`\theta_2` are equilibrium angles and :math:`r_1`, :math:`r_2`, and
:math:`r_3` are equilibrium bond lengths.
See :ref:`(Sun) <dihedral-Sun>` for a description of the COMPASS class2 force field.
Coefficients for the Ed, Embt, Eebt, Eat, Eaat, and Ebb13 formulas
must be defined for each dihedral type via the
:doc:`dihedral_coeff <dihedral_coeff>` command as in the example above,
or in the data file or restart files read by the
:doc:`read_data <read_data>` or :doc:`read_restart <read_restart>`
commands.
Coefficients for the :math:`E_d`, :math:`E_{mbt}`, :math:`E_{ebt}`,
:math:`E_{at}`, :math:`E_{aat}`, and :math:`E_{bb13}` formulas must be
defined for each dihedral type via the :doc:`dihedral_coeff <dihedral_coeff>`
command as in the example above, or in the data file
or restart files read by the :doc:`read_data <read_data>` or
:doc:`read_restart <read_restart>` commands.
These are the 6 coefficients for the Ed formula:
These are the 6 coefficients for the :math:`E_d` formula:
* K1 (energy)
* phi1 (degrees)
* K2 (energy)
* phi2 (degrees)
* K3 (energy)
* phi3 (degrees)
* :math:`K_1` (energy)
* :math:`\phi_1` (degrees)
* :math:`K_2` (energy)
* :math:`\phi_2` (degrees)
* :math:`K_3` (energy)
* :math:`phi_3` (degrees)
For the Embt formula, each line in a
For the :math:`E_{mbt}` formula, each line in a
:doc:`dihedral_coeff <dihedral_coeff>` command in the input script lists
5 coefficients, the first of which is "mbt" to indicate they are
5 coefficients, the first of which is *mbt* to indicate they are
MiddleBondTorsion coefficients. In a data file, these coefficients
should be listed under a "MiddleBondTorsion Coeffs" heading and you
must leave out the "mbt", i.e. only list 4 coefficients after the
should be listed under a *MiddleBondTorsion Coeffs* heading and you
must leave out the *mbt*, i.e. only list 4 coefficients after the
dihedral type.
* mbt
* A1 (energy/distance)
* A2 (energy/distance)
* A3 (energy/distance)
* r2 (distance)
* *mbt*
* :math:`A_1` (energy/distance)
* :math:`A_2` (energy/distance)
* :math:`A_3` (energy/distance)
* :math:`r_2` (distance)
For the Eebt formula, each line in a
For the :math:`E_{ebt}` formula, each line in a
:doc:`dihedral_coeff <dihedral_coeff>` command in the input script lists
9 coefficients, the first of which is "ebt" to indicate they are
9 coefficients, the first of which is *ebt* to indicate they are
EndBondTorsion coefficients. In a data file, these coefficients
should be listed under a "EndBondTorsion Coeffs" heading and you must
leave out the "ebt", i.e. only list 8 coefficients after the dihedral
should be listed under a *EndBondTorsion Coeffs* heading and you must
leave out the *ebt*, i.e. only list 8 coefficients after the dihedral
type.
* ebt
* B1 (energy/distance)
* B2 (energy/distance)
* B3 (energy/distance)
* C1 (energy/distance)
* C2 (energy/distance)
* C3 (energy/distance)
* r1 (distance)
* r3 (distance)
* *ebt*
* :math:`B_1` (energy/distance)
* :math:`B_2` (energy/distance)
* :math:`B_3` (energy/distance)
* :math:`C_1` (energy/distance)
* :math:`C_2` (energy/distance)
* :math:`C_3` (energy/distance)
* :math:`r_1` (distance)
* :math:`r_3` (distance)
For the Eat formula, each line in a
For the :math:`E_{at}` formula, each line in a
:doc:`dihedral_coeff <dihedral_coeff>` command in the input script lists
9 coefficients, the first of which is "at" to indicate they are
9 coefficients, the first of which is *at* to indicate they are
AngleTorsion coefficients. In a data file, these coefficients should
be listed under a "AngleTorsion Coeffs" heading and you must leave out
the "at", i.e. only list 8 coefficients after the dihedral type.
be listed under a *AngleTorsion Coeffs* heading and you must leave out
the *at*, i.e. only list 8 coefficients after the dihedral type.
* at
* D1 (energy/radian)
* D2 (energy/radian)
* D3 (energy/radian)
* E1 (energy/radian)
* E2 (energy/radian)
* E3 (energy/radian)
* theta1 (degrees)
* theta2 (degrees)
* *at*
* :math:`D_1` (energy/radian)
* :math:`D_2` (energy/radian)
* :math:`D_3` (energy/radian)
* :math:`E_1` (energy/radian)
* :math:`E_2` (energy/radian)
* :math:`E_3` (energy/radian)
* :math:`\theta_1` (degrees)
* :math:`\theta_2` (degrees)
Theta1 and theta2 are specified in degrees, but LAMMPS converts them
to radians internally; hence the units of D and E are in
:math:`\theta_1` and :math:`\theta_2` are specified in degrees, but LAMMPS converts
them to radians internally; hence the units of :math:`D` and :math:`E` are in
energy/radian.
For the Eaat formula, each line in a
For the :math:`E_{aat}` formula, each line in a
:doc:`dihedral_coeff <dihedral_coeff>` command in the input script lists
4 coefficients, the first of which is "aat" to indicate they are
4 coefficients, the first of which is *aat* to indicate they are
AngleAngleTorsion coefficients. In a data file, these coefficients
should be listed under a "AngleAngleTorsion Coeffs" heading and you
must leave out the "aat", i.e. only list 3 coefficients after the
should be listed under a *AngleAngleTorsion Coeffs* heading and you
must leave out the *aat*, i.e. only list 3 coefficients after the
dihedral type.
* aat
* M (energy/radian\^2)
* theta1 (degrees)
* theta2 (degrees)
* *aat*
* :math:`M` (energy/radian\^2)
* :math:`\theta_1` (degrees)
* :math:`\theta_2` (degrees)
Theta1 and theta2 are specified in degrees, but LAMMPS converts them
to radians internally; hence the units of M are in energy/radian\^2.
:math:`\theta_1` and :math:`\theta_2` are specified in degrees, but LAMMPS converts
them to radians internally; hence the units of M are in energy/radian\^2.
For the Ebb13 formula, each line in a
For the :math:`E_{bb13}` formula, each line in a
:doc:`dihedral_coeff <dihedral_coeff>` command in the input script lists
4 coefficients, the first of which is "bb13" to indicate they are
4 coefficients, the first of which is *bb13* to indicate they are
BondBond13 coefficients. In a data file, these coefficients should be
listed under a "BondBond13 Coeffs" heading and you must leave out the
"bb13", i.e. only list 3 coefficients after the dihedral type.
listed under a *BondBond13 Coeffs* heading and you must leave out the
*bb13*, i.e. only list 3 coefficients after the dihedral type.
* bb13
* N (energy/distance\^2)
* r1 (distance)
* r3 (distance)
* *bb13*
* :math:`N` (energy/distance\^2)
* :math:`r_1` (distance)
* :math:`r_3` (distance)
----------

View File

@ -28,21 +28,24 @@ Description
The *cosine/shift/exp* dihedral style uses the potential
.. image:: Eqs/dihedral_cosine_shift_exp.jpg
:align: center
.. math::
where Umin, theta, and a are defined for each dihedral type.
E = -U_{min}\frac{e^{-a U(\theta,\theta_0)}-1}{e^a-1} \quad\mbox{with}\quad U(\theta,\theta_0)=-0.5 \left(1+\cos(\theta-\theta_0) \right)
The potential is bounded between [-Umin:0] and the minimum is located
at the angle theta0. The a parameter can be both positive or negative
where :math:`U_{min}`, :math:`\theta`, and :math:`a` are defined for
each dihedral type.
The potential is bounded between :math:`\left[-U_{min}:0\right]` and the minimum is located
at the angle :math:`\theta_0`. The a parameter can be both positive or negative
and is used to control the spring constant at the equilibrium.
The spring constant is given by k=a exp(a) Umin/ [2 (Exp(a)-1)].
For a>3 k/Umin = a/2 to better than 5% relative error. For negative
The spring constant is given by :math:`k=a e^a \frac{U_{min}}{2 \left(e^a-1\right)}`.
For :math:`a>3` and :math:`\frac{k}{U_{min}} = \frac{a}{2}` to better than 5% relative error. For negative
values of the a parameter, the spring constant is essentially zero,
and anharmonic terms takes over. The potential is furthermore well
behaved in the limit a->0, where it has been implemented to linear
order in a for a < 0.001.
behaved in the limit :math:`a \rightarrow 0`, where it has been implemented to linear
order in :math:`a` for :math:`a < 0.001`.
The following coefficients must be defined for each dihedral type via
the :doc:`dihedral_coeff <dihedral_coeff>` command as in the example
@ -50,9 +53,9 @@ above, or in the data file or restart files read by the
:doc:`read_data <read_data>` or :doc:`read_restart <read_restart>`
commands:
* umin (energy)
* theta (angle)
* A (real number)
* :math:`U_{min}` (energy)
* :math:`\theta` (angle)
* :math:`a` (real number)
----------

View File

@ -31,27 +31,27 @@ Description
The *fourier* dihedral style uses the potential:
.. image:: Eqs/dihedral_fourier.jpg
:align: center
.. math::
E = \sum_{i=1,m} K_i [ 1.0 + \cos ( n_i \phi - d_i ) ]
The following coefficients must be defined for each dihedral type via the
:doc:`dihedral_coeff <dihedral_coeff>` command as in the example above, or in
the data file or restart files read by the :doc:`read_data <read_data>`
or :doc:`read_restart <read_restart>` commands:
* m (integer >=1)
* K1 (energy)
* n1 (integer >= 0)
* d1 (degrees)
* :math:`m` (integer >=1)
* :math:`K_1` (energy)
* :math:`n_1` (integer >= 0)
* :math:`d_1` (degrees)
* [...]
* Km (energy)
* nm (integer >= 0)
* dm (degrees)
* :math:`K_m` (energy)
* :math:`n_m` (integer >= 0)
* :math:`d_m` (degrees)
----------
Styles with a *gpu*\ , *intel*\ , *kk*\ , *omp*\ , or *opt* suffix are
functionally the same as the corresponding style without the suffix.
They have been optimized to run faster, depending on your available

View File

@ -34,17 +34,19 @@ Description
The *harmonic* dihedral style uses the potential
.. image:: Eqs/dihedral_harmonic.jpg
:align: center
.. math::
E = K [ 1 + d \cos (n \phi) ]
The following coefficients must be defined for each dihedral type via the
:doc:`dihedral_coeff <dihedral_coeff>` command as in the example above, or in
the data file or restart files read by the :doc:`read_data <read_data>`
or :doc:`read_restart <read_restart>` commands:
* K (energy)
* d (+1 or -1)
* n (integer >= 0)
* :math:`K` (energy)
* :math:`d` (+1 or -1)
* :math:`n` (integer >= 0)
.. note::
@ -55,9 +57,9 @@ or :doc:`read_restart <read_restart>` commands:
* The LAMMPS convention is that the trans position = 180 degrees, while
in some force fields trans = 0 degrees.
* Some force fields reverse the sign convention on *d*\ .
* Some force fields let *n* be positive or negative which corresponds to
*d* = 1 or -1 for the harmonic style.
* Some force fields reverse the sign convention on :math:`d`.
* Some force fields let :math:`n` be positive or negative which corresponds to
:math:`d = 1` or :math:`d = -1` for the harmonic style.

View File

@ -28,15 +28,19 @@ Description
The *helix* dihedral style uses the potential
.. image:: Eqs/dihedral_helix.jpg
:align: center
.. math::
E = A [1 - \cos(\theta)] + B [1 + \cos(3 \theta)] +
C [1 + \cos(\theta + \frac{\pi}{4})]
This coarse-grain dihedral potential is described in :ref:`(Guo) <Guo>`.
For dihedral angles in the helical region, the energy function is
represented by a standard potential consisting of three minima, one
corresponding to the trans (t) state and the other to gauche states
(g+ and g-). The paper describes how the A,B,C parameters are chosen
so as to balance secondary (largely driven by local interactions) and
(g+ and g-). The paper describes how the :math:`A`, :math:`B` and,
:math:`C` parameters are chosen so as to balance secondary (largely
driven by local interactions) and
tertiary structure (driven by long-range interactions).
The following coefficients must be defined for each dihedral type via the
@ -44,9 +48,9 @@ The following coefficients must be defined for each dihedral type via the
the data file or restart files read by the :doc:`read_data <read_data>`
or :doc:`read_restart <read_restart>` commands:
* A (energy)
* B (energy)
* C (energy)
* :math:`A` (energy)
* :math:`B` (energy)
* :math:`C` (energy)
----------

View File

@ -28,19 +28,21 @@ Description
The *multi/harmonic* dihedral style uses the potential
.. image:: Eqs/dihedral_multi_harmonic.jpg
:align: center
.. math::
E = \sum_{n=1,5} A_n \cos^{n-1}(\phi)
The following coefficients must be defined for each dihedral type via the
:doc:`dihedral_coeff <dihedral_coeff>` command as in the example above, or in
the data file or restart files read by the :doc:`read_data <read_data>`
or :doc:`read_restart <read_restart>` commands:
* A1 (energy)
* A2 (energy)
* A3 (energy)
* A4 (energy)
* A5 (energy)
* :math:`A_1` (energy)
* :math:`A_2` (energy)
* :math:`A_3` (energy)
* :math:`A_4` (energy)
* :math:`A_5` (energy)
----------

View File

@ -28,19 +28,21 @@ Description
The *nharmonic* dihedral style uses the potential:
.. image:: Eqs/dihedral_nharmonic.jpg
:align: center
.. math::
E = \sum_{n=1,n} A_n \cos^{n-1}(\phi)
The following coefficients must be defined for each dihedral type via the
:doc:`dihedral_coeff <dihedral_coeff>` command as in the example above, or in
the data file or restart files read by the :doc:`read_data <read_data>`
or :doc:`read_restart <read_restart>` commands:
* n (integer >=1)
* A1 (energy)
* A2 (energy)
* :math:`n` (integer >=1)
* :math:`A_1` (energy)
* :math:`A_2` (energy)
* ...
* An (energy)
* :math:`A_n` (energy)
----------

View File

@ -36,8 +36,11 @@ Description
The *opls* dihedral style uses the potential
.. image:: Eqs/dihedral_opls.jpg
:align: center
.. math::
E = & \frac{1}{2} K_1 [1 + \cos(\phi)] + \frac{1}{2} K_2 [1 - \cos(2 \phi)] + \\
& \frac{1}{2} K_3 [1 + \cos(3 \phi)] + \frac{1}{2} K_4 [1 - \cos(4 \phi)]
Note that the usual 1/2 factor is not included in the K values.
@ -49,10 +52,10 @@ The following coefficients must be defined for each dihedral type via the
the data file or restart files read by the :doc:`read_data <read_data>`
or :doc:`read_restart <read_restart>` commands:
* K1 (energy)
* K2 (energy)
* K3 (energy)
* K4 (energy)
* :math:`K_1` (energy)
* :math:`K_2` (energy)
* :math:`K_3` (energy)
* :math:`K_4` (energy)
----------

View File

@ -28,8 +28,10 @@ Description
The *quadratic* dihedral style uses the potential:
.. image:: Eqs/dihedral_quadratic.jpg
:align: center
.. math::
E = K (\phi - \phi_0)^2
This dihedral potential can be used to keep a dihedral in a predefined
value (cis=zero, right-hand convention is used).
@ -40,8 +42,8 @@ above, or in the data file or restart files read by the
:doc:`read_data <read_data>` or :doc:`read_restart <read_restart>`
commands:
* K (energy/radian\^2)
* phi0 (degrees)
* :math:`K` (energy/radian\^2)
* :math:`\phi_0` (degrees)
----------

View File

@ -30,11 +30,17 @@ The *spherical* dihedral style uses the potential:
.. image:: JPG/dihedral_spherical_angles.jpg
:align: center
.. image:: Eqs/dihedral_spherical.jpg
:align: center
.. math::
E(\phi,\theta_1,\theta_2) & = \sum_{i=1}^N\nolimits\ C_i\ \Phi_i(\phi)\ \Theta_{1i}(\theta_1)\ \Theta_{2i}(\theta_2) \\
\Phi_{i}(\phi) & = u_i - \mathrm{cos}((\phi - a_i)K_i) \\
\Theta_{1i}(\theta_1) & = v_i - \mathrm{cos}((\theta_1-b_i)L_i) \\
\Theta_{2i}(\theta_2) & = w_i - \mathrm{cos}((\theta_2-c_i)M_i)
For this dihedral style, the energy can be any function that combines the
4-body dihedral-angle (phi) and the two 3-body bond-angles (theta1, theta2).
4-body dihedral-angle (:math:`\phi`) and the two 3-body bond-angles
(:math:`\theta_1`, :math:`\theta_2`).
For this reason, there is usually no need to define 3-body "angle" forces
separately for the atoms participating in these interactions.
It is probably more efficient to incorporate 3-body angle forces into
@ -44,8 +50,9 @@ parameters can prevent singularities that occur with traditional
force-fields whenever theta1 or theta2 approach 0 or 180 degrees.
The last example above corresponds to an interaction with a single energy
minima located near phi=93.9, theta1=74.4, theta2=48.1 degrees, and it remains
numerically stable at all angles (phi, theta1, theta2). In this example,
minima located near :math:`\phi=93.9`, :math:`\theta_1=74.4`,
:math:`\theta_2=48.1` degrees, and it remains numerically stable at all
angles (:math:`\phi`, :math:`\theta_1`, :math:`\theta_2`). In this example,
the coefficients 49.1, and 25.2 can be physically interpreted as the
harmonic spring constants for theta1 and theta2 around their minima.
The coefficient 69.3 is the harmonic spring constant for phi after
@ -56,28 +63,28 @@ The following coefficients must be defined for each dihedral type via the
the Dihedral Coeffs section of a data file read by the
:doc:`read_data <read_data>` command:
* n (integer >= 1)
* C1 (energy)
* K1 (typically an integer)
* a1 (degrees)
* u1 (typically 0.0 or 1.0)
* L1 (typically an integer)
* b1 (degrees, typically 0.0 or 90.0)
* v1 (typically 0.0 or 1.0)
* M1 (typically an integer)
* c1 (degrees, typically 0.0 or 90.0)
* w1 (typically 0.0 or 1.0)
* :math:`n` (integer >= 1)
* :math:`C_1` (energy)
* :math:`K_1` (typically an integer)
* :math:`a_1` (degrees)
* :math:`u_1` (typically 0.0 or 1.0)
* :math:`L_1` (typically an integer)
* :math:`b_1` (degrees, typically 0.0 or 90.0)
* :math:`v_1` (typically 0.0 or 1.0)
* :math:`M_1` (typically an integer)
* :math:`c_1` (degrees, typically 0.0 or 90.0)
* :math:`w_1` (typically 0.0 or 1.0)
* [...]
* Cn (energy)
* Kn (typically an integer)
* an (degrees)
* un (typically 0.0 or 1.0)
* Ln (typically an integer)
* bn (degrees, typically 0.0 or 90.0)
* vn (typically 0.0 or 1.0)
* Mn (typically an integer)
* cn (degrees, typically 0.0 or 90.0)
* wn (typically 0.0 or 1.0)
* :math:`C_n` (energy)
* :math:`K_n` (typically an integer)
* :math:`a_n` (degrees)
* :math:`u_n` (typically 0.0 or 1.0)
* :math:`L_n` (typically an integer)
* :math:`b_n` (degrees, typically 0.0 or 90.0)
* :math:`v_n` (typically 0.0 or 1.0)
* :math:`M_n` (typically an integer)
* :math:`c_n` (degrees, typically 0.0 or 90.0)
* :math:`w_n` (typically 0.0 or 1.0)
----------

View File

@ -66,18 +66,21 @@ above.
The cutoff dihedral style uses a tabulated dihedral interaction with a
cutoff function:
.. image:: Eqs/dihedral_table_cut.jpg
:align: center
.. math::
f(\theta) & = K \qquad\qquad\qquad\qquad\qquad\qquad \theta < \theta_1 \\
f(\theta) & = K \left(1-\frac{(\theta - \theta_1)^2}{(\theta_2 - \theta_1)^2}\right) \qquad \theta_1 < \theta < \theta_2
The cutoff specifies an prefactor to the cutoff function. While this value
would ordinarily equal 1 there may be situations where the value should change.
The cutoff angle1 specifies the angle (in degrees) below which the dihedral
The cutoff :math:`\theta_1` specifies the angle (in degrees) below which the dihedral
interaction is unmodified, i.e. the cutoff function is 1.
The cutoff function is applied between angle1 and angle2, which is the angle at
which the cutoff function drops to zero. The value of zero effectively "turns
off" the dihedral interaction.
The cutoff function is applied between :math:`\theta_1` and :math:`\theta_2`, which is
the angle at which the cutoff function drops to zero. The value of zero effectively
"turns off" the dihedral interaction.
The filename specifies a file containing tabulated energy and
derivative values. The keyword specifies a section of the file. The

View File

@ -40,42 +40,46 @@ Description
Calculate the dynamical matrix by finite difference of the selected group,
.. image:: JPG/dynamical_matrix_dynmat.jpg
:align: center
.. math::
where D is the dynamical matrix and Phi is the force constant matrix defined by
D = \frac{\Phi_{ij}^{\alpha\beta}}{\sqrt{M_i M_j}}
.. image:: JPG/dynamical_matrix_force_constant.jpg
:align: center
where D is the dynamical matrix and :math:`\Phi` is the force constant
matrix defined by
The output for the dynamical matrix is printed three elements at a time. The
three elements are the three beta elements for a respective i/alpha/j combination.
Each line is printed in order of j increasing first, alpha second, and i last.
.. math::
If the style eskm is selected, the dynamical matrix will be in units of inverse squared
femtoseconds. These units will then conveniently leave frequencies in THz, where
frequencies, represented as omega, can be calculated from
\Phi_{ij}^{\alpha\beta} = \frac{\partial^2 U}{\partial x_{i,\alpha} \partial x_{j,\beta}}
:c, image(Eqs/dynamical\_matrix\_phonons.jpg)
The output for the dynamical matrix is printed three elements at a time.
The three elements are the three :math:`\beta` elements for a respective
i/:math:`\alpha`/j combination. Each line is printed in order of j
increasing first, :math:`\alpha` second, and i last.
If the style eskm is selected, the dynamical matrix will be in units of
inverse squared femtoseconds. These units will then conveniently leave
frequencies in THz.
Restrictions
""""""""""""
The command collects an array of nine times the number of atoms in a group
on every single MPI rank, so the memory requirements can be very significant
for large systems.
This command is part of the USER-PHONON package. It is only enabled if
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
LAMMPS was built with that package.
See the :doc:`Build package <Build_package>` doc page for more info.
Related commands
""""""""""""""""
:doc:`fix phonon <fix_phonon>`
:doc:`compute hma <compute_hma>` uses an analytic formulation of the hessian
provided by Pair's single\_hessian.
:doc:`compute hma <compute_hma>` uses an analytic formulation of the
Hessian provided by a pair_style's Pair::single\_hessian() function,
if implemented.
Default
"""""""

View File

@ -32,24 +32,33 @@ Description
The *class2* improper style uses the potential
.. image:: Eqs/improper_class2.jpg
:align: center
.. math::
where Ei is the improper term and Eaa is an angle-angle term. The 3 X
terms in Ei are an average over 3 out-of-plane angles.
E = & E_i + E_{aa} \\
E_i = & K [ \frac{\chi_{ijkl} + \chi_{kjli} + \chi_{ljik}}{3} - \chi_0 ]^2 \\
E_{aa} = & M_1 (\theta_{ijk} - \theta_1) (\theta_{kjl} - \theta_3) + \\
& M_2 (\theta_{ijk} - \theta_1) (\theta_{ijl} - \theta_2) + \\
& M_3 (\theta_{ijl} - \theta_2) (\theta_{kjl} - \theta_3)
where :math:`E_i` is the improper term and :math:`E_{aa}` is an
angle-angle term. The 3 :math:`\chi` terms in :math:`E_i` are an
average over 3 out-of-plane angles.
The 4 atoms in an improper quadruplet (listed in the data file read by
the :doc:`read_data <read_data>` command) are ordered I,J,K,L. X\_IJKL
refers to the angle between the plane of I,J,K and the plane of J,K,L,
and the bond JK lies in both planes. Similarly for X\_KJLI and X\_LJIK.
the :doc:`read_data <read_data>` command) are ordered I,J,K,L.
:math:`\chi_{ijkl}` refers to the angle between the plane of I,J,K and
the plane of J,K,L, and the bond JK lies in both planes. Similarly for
:math:`\chi_{kjli}` and :math:`\chi_{ljik}`.
Note that atom J appears in the common bonds (JI, JK, JL) of all 3 X
terms. Thus J (the 2nd atom in the quadruplet) is the atom of
symmetry in the 3 X angles.
symmetry in the 3 :math:`\chi` angles.
The subscripts on the various theta's refer to different combinations
of 3 atoms (I,J,K,L) used to form a particular angle. E.g. Theta\_IJL
is the angle formed by atoms I,J,L with J in the middle. Theta1,
theta2, theta3 are the equilibrium positions of those angles. Again,
The subscripts on the various :math:`\theta`\ s refer to different
combinations of 3 atoms (I,J,K,L) used to form a particular angle.
E.g. :math:`\theta_{ijl}` is the angle formed by atoms I,J,L with J
in the middle. :math:`\theta_1`, :math:`\theta_2`, :math:`\theta_3`
are the equilibrium positions of those angles. Again,
atom J (the 2nd atom in the quadruplet) is the atom of symmetry in the
theta angles, since it is always the center atom.
@ -59,34 +68,35 @@ this is not required.
See :ref:`(Sun) <improper-Sun>` for a description of the COMPASS class2 force field.
Coefficients for the Ei and Eaa formulas must be defined for each
Coefficients for the :math:`E_i` and :math:`E_{aa}` formulas must be
defined for each
improper type via the :doc:`improper_coeff <improper_coeff>` command as
in the example above, or in the data file or restart files read by the
:doc:`read_data <read_data>` or :doc:`read_restart <read_restart>`
commands.
These are the 2 coefficients for the Ei formula:
These are the 2 coefficients for the :math:`E_i` formula:
* K (energy/radian\^2)
* X0 (degrees)
* :math:`K` (energy/radian\^2)
* :math:`\chi_0` (degrees)
X0 is specified in degrees, but LAMMPS converts it to radians
:math:`\chi_0` is specified in degrees, but LAMMPS converts it to radians
internally; hence the units of K are in energy/radian\^2.
For the Eaa formula, each line in a
For the :math:`E_{aa}` formula, each line in a
:doc:`improper_coeff <improper_coeff>` command in the input script lists
7 coefficients, the first of which is "aa" to indicate they are
7 coefficients, the first of which is *aa* to indicate they are
AngleAngle coefficients. In a data file, these coefficients should be
listed under a "AngleAngle Coeffs" heading and you must leave out the
"aa", i.e. only list 6 coefficients after the improper type.
listed under a *AngleAngle Coeffs* heading and you must leave out the
*aa*, i.e. only list 6 coefficients after the improper type.
* aa
* M1 (energy/distance)
* M2 (energy/distance)
* M3 (energy/distance)
* theta1 (degrees)
* theta2 (degrees)
* theta3 (degrees)
* *aa*
* :math:`M_1` (energy/distance)
* :math:`M_2` (energy/distance)
* :math:`M_3` (energy/distance)
* :math:`\theta_1` (degrees)
* :math:`\theta_2` (degrees)
* :math:`\theta_3` (degrees)
The theta values are specified in degrees, but LAMMPS converts them to
radians internally; hence the units of M are in energy/radian\^2.

View File

@ -28,18 +28,20 @@ Description
The *cossq* improper style uses the potential
.. image:: Eqs/improper_cossq.jpg
:align: center
.. math::
where x is the improper angle, x0 is its equilibrium value, and K is a
prefactor.
E = \frac{1}{2} K \cos^2{\left(\chi - \chi_0\right)}
where :math:`\chi` is the improper angle, :math:`\chi_0` is its
equilibrium value, and :math:`K` is a prefactor.
If the 4 atoms in an improper quadruplet (listed in the data file read
by the :doc:`read_data <read_data>` command) are ordered I,J,K,L then X
is the angle between the plane of I,J,K and the plane of J,K,L.
by the :doc:`read_data <read_data>` command) are ordered I,J,K,L then
:math:`\chi` is the angle between the plane of I,J,K and the plane of J,K,L.
Alternatively, you can think of atoms J,K,L as being in a plane, and
atom I above the plane, and X as a measure of how far out-of-plane I
is with respect to the other 3 atoms.
atom I above the plane, and :math:`\chi` as a measure of how far
out-of-plane I is with respect to the other 3 atoms.
Note that defining 4 atoms to interact in this way, does not mean that
bonds necessarily exist between I-J, J-K, or K-L, as they would in a
@ -52,8 +54,8 @@ above, or in the data file or restart files read by the
:doc:`read_data <read_data>` or :doc:`read_restart <read_restart>`
commands:
* K (energy)
* X0 (degrees)
* :math:`K` (energy)
* :math:`\chi_0` (degrees)
----------

View File

@ -31,8 +31,10 @@ Description
The *cvff* improper style uses the potential
.. image:: Eqs/improper_cvff.jpg
:align: center
.. math::
E = K [1 + d \cos (n \phi) ]
where phi is the improper dihedral angle.
@ -54,9 +56,9 @@ above, or in the data file or restart files read by the
:doc:`read_data <read_data>` or :doc:`read_restart <read_restart>`
commands:
* K (energy)
* d (+1 or -1)
* n (0,1,2,3,4,6)
* :math:`K` (energy)
* :math:`d` (+1 or -1)
* :math:`n` (0,1,2,3,4,6)
----------

View File

@ -22,8 +22,10 @@ Description
The *distance* improper style uses the potential
.. image:: Eqs/improper_dist-1.jpg
:align: center
.. math::
E = K_2 d^2 + K_4 d^4
where d is the distance between the central atom and the plane formed
by the other three atoms. If the 4 atoms in an improper quadruplet
@ -43,8 +45,8 @@ The following coefficients must be defined for each improper type via
the improper\_coeff command as in the example above, or in the data
file or restart files read by the read\_data or read\_restart commands:
* K\_2 (energy/distance\^2)
* K\_4 (energy/distance\^4)
* :math:`K_2` (energy/distance\^2)
* :math:`K_4` (energy/distance\^4)
----------

View File

@ -22,23 +22,25 @@ Description
The *distharm* improper style uses the potential
.. image:: Eqs/improper_distharm.jpg
:align: center
.. math::
E = K (d - d_0)^2
where d is the oriented distance between the central atom and the plane formed
by the other three atoms. If the 4 atoms in an improper quadruplet
(listed in the data file read by the :doc:`read_data <read_data>`
command) are ordered I,J,K,L then the L-atom is assumed to be the
central atom. Note that this is different from the convention used
in the improper\_style distance. The distance d is oriented and can take
on negative values. This may lead to unwanted behavior if d0 is not equal to zero.
in the improper\_style distance. The distance :math:`d` is oriented and can take
on negative values. This may lead to unwanted behavior if :math:`d_0` is not equal to zero.
The following coefficients must be defined for each improper type via
the improper\_coeff command as in the example above, or in the data
file or restart files read by the read\_data or read\_restart commands:
* K (energy/distance\^2)
* d0 (distance)
* :math:`K` (energy/distance\^2)
* :math:`d_0` (distance)
----------

View File

@ -28,8 +28,10 @@ Description
The *fourier* improper style uses the following potential:
.. image:: Eqs/improper_fourier.jpg
:align: center
.. math::
E = K [C_0 + C_1 \cos ( \omega) + C_2 \cos( 2 \omega) ]
where K is the force constant, C0, C1, C2 are dimensionless coefficients,
and omega is the angle between the IL axis and the IJK plane:
@ -45,10 +47,10 @@ above, or in the data file or restart files read by the
:doc:`read_data <read_data>` or :doc:`read_restart <read_restart>`
commands:
* K (energy)
* C0 (unitless)
* C1 (unitless)
* C2 (unitless)
* :math:`K` (energy)
* :math:`C_0` (unitless)
* :math:`C_1` (unitless)
* :math:`C_2` (unitless)
* all (0 or 1, optional)

View File

@ -34,18 +34,22 @@ Description
The *harmonic* improper style uses the potential
.. image:: Eqs/improper_harmonic.jpg
:align: center
.. math::
where X is the improper angle, X0 is its equilibrium value, and K is a
prefactor. Note that the usual 1/2 factor is included in K.
E = K (\chi - \chi_0)^2
where :math:`\chi` is the improper angle, :math:`\chi_0` is its equilibrium
value, and :math:`K` is a prefactor. Note that the usual 1/2 factor is
included in :math:`K`.
If the 4 atoms in an improper quadruplet (listed in the data file read
by the :doc:`read_data <read_data>` command) are ordered I,J,K,L then X
by the :doc:`read_data <read_data>` command) are ordered I,J,K,L then
:math:`\chi`
is the angle between the plane of I,J,K and the plane of J,K,L.
Alternatively, you can think of atoms J,K,L as being in a plane, and
atom I above the plane, and X as a measure of how far out-of-plane I
is with respect to the other 3 atoms.
atom I above the plane, and :math:`\chi` as a measure of how far out-of-plane
I is with respect to the other 3 atoms.
Note that defining 4 atoms to interact in this way, does not mean that
bonds necessarily exist between I-J, J-K, or K-L, as they would in a
@ -58,10 +62,10 @@ above, or in the data file or restart files read by the
:doc:`read_data <read_data>` or :doc:`read_restart <read_restart>`
commands:
* K (energy/radian\^2)
* X0 (degrees)
* :math:`K` (energy/radian\^2)
* :math:`\chi_0` (degrees)
X0 is specified in degrees, but LAMMPS converts it to radians
:math:`\chi_0` is specified in degrees, but LAMMPS converts it to radians
internally; hence the units of K are in energy/radian\^2.

View File

@ -38,9 +38,9 @@ In the improper\_coeff command, the first coefficient sets the improper
style and the remaining coefficients are those appropriate to that
style. In the example above, the 2 improper\_coeff commands would set
impropers of improper type 1 to be computed with a *harmonic*
potential with coefficients 120.0, 30 for K, X0. Improper type 2
would be computed with a *cvff* potential with coefficients 20.0, -1,
2 for K, d, n.
potential with coefficients 120.0, 30 for :math:`K`, :math:`\chi_0`.
Improper type 2 would be computed with a *cvff* potential with coefficients
20.0, -1, 2 for K, d, and n, respectively.
If the improper *class2* potential is one of the hybrid styles, it
requires additional AngleAngle coefficients be specified in the data
@ -67,7 +67,8 @@ MOLECULE package. See the :doc:`Build package <Build_package>` doc page
for more info.
Unlike other improper styles, the hybrid improper style does not store
improper coefficient info for individual sub-styles in a :doc:`binary restart files <restart>`. Thus when restarting a simulation from a
improper coefficient info for individual sub-styles in a :doc:`binary restart files <restart>`.
Thus when restarting a simulation from a
restart file, you need to re-specify improper\_coeff commands.
Related commands

Some files were not shown because too many files have changed in this diff Show More