convert pair styles gauss to gromacs

This commit is contained in:
Axel Kohlmeyer 2020-02-24 13:30:58 -05:00
parent 8774ec04a9
commit 9955c8f94b
No known key found for this signature in database
GPG Key ID: D9B44E93BF0C375A
18 changed files with 173 additions and 219 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

View File

@ -1,9 +0,0 @@
\documentclass[12pt]{article}
\pagestyle{empty}
\begin{document}
$$
E = - A \exp(-B r^2) \qquad r < r_c
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -1,8 +0,0 @@
\documentclass[12pt]{article}
\pagestyle{empty}
\begin{document}
\begin{eqnarray*}
E = & \frac{H}{\sigma_h\sqrt{2\pi}} \exp\left[-\frac{(r-r_{mh})^2}{2\sigma_h^2}\right]
\end{eqnarray*}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

View File

@ -1,14 +0,0 @@
\documentstyle[12pt]{article}
\begin{document}
$$ U ( \mathbf{A}_1, \mathbf{A}_2, \mathbf{r}_{12} ) = U_r (
\mathbf{A}_1, \mathbf{A}_2, \mathbf{r}_{12}, \gamma ) \cdot \eta_{12} (
\mathbf{A}_1, \mathbf{A}_2, \upsilon ) \cdot \chi_{12} ( \mathbf{A}_1,
\mathbf{A}_2, \mathbf{r}_{12}, \mu ) $$
$$ U_r = 4 \epsilon ( \varrho^{12} - \varrho^6) $$
$$ \varrho = \frac{\sigma}{ h_{12} + \gamma \sigma} $$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -1,9 +0,0 @@
\documentstyle[12pt]{article}
\begin{document}
$$ \epsilon_a = \sigma \cdot { \frac{a}{ b \cdot c } }; \epsilon_b =
\sigma \cdot { \frac{b}{ a \cdot c } }; \epsilon_c = \sigma \cdot {
\frac{c}{ a \cdot b } } $$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

View File

@ -1,14 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
F_{hz} = \sqrt{\delta} \sqrt{\frac{R_i R_j}{R_i + R_j}} F_{hk} =
\sqrt{\delta} \sqrt{\frac{R_i R_j}{R_i + R_j}}
\Big[ (k_n \delta \mathbf{n}_{ij} -
m_{\mbox{\scriptsize{eff}}} \: \gamma_n \mathbf{ v}_n) -
(k_t \mathbf{ \Delta s}_t +
m_{\mbox{\scriptsize{eff}}} \: \gamma_t \mathbf{v}_t) \Big]
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

View File

@ -1,12 +0,0 @@
\documentclass[12pt]{article}
\begin{document}
$$
F_{hk} = (k_n \delta \mathbf{n}_{ij} -
m_{\mbox{\scriptsize{eff}}} \gamma_n\mathbf{ v}_n) -
(k_t \mathbf{ \Delta s}_t +
m_{\mbox{\scriptsize{eff}}} \gamma_t \mathbf{v}_t)
$$
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

View File

