pair ufm to pair zbl

This commit is contained in:
Axel Kohlmeyer 2020-02-15 16:47:32 -05:00
parent a508138510
commit 3f5bb96aed
No known key found for this signature in database
GPG Key ID: D9B44E93BF0C375A
15 changed files with 93 additions and 127 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

View File

@ -1,14 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
E = -\varepsilon\, \ln{\left[1-\exp{\left(-r^{2}/\sigma^{2}\right)}\right]} \qquad r < r_c
$$
$$
\varepsilon = p\,k_B\,T
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

View File

@ -1,22 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
\begin{eqnarray*}
U & = & \sum_i^N \sum_{j > i}^N U_{ij}^{(2)} (r_{ij}) +
\sum_i^N \sum_{j \neq i}^N \sum_{k > j, k \neq i}^N
U_{ijk}^{(3)} (r_{ij}, r_{ik}, \theta_{ijk})
\\
U_{ij}^{(2)} (r) & = & \frac{H_{ij}}{r^{\eta_{ij}}}
+ \frac{Z_i Z_j}{r}\exp(-r/\lambda_{1,ij})
- \frac{D_{ij}}{r^4}\exp(-r/\lambda_{4,ij})
- \frac{W_{ij}}{r^6}, r < r_{c,{ij}}
\\
U_{ijk}^{(3)}(r_{ij},r_{ik},\theta_{ijk}) & = & B_{ijk}
\frac{\left[ \cos \theta_{ijk} - \cos \theta_{0ijk} \right]^2}
{1+C_{ijk}\left[ \cos \theta_{ijk} - \cos \theta_{0ijk} \right]^2} \times \\
& & \exp \left( \frac{\gamma_{ij}}{r_{ij} - r_{0,ij}} \right)
\exp \left( \frac{\gamma_{ik}}{r_{ik} - r_{0,ik}} \right), r_{ij} < r_{0,ij}, r_{ik} < r_{0,ik}
\end{eqnarray*}
\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 = A \frac{e^{- \kappa r}}{r} \qquad r < r_c
$$
\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 = \frac{A}{\kappa} e^{- \kappa (r - (r_i + r_j))} \qquad r < r_c
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

View File

@ -1,11 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
\begin{eqnarray*}
E^{ZBL}_{ij} & = & \frac{1}{4\pi\epsilon_0} \frac{Z_i Z_j \,e^2}{r_{ij}} \phi(r_{ij}/a)+ S(r_{ij})\\
a & = & \frac{0.46850}{Z_{i}^{0.23} + Z_{j}^{0.23}}\\
\phi(x) & = & 0.18175e^{-3.19980x} + 0.50986e^{-0.94229x} + 0.28022e^{-0.40290x} + 0.02817e^{-0.20162x}\\
\end{eqnarray*}
\end{document}

View File

@ -42,10 +42,16 @@ Description
Style *ufm* computes pairwise interactions using the Uhlenbeck-Ford model (UFM) potential :ref:`(Paula Leite2016) <PL2>` which is given by
.. image:: Eqs/pair_ufm.jpg
:align: center
.. math::
where rc is the cutoff, sigma is a distance-scale and epsilon is an energy-scale, i.e., a product of Boltzmann constant kB, temperature T and the Uhlenbeck-Ford p-parameter which is responsible
E & = -\varepsilon\, \ln{\left[1-\exp{\left(-r^{2}/\sigma^{2}\right)}\right]} \qquad r < r_c \\
\varepsilon & = p\,k_B\,T
where :math:`r_c` is the cutoff, :math:`\sigma` is a distance-scale and
:math:`\epsilon` is an energy-scale, i.e., a product of Boltzmann constant
:math:`k_B`, temperature *T* and the Uhlenbeck-Ford p-parameter which
is responsible
to control the softness of the interactions :ref:`(Paula Leite2017) <PL1>`.
This model is useful as a reference system for fluid-phase free-energy calculations :ref:`(Paula Leite2016) <PL2>`.
@ -55,8 +61,8 @@ or in the data file or restart files read by the
:doc:`read_data <read_data>` or :doc:`read_restart <read_restart>`
commands, or by mixing as described below:
* epsilon (energy units)
* sigma (distance units)
* :math:`\epsilon` (energy units)
* :math:`\sigma` (distance units)
* cutoff (distance units)
The last coefficient is optional. If not specified, the global *ufm*
@ -76,7 +82,13 @@ of a run:
.. note::
The thermodynamic integration procedure can be performed with this potential using :doc:`fix adapt <fix_adapt>`. This command will rescale the force on each atom by varying a scale variable, which always starts with value 1.0. The syntax is the same described above, however, changing epsilon to scale. A detailed explanation of how to use this command and perform nonequilibrium thermodynamic integration in LAMMPS is given in the paper by :ref:`(Freitas) <Freitas2>`.
The thermodynamic integration procedure can be performed with this
potential using :doc:`fix adapt <fix_adapt>`. This command will
rescale the force on each atom by varying a scale variable, which
always starts with value 1.0. The syntax is the same described above,
however, changing epsilon to scale. A detailed explanation of how to
use this command and perform nonequilibrium thermodynamic integration
in LAMMPS is given in the paper by :ref:`(Freitas) <Freitas2>`.
----------

