add pair style lj/sphere

This commit is contained in:
Axel Kohlmeyer
2023-03-28 17:17:36 -04:00
parent ff96eb2e84
commit e338c648bb
5 changed files with 529 additions and 0 deletions

View File

@ -185,6 +185,7 @@ OPT.
* :doc:`lj/long/tip4p/long (o) <pair_lj_long>`
* :doc:`lj/mdf <pair_mdf>`
* :doc:`lj/relres (o) <pair_lj_relres>`
* :doc:`lj/sphere <pair_lj_sphere>`
* :doc:`lj/spica (gko) <pair_spica>`
* :doc:`lj/spica/coul/long (go) <pair_spica>`
* :doc:`lj/spica/coul/msm (o) <pair_spica>`

117
doc/src/pair_lj_sphere.rst Normal file
View File

@ -0,0 +1,117 @@
.. index:: pair_style lj/sphere
pair_style lj/sphere command
============================
Syntax
""""""
.. code-block:: LAMMPS
pair_style style args
* style = *lj/sphere*
* args = list of arguments for a particular style
.. parsed-literal::
*lj/sphere* args = cutoff
cutoff = global cutoff for Lennard Jones interactions (distance units)
Examples
""""""""
.. code-block:: LAMMPS
pair_style lj/sphere 2.5
pair_coeff * * 1.0
pair_coeff 1 1 1.1 2.8
Description
"""""""""""
The *lj/sphere* styles compute the standard 12/6 Lennard-Jones potential,
given by
.. math::
E = 4 \epsilon \left[ \left(\frac{\sigma_{ij}}{r}\right)^{12} -
\left(\frac{\sigma_{ij}}{r}\right)^6 \right]
\qquad r < r_c
:math:`r_c` is the cutoff.
This is the same potential function as used by the :doc:`lj/cut
<pair_lj>` pair style, but the :math:`\sigma_{ij}` parameter is not set
as a per-type parameter via the :doc:`pair_coeff command <pair_coeff>`,
but taken from the per-atom radius attribute of :doc:`atom_style sphere
<atom_style>`. The individual value of :math:`\sigma_{ij}` is computed
using the mixing rule for pair coefficients as set by the
:doc:`pair_modify mix <pair_modify>` command.
Note that :math:`\sigma_{ij}` is defined in the LJ formula above as the
zero-crossing distance for the potential, *not* as the energy minimum which
is at :math:`2^{\frac{1}{6}} \sigma_{ij}`.
Coefficients
""""""""""""
The following coefficients must be defined for each pair of atoms types via the
:doc:`pair_coeff <pair_coeff>` command as in the examples above, 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:
* :math:`\epsilon` (energy units)
* LJ cutoff (distance units) (optional)
The last coefficient is optional. If not specified, the global
LJ cutoff specified in the pair_style command is used.
----------
Mixing, shift, table, tail correction, restart, rRESPA info
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
For atom type pairs I,J and I != J, the epsilon coefficients and cutoff
distance for the *lj/sphere* pair style can be mixed. The default mix value
is *geometric*. See the "pair_modify" command for details.
The *lj/sphere* pair style supports the :doc:`pair_modify <pair_modify>`
shift option for the energy of the Lennard-Jones portion of the pair
interaction.
The *lj/sphere* pair style does *not* support the :doc:`pair_modify
<pair_modify>` tail option for adding a long-range tail corrections to
the energy and pressure.
The *lj/sphere* pair style writes its information to :doc:`binary
restart files <restart>`, so pair_style and pair_coeff commands do not
need to be specified in an input script that reads a restart file.
This pair style can only be used via the *pair* keyword of the
:doc:`run_style respa <run_style>` command. It does *not* support the
*inner*, *middle*, *outer* keywords.
----------
Restrictions
""""""""""""
The *lj/sphere* pair style is only enabled if LAMMPS was built with the
EXTRA-PAIR package. See the :doc:`Build package <Build_package>` page
for more info.
The *lj/sphere* pair style does not support the *sixthpower* mixing rule.
----------
Related commands
""""""""""""""""
* :doc:`pair_coeff <pair_coeff>`
* :doc:`pair_style lj/cut <pair_lj>`
Default
"""""""
none

View File

@ -263,6 +263,7 @@ accelerated styles exist.
* :doc:`lj/long/tip4p/long <pair_lj_long>` - long-range LJ and long-range Coulomb for TIP4P water
* :doc:`lj/mdf <pair_mdf>` - LJ potential with a taper function
* :doc:`lj/relres <pair_lj_relres>` - LJ using multiscale Relative Resolution (RelRes) methodology :ref:`(Chaimovich) <Chaimovich2>`.
* :doc:`lj/sphere <pair_lj_sphere>` - LJ where per-atom radius is used as LJ sigma
* :doc:`lj/spica <pair_spica>` - LJ for SPICA coarse-graining
* :doc:`lj/spica/coul/long <pair_spica>` - LJ for SPICA coarse-graining with long-range Coulomb
* :doc:`lj/spica/coul/msm <pair_spica>` - LJ for SPICA coarse-graining with long-range Coulomb via MSM