@ -1,17 +0,0 @@
\documentstyle[12pt]{article}
\begin{document}
\begin{eqnarray*}
E_{LJ} & = & 4 \epsilon \left[ \left(\frac{\sigma}{r}\right)^{12} -
\left(\frac{\sigma}{r}\right)^6 \right] + S_{LJ}(r)
\qquad r < r_c \\
E_C & = & \frac{C q_i q_j}{\epsilon r} + S_C(r) \qquad r < r_c \\
S(r) & = & C \qquad r < r_1 \\
S(r) & = & \frac{A}{3} (r - r_1)^3 + \frac{B}{4} (r - r_1)^4 + C \qquad r_1 < r < r_c \\
A & = & (-3 E'(r_c) + (r_c - r_1) E''(r_c))/(r_c - r_1)^2 \\
B & = & (2 E'(r_c) - (r_c - r_1) E''(r_c))/(r_c - r_1)^3 \\
C & = & -E(r_c) + \frac{1}{2} (r_c - r_1) E'(r_c) - \frac{1}{12} (r_c - r_1)^2 E''(r_c)) \\
\end{eqnarray*}
\end{document}

View File

@ -44,11 +44,13 @@ Description
Style *gauss* computes a tethering potential of the form Style *gauss* computes a tethering potential of the form
.. image:: Eqs/pair_gauss.jpg .. math::
:align: center
E = - A \exp(-B r^2) \qquad r < r_c
between an atom and its corresponding tether site which will typically between an atom and its corresponding tether site which will typically
be a frozen atom in the simulation. Rc is the cutoff. be a frozen atom in the simulation. :math:`r_c` is the cutoff.
The following coefficients must be defined for each pair of atom types 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, via the :doc:`pair_coeff <pair_coeff>` command as in the examples above,
@ -66,17 +68,20 @@ is used.
Style *gauss/cut* computes a generalized Gaussian interaction potential Style *gauss/cut* computes a generalized Gaussian interaction potential
between pairs of particles: between pairs of particles:
.. image:: Eqs/pair_gauss_cut.jpg .. math::
:align: center
where H determines together with the standard deviation sigma\_h the E = \frac{H}{\sigma_h\sqrt{2\pi}} \exp\left[-\frac{(r-r_{mh})^2}{2\sigma_h^2}\right]
peak height of the Gaussian function, and r\_mh the peak position.
Examples of the use of the Gaussian potentials include implicit
solvent simulations of salt ions :ref:`(Lenart) <Lenart2>` and of surfactants where H determines together with the standard deviation :math:`\sigma_h`
:ref:`(Jusufi) <Jusufi2>`. In these instances the Gaussian potential mimics the peak height of the Gaussian function, and :math:`r_{mh}` the peak
the hydration barrier between a pair of particles. The hydration position. Examples of the use of the Gaussian potentials include
barrier is located at r\_mh and has a width of sigma\_h. The prefactor implicit solvent simulations of salt ions :ref:`(Lenart) <Lenart2>` and
determines the height of the potential barrier. of surfactants :ref:`(Jusufi) <Jusufi2>`. In these instances the
Gaussian potential mimics the hydration barrier between a pair of
particles. The hydration barrier is located at :math:`r_{mh}` and has a
width of :math:`\sigma_h`. The prefactor determines the height of the
potential barrier.
The following coefficients must be defined for each pair of atom types The following coefficients must be defined for each pair of atom types
via the :doc:`pair_coeff <pair_coeff>` command as in the example above, via the :doc:`pair_coeff <pair_coeff>` command as in the example above,
@ -85,17 +90,15 @@ or in the data file or restart files read by the
commands: commands:
* H (energy \* distance units) * H (energy \* distance units)
* r\_mh (distance units) * :math:`r_{mh}` (distance units)
* sigma\_h (distance units) * :math:`\sigma_h` (distance units)
* cutoff (distance units) * cutoff (distance units)
The last coefficient is optional. If not specified, the global cutoff The last coefficient is optional. If not specified, the global cutoff
is used. is used.
---------- ----------
Styles with a *gpu*\ , *intel*\ , *kk*\ , *omp*\ , or *opt* suffix are Styles with a *gpu*\ , *intel*\ , *kk*\ , *omp*\ , or *opt* suffix are
functionally the same as the corresponding style without the suffix. functionally the same as the corresponding style without the suffix.
They have been optimized to run faster, depending on your available They have been optimized to run faster, depending on your available

View File

@ -41,24 +41,33 @@ The *gayberne* styles compute a Gay-Berne anisotropic LJ interaction
:ref:`(Berardi) <Berardi>` between pairs of ellipsoidal particles or an :ref:`(Berardi) <Berardi>` between pairs of ellipsoidal particles or an
ellipsoidal and spherical particle via the formulas ellipsoidal and spherical particle via the formulas
.. image:: Eqs/pair_gayberne.jpg .. math::
:align: center
where A1 and A2 are the transformation matrices from the simulation U ( \mathbf{A}_1, \mathbf{A}_2, \mathbf{r}_{12} ) = & U_r (
box frame to the body frame and r12 is the center to center vector \mathbf{A}_1, \mathbf{A}_2, \mathbf{r}_{12}, \gamma ) \cdot \eta_{12} (
between the particles. Ur controls the shifted distance dependent \mathbf{A}_1, \mathbf{A}_2, \upsilon ) \cdot \chi_{12} ( \mathbf{A}_1,
interaction based on the distance of closest approach of the two \mathbf{A}_2, \mathbf{r}_{12}, \mu ) \\
particles (h12) and the user-specified shift parameter gamma. When U_r = & 4 \epsilon ( \varrho^{12} - \varrho^6) \\
both particles are spherical, the formula reduces to the usual \varrho = & \frac{\sigma}{ h_{12} + \gamma \sigma}
Lennard-Jones interaction (see details below for when Gay-Berne treats
a particle as "spherical"). where A1 and A2 are the transformation matrices from the simulation box
frame to the body frame and :math:`r_{12}` is the center to center
vector between the particles. :math:`U_r` controls the shifted distance
dependent interaction based on the distance of closest approach of the
two particles (:math:`h_{12}`) and the user-specified shift parameter
gamma. When both particles are spherical, the formula reduces to the
usual Lennard-Jones interaction (see details below for when Gay-Berne
treats a particle as "spherical").
For large uniform molecules it has been shown that the energy For large uniform molecules it has been shown that the energy
parameters are approximately representable in terms of local contact parameters are approximately representable in terms of local contact
curvatures :ref:`(Everaers) <Everaers2>`: curvatures :ref:`(Everaers) <Everaers2>`:
.. image:: Eqs/pair_gayberne2.jpg .. math::
:align: center
\epsilon_a = \sigma \cdot { \frac{a}{ b \cdot c } }; \epsilon_b =
\sigma \cdot { \frac{b}{ a \cdot c } }; \epsilon_c = \sigma \cdot {
\frac{c}{ a \cdot b } }
The variable names utilized as potential parameters are for the most The variable names utilized as potential parameters are for the most
part taken from :ref:`(Everaers) <Everaers2>` in order to be consistent with part taken from :ref:`(Everaers) <Everaers2>` in order to be consistent with
@ -80,69 +89,72 @@ above, or in the data file or restart files read by the
:doc:`read_data <read_data>` or :doc:`read_restart <read_restart>` :doc:`read_data <read_data>` or :doc:`read_restart <read_restart>`
commands, or by mixing as described below: commands, or by mixing as described below:
* epsilon = well depth (energy units) * :math:`\epsilon` = well depth (energy units)
* sigma = minimum effective particle radii (distance units) * :math:`\sigma` = minimum effective particle radii (distance units)
* epsilon\_i_a = relative well depth of type I for side-to-side interactions * :math:`\epsilon_{i,a}` = relative well depth of type I for side-to-side interactions
* epsilon\_i_b = relative well depth of type I for face-to-face interactions * :math:`\epsilon_{i,b}` = relative well depth of type I for face-to-face interactions
* epsilon\_i_c = relative well depth of type I for end-to-end interactions * :math:`\epsilon_{i,c}` = relative well depth of type I for end-to-end interactions
* epsilon\_j_a = relative well depth of type J for side-to-side interactions * :math:`\epsilon_{j,a}` = relative well depth of type J for side-to-side interactions
* epsilon\_j_b = relative well depth of type J for face-to-face interactions * :math:`\epsilon_{j,b}` = relative well depth of type J for face-to-face interactions
* epsilon\_j_c = relative well depth of type J for end-to-end interactions * :math:`\epsilon_{j,c}` = relative well depth of type J for end-to-end interactions
* cutoff (distance units) * cutoff (distance units)
The last coefficient is optional. If not specified, the global The last coefficient is optional. If not specified, the global
cutoff specified in the pair\_style command is used. cutoff specified in the pair\_style command is used.
It is typical with the Gay-Berne potential to define *sigma* as the It is typical with the Gay-Berne potential to define :math:`\sigma` as
minimum of the 3 shape diameters of the particles involved in an I,I the minimum of the 3 shape diameters of the particles involved in an I,I
interaction, though this is not required. Note that this is a interaction, though this is not required. Note that this is a different
different meaning for *sigma* than the :doc:`pair_style resquared <pair_resquared>` potential uses. meaning for :math:`\sigma` than the :doc:`pair_style resquared
<pair_resquared>` potential uses.
The epsilon\_i and epsilon\_j coefficients are actually defined for atom The :math:`\epsilon_i` and :math:`\epsilon_j` coefficients are actually
types, not for pairs of atom types. Thus, in a series of pair\_coeff defined for atom types, not for pairs of atom types. Thus, in a series
commands, they only need to be specified once for each atom type. of pair\_coeff commands, they only need to be specified once for each
atom type.
Specifically, if any of epsilon\_i_a, epsilon\_i_b, epsilon\_i_c are Specifically, if any of :math:`\epsilon_{i,a}`, :math:`\epsilon_{i,b}`,
non-zero, the three values are assigned to atom type I. If all the :math:`\epsilon_{i,c}` are non-zero, the three values are assigned to
epsilon\_i values are zero, they are ignored. If any of epsilon\_j_a, atom type I. If all the :math:`\epsilon_i` values are zero, they are
epsilon\_j_b, epsilon\_j_c are non-zero, the three values are assigned ignored. If any of :math:`\epsilon_{j,a}`, :math:`\epsilon_{j,b}`,
to atom type J. If all three epsilon\_j values are zero, they are :math:`\epsilon_{j,c}` are non-zero, the three values are assigned to
ignored. Thus the typical way to define the epsilon\_i and epsilon\_j atom type J. If all three epsilon\_j values are zero, they are ignored.
coefficients is to list their values in "pair\_coeff I J" commands when Thus the typical way to define the :math:`\epsilon_i` and
I = J, but set them to 0.0 when I != J. If you do list them when I != :math:`\epsilon_j` coefficients is to list their values in "pair\_coeff
J, you should insure they are consistent with their values in other I J" commands when I = J, but set them to 0.0 when I != J. If you do
pair\_coeff commands, since only the last setting will be in effect. list them when I != J, you should insure they are consistent with their
values in other pair\_coeff commands, since only the last setting will
be in effect.
Note that if this potential is being used as a sub-style of Note that if this potential is being used as a sub-style of
:doc:`pair_style hybrid <pair_hybrid>`, and there is no "pair\_coeff I I" :doc:`pair_style hybrid <pair_hybrid>`, and there is no "pair\_coeff I I"
setting made for Gay-Berne for a particular type I (because I-I setting made for Gay-Berne for a particular type I (because I-I
interactions are computed by another hybrid pair potential), then you interactions are computed by another hybrid pair potential), then you
still need to insure the epsilon a,b,c coefficients are assigned to still need to insure the :math:`\epsilon` a,b,c coefficients are assigned to
that type. e.g. in a "pair\_coeff I J" command. that type. e.g. in a "pair\_coeff I J" command.
.. note:: .. note::
If the epsilon a = b = c for an atom type, and if the shape of If the :math:`\epsilon` a = b = c for an atom type, and if the shape
the particle itself is spherical, meaning its 3 shape parameters are of the particle itself is spherical, meaning its 3 shape parameters
all the same, then the particle is treated as an LJ sphere by the are all the same, then the particle is treated as an LJ sphere by the
Gay-Berne potential. This is significant because if two LJ spheres Gay-Berne potential. This is significant because if two LJ spheres
interact, then the simple Lennard-Jones formula is used to compute interact, then the simple Lennard-Jones formula is used to compute
their interaction energy/force using the specified epsilon and sigma their interaction energy/force using the specified epsilon and sigma
as the standard LJ parameters. This is much cheaper to compute than as the standard LJ parameters. This is much cheaper to compute than
the full Gay-Berne formula. To treat the particle as a LJ sphere with the full Gay-Berne formula. To treat the particle as a LJ sphere
sigma = D, you should normally set epsilon a = b = c = 1.0, set the with sigma = D, you should normally set :math:`\epsilon` a = b = c =
pair\_coeff sigma = D, and also set the 3 shape parameters for the 1.0, set the pair\_coeff :math:`\sigma = D`, and also set the 3 shape
particle to D. The one exception is that if the 3 shape parameters parameters for the particle to D. The one exception is that if the 3
are set to 0.0, which is a valid way in LAMMPS to specify a point shape parameters are set to 0.0, which is a valid way in LAMMPS to
particle, then the Gay-Berne potential will treat that as shape specify a point particle, then the Gay-Berne potential will treat
parameters of 1.0 (i.e. a LJ particle with sigma = 1), since it that as shape parameters of 1.0 (i.e. a LJ particle with
requires finite-size particles. In this case you should still set the :math:`\sigma = 1`), since it requires finite-size particles. In
pair\_coeff sigma to 1.0 as well. this case you should still set the pair\_coeff :math:`\sigma` to 1.0
as well.
---------- ----------
Styles with a *gpu*\ , *intel*\ , *kk*\ , *omp*\ , or *opt* suffix are Styles with a *gpu*\ , *intel*\ , *kk*\ , *omp*\ , or *opt* suffix are
functionally the same as the corresponding style without the suffix. functionally the same as the corresponding style without the suffix.
They have been optimized to run faster, depending on your available They have been optimized to run faster, depending on your available

View File

@ -70,13 +70,25 @@ no force between the particles when r > d.
The two Hookean styles use this formula: The two Hookean styles use this formula:
.. image:: Eqs/pair_gran_hooke.jpg .. math::
:align: center
F_{hk} = (k_n \delta \mathbf{n}_{ij} -
m_{eff} \gamma_n\mathbf{ v}_n) -
(k_t \mathbf{ \Delta s}_t +
m_{eff} \gamma_t \mathbf{v}_t)
The Hertzian style uses this formula: The Hertzian style uses this formula:
.. image:: Eqs/pair_gran_hertz.jpg .. math::
:align: center
F_{hz} = \sqrt{\delta} \sqrt{\frac{R_i R_j}{R_i + R_j}} F_{hk} =
\sqrt{\delta} \sqrt{\frac{R_i R_j}{R_i + R_j}}
\Big[ (k_n \delta \mathbf{n}_{ij} -
m_{eff} \: \gamma_n \mathbf{ v}_n) -
(k_t \mathbf{ \Delta s}_t +
m_{eff} \: \gamma_t \mathbf{v}_t) \Big]
In both equations the first parenthesized term is the normal force In both equations the first parenthesized term is the normal force
between the two particles and the second parenthesized term is the between the two particles and the second parenthesized term is the
@ -92,34 +104,35 @@ if *dampflag* is set to 0.
The other quantities in the equations are as follows: The other quantities in the equations are as follows:
* delta = d - r = overlap distance of 2 particles * :math:`\delta` = d - r = overlap distance of 2 particles
* Kn = elastic constant for normal contact * :math:`K_n` = elastic constant for normal contact
* Kt = elastic constant for tangential contact * :math:`K_t` = elastic constant for tangential contact
* gamma\_n = viscoelastic damping constant for normal contact * :math:`\gamma_n` = viscoelastic damping constant for normal contact
* gamma\_t = viscoelastic damping constant for tangential contact * :math:`\gamma_t` = viscoelastic damping constant for tangential contact
* m\_eff = Mi Mj / (Mi + Mj) = effective mass of 2 particles of mass Mi and Mj * :math:`m_{eff} = M_i M_j / (M_i + M_j) =` effective mass of 2 particles of mass M\_i and M\_j
* Delta St = tangential displacement vector between 2 particles which is truncated to satisfy a frictional yield criterion * :math:`\mathbf{\Delta s}_t =` tangential displacement vector between 2 particles which is truncated to satisfy a frictional yield criterion
* n\_ij = unit vector along the line connecting the centers of the 2 particles * :math:`n_{ij} =` unit vector along the line connecting the centers of the 2 particles
* Vn = normal component of the relative velocity of the 2 particles * :math:`V_n =` normal component of the relative velocity of the 2 particles
* Vt = tangential component of the relative velocity of the 2 particles * :math:`V_t =` tangential component of the relative velocity of the 2 particles
The Kn, Kt, gamma\_n, and gamma\_t coefficients are specified as The :math:`K_n`, :math:`K_t`, :math:`\gamma_n`, and :math:`\gamma_t`
parameters to the pair\_style command. If a NULL is used for Kt, then coefficients are specified as parameters to the pair\_style command. If
a default value is used where Kt = 2/7 Kn. If a NULL is used for a NULL is used for :math:`K_t`, then a default value is used where
gamma\_t, then a default value is used where gamma\_t = 1/2 gamma\_n. :math:`K_t = 2/7 K_n`. If a NULL is used for :math:`\gamma_t`, then a
default value is used where :math:`\gamma_t = 1/2 \gamma_n`.
The interpretation and units for these 4 coefficients are different in The interpretation and units for these 4 coefficients are different in
the Hookean versus Hertzian equations. the Hookean versus Hertzian equations.
The Hookean model is one where the normal push-back force for two The Hookean model is one where the normal push-back force for two
overlapping particles is a linear function of the overlap distance. overlapping particles is a linear function of the overlap distance.
Thus the specified Kn is in units of (force/distance). Note that this Thus the specified :math:`K_n` is in units of (force/distance). Note
push-back force is independent of absolute particle size (in the that this push-back force is independent of absolute particle size (in
monodisperse case) and of the relative sizes of the two particles (in the monodisperse case) and of the relative sizes of the two particles
the polydisperse case). This model also applies to the other terms in (in the polydisperse case). This model also applies to the other terms
the force equation so that the specified gamma\_n is in units of in the force equation so that the specified :math:`\gamma_n` is in units
(1/time), Kt is in units of (force/distance), and gamma\_t is in units of (1/time), :math:`K_t` is in units of (force/distance), and
of (1/time). :math:`\gamma_t` is in units of (1/time).
The Hertzian model is one where the normal push-back force for two The Hertzian model is one where the normal push-back force for two
overlapping particles is proportional to the area of overlap of the overlapping particles is proportional to the area of overlap of the
@ -128,38 +141,39 @@ Thus Kn has units of force per area and is thus specified in units of
(pressure). The effects of absolute particle size (monodispersity) (pressure). The effects of absolute particle size (monodispersity)
and relative size (polydispersity) are captured in the radii-dependent and relative size (polydispersity) are captured in the radii-dependent
pre-factors. When these pre-factors are carried through to the other pre-factors. When these pre-factors are carried through to the other
terms in the force equation it means that the specified gamma\_n is in terms in the force equation it means that the specified :math:`\gamma_n` is in
units of (1/(time\*distance)), Kt is in units of (pressure), and units of (1/(time\*distance)), :math:`K_t` is in units of (pressure), and
gamma\_t is in units of (1/(time\*distance)). :math:`\gamma_t` is in units of (1/(time\*distance)).
Note that in the Hookean case, Kn can be thought of as a linear spring Note that in the Hookean case, :math:`K_n` can be thought of as a linear
constant with units of force/distance. In the Hertzian case, Kn is spring constant with units of force/distance. In the Hertzian case,
like a non-linear spring constant with units of force/area or :math:`K_n` is like a non-linear spring constant with units of
pressure, and as shown in the :ref:`(Zhang) <Zhang3>` paper, Kn = 4G / force/area or pressure, and as shown in the :ref:`(Zhang) <Zhang3>`
(3(1-nu)) where nu = the Poisson ratio, G = shear modulus = E / paper, :math:`K_n = 4G / (3(1-\nu))` where :math:`\nu =` the Poisson ratio,
(2(1+nu)), and E = Young's modulus. Similarly, Kt = 4G / (2-nu). G = shear modulus = :math:`E / (2(1+\nu))`, and E = Young's modulus. Similarly,
(NOTE: in an earlier version of the manual, we incorrectly stated that :math:`K_t = 4G / (2-\nu)`. (NOTE: in an earlier version of the manual, we incorrectly
Kt = 8G / (2-nu).) stated that :math:`K_t = 8G / (2-\nu)`.)
Thus in the Hertzian case Kn and Kt can be set to values that Thus in the Hertzian case :math:`K_n` and :math:`K_t` can be set to
corresponds to properties of the material being modeled. This is also values that corresponds to properties of the material being modeled.
true in the Hookean case, except that a spring constant must be chosen This is also true in the Hookean case, except that a spring constant
that is appropriate for the absolute size of particles in the model. must be chosen that is appropriate for the absolute size of particles in
Since relative particle sizes are not accounted for, the Hookean the model. Since relative particle sizes are not accounted for, the
styles may not be a suitable model for polydisperse systems. Hookean styles may not be a suitable model for polydisperse systems.
.. note:: .. note::
In versions of LAMMPS before 9Jan09, the equation for Hertzian In versions of LAMMPS before 9Jan09, the equation for Hertzian
interactions did not include the sqrt(RiRj/Ri+Rj) term and thus was interactions did not include the :math:`\sqrt{r_i r_j / (r_i + r_j)}`
not as accurate for polydisperse systems. For monodisperse systems, term and thus was not as accurate for polydisperse systems. For
sqrt(RiRj/Ri+Rj) is a constant factor that effectively scales all 4 monodisperse systems, :math:`\sqrt{ r_i r_j /(r_i+r_j)}` is a
coefficients: Kn, Kt, gamma\_n, gamma\_t. Thus you can set the values constant factor that effectively scales all 4 coefficients:
of these 4 coefficients appropriately in the current code to reproduce :math:`K_n, K_t, \gamma_n, \gamma_t`. Thus you can set the values of
these 4 coefficients appropriately in the current code to reproduce
the results of a previous Hertzian monodisperse calculation. For the results of a previous Hertzian monodisperse calculation. For
example, for the common case of a monodisperse system with particles example, for the common case of a monodisperse system with particles
of diameter 1, all 4 of these coefficients should now be set 2x larger of diameter 1, all 4 of these coefficients should now be set 2x
than they were previously. larger than they were previously.
Xmu is also specified in the pair\_style command and is the upper limit Xmu is also specified in the pair\_style command and is the upper limit
of the tangential force through the Coulomb criterion Ft = xmu\*Fn, of the tangential force through the Coulomb criterion Ft = xmu\*Fn,

View File

@ -64,21 +64,30 @@ smoothly to zero between an inner and outer cutoff. It is a commonly
used potential in the `GROMACS <http://www.gromacs.org>`_ MD code and for used potential in the `GROMACS <http://www.gromacs.org>`_ MD code and for
the coarse-grained models of :ref:`(Marrink) <Marrink>`. the coarse-grained models of :ref:`(Marrink) <Marrink>`.
.. image:: Eqs/pair_gromacs.jpg .. math::
:align: center
r1 is the inner cutoff; rc is the outer cutoff. The coefficients A, B, E_{LJ} = & 4 \epsilon \left[ \left(\frac{\sigma}{r}\right)^{12} -
and C are computed by LAMMPS to perform the shifting and smoothing. \left(\frac{\sigma}{r}\right)^6 \right] + S_{LJ}(r)
The function \qquad r < r_c \\
S(r) is actually applied once to each term of the LJ formula and once E_C = & \frac{C q_i q_j}{\epsilon r} + S_C(r) \qquad r < r_c \\
to the Coulombic formula, so there are 2 or 3 sets of A,B,C coefficients S(r) = & C \qquad r < r_1 \\
depending on which pair\_style is used. The boundary conditions S(r) = & \frac{A}{3} (r - r_1)^3 + \frac{B}{4} (r - r_1)^4 + C \qquad r_1 < r < r_c \\
applied to the smoothing function are as follows: S'(r1) = S''(r1) = 0, A = & (-3 E'(r_c) + (r_c - r_1) E''(r_c))/(r_c - r_1)^2 \\
S(rc) = -E(rc), S'(rc) = -E'(rc), and S''(rc) = -E''(rc), B = & (2 E'(r_c) - (r_c - r_1) E''(r_c))/(r_c - r_1)^3 \\
where E(r) is the corresponding term C = & -E(r_c) + \frac{1}{2} (r_c - r_1) E'(r_c) - \frac{1}{12} (r_c - r_1)^2 E''(r_c)
in the LJ or Coulombic potential energy function.
Single and double primes denote first and second
derivatives with respect to r, respectively. :math:`r_1` is the inner cutoff; :math:`r_c` is the outer cutoff. The
coefficients A, B, and C are computed by LAMMPS to perform the shifting
and smoothing. The function S(r) is actually applied once to each term
of the LJ formula and once to the Coulombic formula, so there are 2 or 3
sets of A,B,C coefficients depending on which pair\_style is used. The
boundary conditions applied to the smoothing function are as follows:
:math:`S'(r_1) = S''(r_1) = 0, S(r_c) = -E(r_c), S'(r_c) = -E'(r_c)`,
and :math:`S''(r_c) = -E''(r_c)`, where E(r) is the corresponding term
in the LJ or Coulombic potential energy function. Single and double
primes denote first and second derivatives with respect to r,
respectively.
The inner and outer cutoff for the LJ and Coulombic terms can be the The inner and outer cutoff for the LJ and Coulombic terms can be the
same or different depending on whether 2 or 4 arguments are used in same or different depending on whether 2 or 4 arguments are used in
@ -91,14 +100,13 @@ above, or in the data file or restart files read by the
:doc:`read_data <read_data>` or :doc:`read_restart <read_restart>` :doc:`read_data <read_data>` or :doc:`read_restart <read_restart>`
commands, or by mixing as described below: commands, or by mixing as described below:
* epsilon (energy units) * :math:`\epsilon` (energy units)
* sigma (distance units) * :math:`\sigma` (distance units)
* inner (distance units) * inner (distance units)
* outer (distance units) * outer (distance units)
Note that sigma is defined in the LJ formula as the zero-crossing Note that sigma is defined in the LJ formula as the zero-crossing
distance for the potential, not as the energy minimum at 2\^(1/6) distance for the potential, not as the energy minimum at :math:`2^{1/6} \sigma`.
sigma.
The last 2 coefficients are optional inner and outer cutoffs for style The last 2 coefficients are optional inner and outer cutoffs for style
*lj/gromacs*\ . If not specified, the global *inner* and *outer* values *lj/gromacs*\ . If not specified, the global *inner* and *outer* values