View File

@ -63,16 +63,21 @@ including SiO2 :ref:`Vashishta1990 <Vashishta1990>`, SiC
The potential for the energy U of a system of atoms is
.. image:: Eqs/pair_vashishta.jpg
:align: center
.. math::
U & = \sum_i^N \sum_{j > i}^N U_{ij}^{(2)} (r_{ij}) + \sum_i^N \sum_{j \neq i}^N \sum_{k > j, k \neq i}^N U_{ijk}^{(3)} (r_{ij}, r_{ik}, \theta_{ijk}) \\
U_{ij}^{(2)} (r) & = \frac{H_{ij}}{r^{\eta_{ij}}} + \frac{Z_i Z_j}{r}\exp(-r/\lambda_{1,ij}) - \frac{D_{ij}}{r^4}\exp(-r/\lambda_{4,ij}) - \frac{W_{ij}}{r^6}, r < r_{c,{ij}} \\
U_{ijk}^{(3)}(r_{ij},r_{ik},\theta_{ijk}) & = B_{ijk} \frac{\left[ \cos \theta_{ijk} - \cos \theta_{0ijk} \right]^2} {1+C_{ijk}\left[ \cos \theta_{ijk} - \cos \theta_{0ijk} \right]^2} \times \\
& \exp \left( \frac{\gamma_{ij}}{r_{ij} - r_{0,ij}} \right) \exp \left( \frac{\gamma_{ik}}{r_{ik} - r_{0,ik}} \right), r_{ij} < r_{0,ij}, r_{ik} < r_{0,ik}
where we follow the notation used in :ref:`Branicio2009 <Branicio2009>`.
U2 is a two-body term and U3 is a three-body term. The
:math:`U^2` is a two-body term and U3 is a three-body term. The
summation over two-body terms is over all neighbors J within
a cutoff distance = *rc*\ . The twobody terms are shifted and
a cutoff distance = :math:`r_c`. The twobody terms are shifted and
tilted by a linear function so that the energy and force are
both zero at *rc*\ . The summation over three-body terms
is over all neighbors J and K within a cut-off distance = *r0*\ ,
both zero at :math:`r_c`. The summation over three-body terms
is over all neighbors *i* and *k* within a cut-off distance :math:`= r_0`,
where the exponential screening function becomes zero.
The *vashishta* style computes these formulas analytically. The
@ -126,20 +131,20 @@ and three-body coefficients in the formulae above:
* element 1 (the center atom in a 3-body interaction)
* element 2
* element 3
* H (energy units)
* eta
* Zi (electron charge units)
* Zj (electron charge units)
* lambda1 (distance units)
* D (energy units)
* lambda4 (distance units)
* W (energy units)
* rc (distance units)
* B (energy units)
* gamma
* r0 (distance units)
* C
* costheta0
* *H* (energy units)
* :math:`\eta`
* :math:`Z_i` (electron charge units)
* :math:`Z_j` (electron charge units)
* :math:`\lambda_1` (distance units)
* *D* (energy units)
* :math:`\lambda_4` (distance units)
* *W* (energy units)
* :math:`r_c` (distance units)
* *B* (energy units)
* :math:`\gamma`
* :math:`r_0` (distance units)
* *C*
* :math:`\cos\theta_0`
The non-annotated parameters are unitless. The Vashishta potential
file must contain entries for all the elements listed in the
@ -159,12 +164,14 @@ unambiguous, general, and simple to code, LAMMPS uses a slightly
confusing method for specifying parameters. All parameters are
divided into two classes: two-body and three-body. Two-body and
three-body parameters are handled differently, as described below.
The two-body parameters are H, eta, lambda1, D, lambda4, W, rc, gamma,
and r0. They appear in the above formulae with two subscripts. The
parameters Zi and Zj are also classified as two-body parameters, even
though they only have 1 subscript. The three-body parameters are B,
C, costheta0. They appear in the above formulae with three
subscripts. Two-body and three-body parameters are handled
The two-body parameters are *H*\ , :math:`\eta`, :math:`\lambda_1`,
*D*\ , :math:`\lambda_4`, *W*, :math:`r_c`, :math:`\gamma`,
and :math:`r_0`. They appear in the above formulae with two subscripts.
The parameters :math:`Z_i` and :math:`Z_j` are also classified
as two-body parameters, even
though they only have 1 subscript. The three-body parameters are *B*\ ,
*C*\ , :math:`\cos\theta_0`. They appear in the above formulae with
three subscripts. Two-body and three-body parameters are handled
differently, as described below.
The first element in each entry is the center atom in a three-body
@ -184,7 +191,8 @@ ensure that these values are equal. Two-body parameters appearing in
entries where the 2nd and 3rd elements are different are stored but
never used. It is good practice to enter zero for these values. Note
that the three-body function U3 above contains the two-body parameters
gamma and r0. So U3 for a central C atom bonded to an Si atom and a
:math:`\gamma` and :math:`r_0`. So U3 for a central C atom bonded to
an Si atom and a
second C atom will take three-body parameters from the CSiC entry, but
two-body parameters from the CCC and CSiSi entries.

View File

@ -38,10 +38,12 @@ Description
Style *yukawa* computes pairwise interactions with the formula
.. image:: Eqs/pair_yukawa.jpg
:align: center
.. math::
Rc is the cutoff.
E = A \frac{e^{- \kappa r}}{r} \qquad r < r_c
:math:`r_c` is the cutoff.
The following coefficients must be defined for each pair of atoms
types via the :doc:`pair_coeff <pair_coeff>` command as in the examples

View File

@ -35,11 +35,13 @@ Description
Style *yukawa/colloid* computes pairwise interactions with the formula
.. image:: Eqs/pair_yukawa_colloid.jpg
:align: center
.. math::
where Ri and Rj are the radii of the two particles and Rc is the
cutoff.
E = \frac{A}{\kappa} e^{- \kappa (r - (r_i + r_j))} \qquad r < r_c
where :math:`r_i` and :math:`r_j` are the radii of the two particles
and :math:`r_c` is the cutoff.
In contrast to :doc:`pair_style yukawa <pair_yukawa>`, this functional
form arises from the Coulombic interaction between two colloid
@ -49,7 +51,7 @@ theory. :doc:`Pair\_style yukawa <pair_yukawa>` is a screened Coulombic
potential between two point-charges and uses no such approximation.
This potential applies to nearby particle pairs for which the Derjagin
approximation holds, meaning h << Ri + Rj, where h is the
approximation holds, meaning :math:`h << r_i + r_j`, where *h* is the
surface-to-surface separation of the two particles.
When used in combination with :doc:`pair_style colloid <pair_colloid>`,
@ -72,17 +74,17 @@ used in :doc:`pair_style yukawa <pair_yukawa>`. For low surface
potentials, i.e. less than about 25 mV, A can be written as:
.. parsed-literal::
.. math::
A = 2 \* PI \* R\*eps\*eps0 \* kappa \* psi\^2
A = 2 \pi R\varepsilon\varepsilon_0 \kappa \psi^2
where
* R = colloid radius (distance units)
* eps0 = permittivity of free space (charge\^2/energy/distance units)
* eps = relative permittivity of fluid medium (dimensionless)
* kappa = inverse screening length (1/distance units)
* psi = surface potential (energy/charge units)
* *R* = colloid radius (distance units)
* :math:`\varepsilon_0` = permittivity of free space (charge\^2/energy/distance units)
* :math:`\varepsilon` = relative permittivity of fluid medium (dimensionless)
* :math:`\kappa` = inverse screening length (1/distance units)
* :math:`\psi` = surface potential (energy/charge units)
The last coefficient is optional. If not specified, the global
yukawa/colloid cutoff is used.

View File

@ -43,12 +43,16 @@ that ramps the energy, force, and curvature smoothly to zero
between an inner and outer cutoff. The potential
energy due to a pair of atoms at a distance r\_ij is given by:
.. image:: Eqs/pair_zbl.jpg
:align: center
.. math::
where e is the electron charge, epsilon\_0 is the electrical
permittivity of vacuum, and Z\_i and Z\_j are the nuclear charges of the
two atoms. The switching function S(r) is identical to that used by
E^{ZBL}_{ij} & = \frac{1}{4\pi\epsilon_0} \frac{Z_i Z_j \,e^2}{r_{ij}} \phi(r_{ij}/a)+ S(r_{ij})\\
a & = \frac{0.46850}{Z_{i}^{0.23} + Z_{j}^{0.23}}\\
\phi(x) & = 0.18175e^{-3.19980x} + 0.50986e^{-0.94229x} + 0.28022e^{-0.40290x} + 0.02817e^{-0.20162x}\\
where *e* is the electron charge, :math:`\epsilon_0` is the electrical
permittivity of vacuum, and :math:`Z_i` and :math:`Z_j` are the nuclear
charges of the
two atoms. The switching function :math:`S(r)` is identical to that used by
:doc:`pair_style lj/gromacs <pair_gromacs>`. Here, the inner and outer
cutoff are the same for all pairs of atom types.
@ -56,16 +60,17 @@ The following coefficients must be defined for each pair of atom types
via the :doc:`pair_coeff <pair_coeff>` command as in the examples above,
or in the LAMMPS data file.
* Z\_i (atomic number for first atom type, e.g. 13.0 for aluminum)
* :math:`Z_i` (atomic number for first atom type, e.g. 13.0 for aluminum)
* Z\_j (ditto for second atom type)
* :math:`Z_j` (ditto for second atom type)
The values of Z\_i and Z\_j are normally equal to the atomic
The values of :math:`Z_i` and :math:`Z_j` are normally equal to the atomic
numbers of the two atom types. Thus, the user may optionally
specify only the coefficients for each I==I pair, and rely
specify only the coefficients for each :math:`i==i` pair, and rely
on the obvious mixing rule for cross interactions (see below).
Note that when I==I it is required that Z\_i == Z\_j. When used
with :doc:`hybrid/overlay <pair_hybrid>` and pairs are assigned
Note that when :math:`i==i` it is required that :math:`Z_i == Z_j`.
When used with :doc:`hybrid/overlay <pair_hybrid>` and pairs are
assigned
to more than one sub-style, the mixing rule is not used and
each pair of types interacting with the ZBL sub-style must
be included in a pair\_coeff command.
@ -108,9 +113,11 @@ instructions on how to use the accelerated styles effectively.
**Mixing, shift, table, tail correction, restart, rRESPA info**\ :
For atom type pairs I,J and I != J, the Z\_i and Z\_j coefficients
can be mixed by taking Z\_i and Z\_j from the values specified for
I == I and J == J cases. When used
For atom type pairs *i,j* and :math:`i \neq i`, the :math:`Z_i` and
:math:`Z_j` coefficients
can be mixed by taking :math:`Z_i` and :math:`Z_j` from the values
specified for
:math:`i == i` and :math:`j == j` cases. When used
with :doc:`hybrid/overlay <pair_hybrid>` and pairs are assigned
to more than one sub-style, the mixing rule is not used and
each pair of types interacting with the ZBL sub-style