From 012d5a55bf34407ccc0226f930195f47d57c62f0 Mon Sep 17 00:00:00 2001 From: Agilio Padua Date: Wed, 23 Jan 2019 12:02:23 +0000 Subject: [PATCH 1/2] Consolidated doc for soft pair styles --- .../{pair_lj_soft.txt => pair_fep_soft.txt} | 38 +++++++++++++++---- 1 file changed, 30 insertions(+), 8 deletions(-) rename doc/src/{pair_lj_soft.txt => pair_fep_soft.txt} (86%) diff --git a/doc/src/pair_lj_soft.txt b/doc/src/pair_fep_soft.txt similarity index 86% rename from doc/src/pair_lj_soft.txt rename to doc/src/pair_fep_soft.txt index 4e400d1c0a..df013f0c9c 100644 --- a/doc/src/pair_lj_soft.txt +++ b/doc/src/pair_fep_soft.txt @@ -16,7 +16,10 @@ pair_style lj/cut/tip4p/long/soft command :h3 pair_style lj/cut/tip4p/long/soft/omp command :h3 pair_style lj/charmm/coul/long/soft command :h3 pair_style lj/charmm/coul/long/soft/omp command :h3 -pair_style coul/cut/soft command :h3 +pair_style lj/class2/soft command :h3 +pair_style lj/class2/coul/cut/soft command :h3 +pair_style lj/class2/coul/long/soft command :h3 + pair_style coul/cut/soft command :h3 pair_style coul/cut/soft/omp command :h3 pair_style coul/long/soft command :h3 pair_style coul/long/soft/omp command :h3 @@ -27,7 +30,9 @@ pair_style tip4p/long/soft/omp command :h3 pair_style style args :pre -style = {lj/cut/soft} or {lj/cut/coul/cut/soft} or {lj/cut/coul/long/soft} or {lj/cut/tip4p/long/soft} or {lj/charmm/coul/long/soft} or {coul/cut/soft} or {coul/long/soft} or {tip4p/long/soft} +style = {lj/cut/soft} or {lj/cut/coul/cut/soft} or {lj/cut/coul/long/soft} or +{lj/cut/tip4p/long/soft} or {lj/charmm/coul/long/soft} or {lj/class2/soft} or {lj/class2/coul/cut/soft} or {lj/class2/coul/long/soft} or {coul/cut/soft} or +{coul/long/soft} or {tip4p/long/soft} args = list of arguments for a particular style :ul {lj/cut/soft} args = n alpha_lj cutoff n, alpha_LJ = parameters of soft-core potential @@ -51,6 +56,17 @@ args = list of arguments for a particular style :ul n, alpha_LJ, alpha_C = parameters of the soft-core potential inner, outer = global switching cutoffs for LJ (and Coulombic if only 5 args) cutoff = global cutoff for Coulombic (optional, outer is Coulombic cutoff if only 5 args) + {lj/class2/soft} args = n alpha_lj cutoff + n, alpha_LJ = parameters of soft-core potential + cutoff = global cutoff for Lennard-Jones interactions (distance units) + {lj/class2/coul/cut/soft} args = n alpha_LJ alpha_C cutoff (cutoff2) + n, alpha_LJ, alpha_C = parameters of soft-core potential + cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) + cutoff2 = global cutoff for Coulombic (optional) (distance units) + {lj/class2/coul/long/soft} args = n alpha_LJ alpha_C cutoff (cutoff2) + n, alpha_LJ, alpha_C = parameters of soft-core potential + cutoff = global cutoff for LJ (and Coulombic if only 1 arg) (distance units) + cutoff2 = global cutoff for Coulombic (optional) (distance units) {coul/cut/soft} args = n alpha_C cutoff n, alpha_C = parameters of the soft-core potential cutoff = global cutoff for Coulomb interactions (distance units) @@ -103,10 +119,13 @@ pair_coeff 1 1 1.0 9.5 :pre [Description:] -The {lj/cut/soft} style and sub-styles compute the 12/6 Lennard-Jones -and Coulomb potential modified by a soft core, in order to avoid -singularities during free energy calculations when sites are created -or annihilated "(Beutler)"_#Beutler, +The {lj/cut/soft} style and sub-styles compute the 12/6 or 9/6 Lennard-Jones and +Coulomb potentials modified by a soft core, in order to avoid singularities +during free energy calculations when sites are created or annihilated +"(Beutler)"_#Beutler. These pair styles are suited for "alchemical" free energy +calculations using the "fix adapt/fep"_fix_adapt_fep.html and "compute +fep"_compute_fep.html commands. For example, the 12-6 Lennard-Jones modified +with a soft core has functional form :c,image(Eqs/pair_lj_soft.jpg) @@ -131,7 +150,7 @@ The parameters n, alpha_LJ and alpha_C are set in the "pair_style"_pair_style.html command, before the cutoffs. Usual choices for the exponent are n = 2 or n = 1. For the remaining coefficients alpha_LJ = 0.5 and alpha_C = 10 Angstrom^2 are -appropriate choices. Plots of the LJ and Coulomb terms are shown +appropriate choices. Plots of the 12/6 LJ and Coulomb terms are shown below, for lambda ranging from 1 to 0 every 0.1. :image(JPG/lj_soft.jpg),image(JPG/coul_soft.jpg) @@ -179,6 +198,9 @@ before the optional eps14 and sigma14). The parameters n, alpha_LJ and alpha_C are set in the "pair_style"_pair_style.html command, before the cutoffs. +Style {lj/class2/soft} implements a soft-core version of the 9/6 potential used +in the COMPASS class2 force field. + The {coul/cut/soft}, {coul/long/soft} and {tip4p/long/soft} sub-styles are designed to be combined with other pair potentials via the "pair_style hybrid/overlay"_pair_hybrid.html command. This is because @@ -259,7 +281,7 @@ similar sub-style can be used via the :line All of the plain {soft} pair styles are part of the USER-FEP package. -The {long} styles also requires the KSPACE package to be installed. +The {long} styles also require the KSPACE package to be installed. They are only enabled if LAMMPS was built with those packages. See the "Build package"_Build_package.html doc page for more info. From 0bfb34389b6e91641f0dbf744095921c8cd9d131 Mon Sep 17 00:00:00 2001 From: Agilio Padua Date: Wed, 23 Jan 2019 20:56:54 +0100 Subject: [PATCH 2/2] Consolidated doc of soft-core pair styles --- doc/src/compute_fep.txt | 43 +++++--- doc/src/fix_adapt_fep.txt | 35 +++++-- doc/src/pair_class2.txt | 10 +- doc/src/pair_fep_soft.txt | 214 ++++++++++++++++++++++++-------------- doc/src/pair_lj.txt | 8 ++ doc/src/pair_lj_long.txt | 8 ++ doc/src/pair_morse.txt | 38 ++----- 7 files changed, 221 insertions(+), 135 deletions(-) diff --git a/doc/src/compute_fep.txt b/doc/src/compute_fep.txt index 5b3a6915dd..772b464d18 100644 --- a/doc/src/compute_fep.txt +++ b/doc/src/compute_fep.txt @@ -128,24 +128,39 @@ commands to be changed, if the pair style supports it. The {pstyle} argument is the name of the pair style. For example, {pstyle} could be specified as "lj/cut". The {pparam} argument is the -name of the parameter to change. This is a (non-exclusive) list of +name of the parameter to change. This is a list of pair styles and parameters that can be used with this compute. See the doc pages for individual pair styles and their energy formulas for the meaning of these parameters: -"lj/cut"_pair_lj.html: epsilon,sigma: type pairs: -"lj/cut/coul/cut"_pair_lj.html: epsilon,sigma: type pairs: -"lj/cut/coul/long"_pair_lj.html: epsilon,sigma: type pairs: -"lj/cut/soft"_pair_lj_soft.html: epsilon,sigma,lambda: type pairs: -"coul/cut/soft"_pair_lj_soft.html: lambda: type pairs: -"coul/long/soft"_pair_lj_soft.html: lambda: type pairs: -"lj/cut/coul/cut/soft"_pair_lj_soft.html: epsilon,sigma,lambda: type pairs: -"lj/cut/coul/long/soft"_pair_lj_soft.html: epsilon,sigma,lambda: type pairs: -"lj/cut/tip4p/long/soft"_pair_lj_soft.html: epsilon,sigma,lambda: type pairs: -"tip4p/long/soft"_pair_lj_soft.html: lambda: type pairs: -"lj/charmm/coul/long/soft"_pair_lj_soft.html: epsilon,sigma,lambda: type pairs: "born"_pair_born.html: a,b,c: type pairs: -"buck"_pair_buck.html: a,c : type pairs :tb(c=3,s=:) +"buck"_pair_buck.html: a,c: type pairs: +"buck/mdf"_pair_mdf.html: aparm,cparm: type pairs: +"coul/cut"_pair_coul.html: scale: type pairs: +"coul/cut/soft"_pair_lj_soft.html: lambda: type pairs: +"coul/long, coul/msm"_pair_coul.html: scale: type pairs: +"coul/long/soft"_pair_lj_soft.html: scale, lambda: type pairs: +"eam"_pair_eam.html: scale: type pairs: +"gauss"_pair_gauss.html: a: type pairs: +"lennard/mdf"_pair_mdf.html: aparm,bparm: type pairs: +"lj/class2"_pair_class2.html: epsilon,sigma: type pairs: +"lj/class2/coul/cut, lj/class2/coul/long"_pair_class2.html: epsilon,sigma: type pairs: +"lj/cut"_pair_lj.html: epsilon,sigma: type pairs: +"lj/cut/soft"_pair_lj_soft.html: epsilon,sigma,lambda: type pairs: +"lj/cut/coul/cut, lj/cut/coul/long, lj/cut/coul/msm"_pair_lj.html: epsilon,sigma: type pairs: +"lj/cut/coul/cut/soft, lj/cut/coul/long/soft"_pair_lj_soft.html: epsilon,sigma,lambda: type pairs: +"lj/cut/tip4p/cut, lj/cut/tip4p/long"_pair_lj.html: epsilon,sigma: type pairs: +"lj/cut/tip4p/long/soft"_pair_lj_soft.html: epsilon,sigma,lambda: type pairs: +"lj/expand"_pair_lj_expand.html: epsilon,sigma,delta: type pairs: +"lj/mdf"_pair_mdf.html: epsilon,sigma: type pairs: +"lj/sf/dipole/sf"_pair_dipole.html: epsilon,sigma,scale: type pairs: +"mie/cut"_pair_mie.html: epsilon,sigma,gamR,gamA: type pairs: +"morse, morse/smooth/linear"_pair_morse.html: d0,r0,alpha: type pairs: +"morse/soft"_pair_morse.html: d0,r0,alpha,lambda: type pairs: +"nm/cut"_pair_nm.html: e0,r0,nn,mm: type pairs: +"nm/cut/coul/cut, nm/cut/coul/long"_pair_nm.html: e0,r0,nn,mm: type pairs: +"ufm"_pair_ufm.html: epsilon,sigma,scale: type pairs: +"soft"_pair_soft.html: a: type pairs :tb(c=3,s=:) Note that it is easy to add new potentials and their parameters to this list. All it typically takes is adding an extract() method to @@ -236,7 +251,7 @@ package"_Build_package.html doc page for more info. [Related commands:] "fix adapt/fep"_fix_adapt_fep.html, "fix ave/time"_fix_ave_time.html, -"pair_style lj/soft/coul/soft"_pair_lj_soft.html +"pair_fep_soft"_pair_fep_soft.html [Default:] diff --git a/doc/src/fix_adapt_fep.txt b/doc/src/fix_adapt_fep.txt index 7e30a1d29d..21cf089a9f 100644 --- a/doc/src/fix_adapt_fep.txt +++ b/doc/src/fix_adapt_fep.txt @@ -114,24 +114,37 @@ styles and their energy formulas for the meaning of these parameters: "born"_pair_born.html: a,b,c: type pairs: "buck"_pair_buck.html: a,c: type pairs: +"buck/mdf"_pair_mdf.html: aparm,cparm: type pairs: "coul/cut"_pair_coul.html: scale: type pairs: -"coul/debye"_pair_coul.html: scale: type pairs: -"coul/long"_pair_coul.html: scale: type pairs: -"lj/cut"_pair_lj.html: epsilon,sigma: type pairs: -"lj/expand"_pair_lj_expand.html: epsilon,sigma,delta: type pairs: -"lubricate"_pair_lubricate.html: mu: global: +"coul/cut/soft"_pair_lj_soft.html: lambda: type pairs: +"coul/long, coul/msm"_pair_coul.html: scale: type pairs: +"coul/long/soft"_pair_lj_soft.html: scale, lambda: type pairs: +"eam"_pair_eam.html: scale: type pairs: "gauss"_pair_gauss.html: a: type pairs: +"lennard/mdf"_pair_mdf.html: aparm,bparm: type pairs: +"lj/class2"_pair_class2.html: epsilon,sigma: type pairs: +"lj/class2/coul/cut, lj/class2/coul/long"_pair_class2.html: epsilon,sigma: type pairs: +"lj/cut"_pair_lj.html: epsilon,sigma: type pairs: +"lj/cut/soft"_pair_lj_soft.html: epsilon,sigma,lambda: type pairs: +"lj/cut/coul/cut, lj/cut/coul/long, lj/cut/coul/msm"_pair_lj.html: epsilon,sigma: type pairs: +"lj/cut/coul/cut/soft, lj/cut/coul/long/soft"_pair_lj_soft.html: epsilon,sigma,lambda: type pairs: +"lj/cut/tip4p/cut, lj/cut/tip4p/long"_pair_lj.html: epsilon,sigma: type pairs: +"lj/cut/tip4p/long/soft"_pair_lj_soft.html: epsilon,sigma,lambda: type pairs: +"lj/expand"_pair_lj_expand.html: epsilon,sigma,delta: type pairs: +"lj/mdf"_pair_mdf.html: epsilon,sigma: type pairs: +"lj/sf/dipole/sf"_pair_dipole.html: epsilon,sigma,scale: type pairs: +"mie/cut"_pair_mie.html: epsilon,sigma,gamR,gamA: type pairs: +"morse, morse/smooth/linear"_pair_morse.html: d0,r0,alpha: type pairs: +"morse/soft"_pair_morse.html: d0,r0,alpha,lambda: type pairs: +"nm/cut"_pair_nm.html: e0,r0,nn,mm: type pairs: +"nm/cut/coul/cut, nm/cut/coul/long"_pair_nm.html: e0,r0,nn,mm: type pairs: +"ufm"_pair_ufm.html: epsilon,sigma,scale: type pairs: "soft"_pair_soft.html: a: type pairs :tb(c=3,s=:) NOTE: It is easy to add new potentials and their parameters to this list. All it typically takes is adding an extract() method to the pair_*.cpp file associated with the potential. -Some parameters are global settings for the pair style, e.g. the -viscosity setting "mu" for "pair_style lubricate"_pair_lubricate.html. -Other parameters apply to atom type pairs within the pair style, -e.g. the prefactor "a" for "pair_style soft"_pair_soft.html. - Note that for many of the potentials, the parameter that can be varied is effectively a prefactor on the entire energy expression for the potential, e.g. the lj/cut epsilon. The parameters listed as "scale" @@ -253,7 +266,7 @@ minimization"_minimize.html. [Related commands:] "compute fep"_compute_fep.html, "fix adapt"_fix_adapt.html, "compute -ti"_compute_ti.html +ti"_compute_ti.html, "pair_fep_soft"_pair_fep_soft.html [Default:] diff --git a/doc/src/pair_class2.txt b/doc/src/pair_class2.txt index 5fc42e78f9..8d4aa48602 100644 --- a/doc/src/pair_class2.txt +++ b/doc/src/pair_class2.txt @@ -99,6 +99,14 @@ cutoff distance. :line +A version of these styles with a soft core, {lj/cut/soft}, suitable for use in +free energy calculations, is part of the USER-FEP package and is documented with +the "pair_fep_soft"_pair_fep_soft.html styles. The version with soft core is +only available if LAMMPS was built with that package. See the "Build +package"_Build_package.html doc page for more info. + +:line + 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 @@ -159,7 +167,7 @@ package"_Build_package.html doc page for more info. [Related commands:] -"pair_coeff"_pair_coeff.html +"pair_coeff"_pair_coeff.html, "pair_fep_soft"_pair_fep_soft.html [Default:] none diff --git a/doc/src/pair_fep_soft.txt b/doc/src/pair_fep_soft.txt index df013f0c9c..864aebdedd 100644 --- a/doc/src/pair_fep_soft.txt +++ b/doc/src/pair_fep_soft.txt @@ -25,14 +25,12 @@ pair_style coul/long/soft command :h3 pair_style coul/long/soft/omp command :h3 pair_style tip4p/long/soft command :h3 pair_style tip4p/long/soft/omp command :h3 - +pair_style morse/soft command :h3 [Syntax:] pair_style style args :pre -style = {lj/cut/soft} or {lj/cut/coul/cut/soft} or {lj/cut/coul/long/soft} or -{lj/cut/tip4p/long/soft} or {lj/charmm/coul/long/soft} or {lj/class2/soft} or {lj/class2/coul/cut/soft} or {lj/class2/coul/long/soft} or {coul/cut/soft} or -{coul/long/soft} or {tip4p/long/soft} +style = {lj/cut/soft} or {lj/cut/coul/cut/soft} or {lj/cut/coul/long/soft} or {lj/cut/tip4p/long/soft} or {lj/charmm/coul/long/soft} or {lj/class2/soft} or {lj/class2/coul/cut/soft} or {lj/class2/coul/long/soft} or {coul/cut/soft} or {coul/long/soft} or {tip4p/long/soft} or {morse/soft} args = list of arguments for a particular style :ul {lj/cut/soft} args = n alpha_lj cutoff n, alpha_LJ = parameters of soft-core potential @@ -79,6 +77,10 @@ args = list of arguments for a particular style :ul qdist = distance from O atom to massless charge (distance units) n, alpha_C = parameters of the soft-core potential cutoff = global cutoff for Coulomb interactions (distance units) + {morse/soft} args = n lf cutoff + n = soft-core parameter + lf = transformation range is lf < lambda < 1 + cutoff = global cutoff for Morse interactions (distance units) :pre [Examples:] @@ -109,6 +111,12 @@ pair_style lj/charmm/coul/long 2.0 0.5 10.0 8.0 10.0 9.0 pair_coeff * * 0.28 3.1 1.0 pair_coeff 1 1 0.28 3.1 1.0 0.14 3.1 :pre +pair_style lj/class2/coul/long/soft 2.0 0.5 10.0 9.5 +pair_style lj/class2/coul/long/soft 2.0 0.5 10.0 9.5 9.5 +pair_coeff * * 0.28 3.1 1.0 +pair_coeff 1 1 0.28 3.1 0.0 10.0 +pair_coeff 1 1 0.28 3.1 0.0 10.0 9.5 :pre + pair_style coul/long/soft 1.0 10.0 9.5 pair_coeff * * 1.0 pair_coeff 1 1 1.0 9.5 :pre @@ -117,20 +125,31 @@ pair_style tip4p/long/soft 1 2 7 8 0.15 2.0 0.5 10.0 9.8 pair_coeff * * 1.0 pair_coeff 1 1 1.0 9.5 :pre +pair_style morse/soft 4 0.9 10.0 +pair_coeff * * 100.0 2.0 1.5 1.0 +pair_coeff 1 1 100.0 2.0 1.5 1.0 3.0 :pre + [Description:] -The {lj/cut/soft} style and sub-styles compute the 12/6 or 9/6 Lennard-Jones and -Coulomb potentials modified by a soft core, in order to avoid singularities -during free energy calculations when sites are created or annihilated -"(Beutler)"_#Beutler. These pair styles are suited for "alchemical" free energy -calculations using the "fix adapt/fep"_fix_adapt_fep.html and "compute -fep"_compute_fep.html commands. For example, the 12-6 Lennard-Jones modified -with a soft core has functional form +These pair styles have a soft repulsive core, tuneable by a parameter lambda, +in order to avoid singularities during free energy calculations when sites are +created or annihilated "(Beutler)"_#Beutler. When lambda tends to 0 the pair +interaction vanishes with a soft repulsive core. When lambda tends to 1, the pair +interaction approaches the normal, non-soft potential. These pair styles +are suited for "alchemical" free energy calculations using the "fix +adapt/fep"_fix_adapt_fep.html and "compute fep"_compute_fep.html commands. + +The {lj/cut/soft} style and related sub-styles compute the 12-6 Lennard-Jones +and Coulomb potentials modified by a soft core, with the functional form :c,image(Eqs/pair_lj_soft.jpg) -Coulomb interactions are also damped with a soft core at short -distance, +The {lj/class2/soft} style is a 9-6 potential with the exponent of the +denominator of the first term in brackets taking the value 1.5 instead of 2 +(other details differ, see the form of the potential in +"pair_class2"_pair_class2.html). + +Coulomb interactions can also be damped with a soft core at short distance, :c,image(Eqs/pair_coul_soft.jpg) @@ -138,34 +157,32 @@ In the Coulomb part C is an energy-conversion constant, q_i and q_j are the charges on the 2 atoms, and epsilon is the dielectric constant which can be set by the "dielectric"_dielectric.html command. -The coefficient lambda is an activation parameter. When lambda = 1 the -pair potential is identical to a Lennard-Jones term or a Coulomb term -or a combination of both. When lambda = 0 the interactions are -deactivated. The transition between these two extrema is smoothed by a -soft repulsive core in order to avoid singularities in potential -energy and forces when sites are created or annihilated and can overlap -"(Beutler)"_#Beutler. +The coefficient lambda is an activation parameter. When lambda = 1 the pair +potential is identical to a Lennard-Jones term or a Coulomb term or a +combination of both. When lambda = 0 the interactions are deactivated. The +transition between these two extrema is smoothed by a soft repulsive core in +order to avoid singularities in potential energy and forces when sites are +created or annihilated and can overlap "(Beutler)"_#Beutler. The parameters n, alpha_LJ and alpha_C are set in the -"pair_style"_pair_style.html command, before the cutoffs. Usual -choices for the exponent are n = 2 or n = 1. For the remaining -coefficients alpha_LJ = 0.5 and alpha_C = 10 Angstrom^2 are -appropriate choices. Plots of the 12/6 LJ and Coulomb terms are shown -below, for lambda ranging from 1 to 0 every 0.1. +"pair_style"_pair_style.html command, before the cutoffs. Usual choices for the +exponent are n = 2 or n = 1. For the remaining coefficients alpha_LJ = 0.5 and +alpha_C = 10 Angstrom^2 are appropriate choices. Plots of the 12/6 LJ and +Coulomb terms are shown below, for lambda ranging from 1 to 0 every 0.1. :image(JPG/lj_soft.jpg),image(JPG/coul_soft.jpg) :c -For the {lj/cut/coul/cut/soft} or {lj/cut/coul/long/soft} pair styles, -the following coefficients must be defined for each pair of atoms -types via the "pair_coeff"_pair_coeff.html command as in the examples -above, or in the data file or restart files read by the -"read_data"_read_data.html or "read_restart"_read_restart.html -commands, or by mixing as described below: +For the {lj/cut/coul/cut/soft} or {lj/cut/coul/long/soft} pair styles, as well +as for the equivalent {class2} versions, the following coefficients must be +defined for each pair of atoms types via the "pair_coeff"_pair_coeff.html +command as in the examples above, or in the data file or restart files read by +the "read_data"_read_data.html or "read_restart"_read_restart.html commands, or +by mixing as described below: epsilon (energy units) sigma (distance units) -lambda (activation parameter between 0 and 1) +lambda (activation parameter, between 0 and 1) cutoff1 (distance units) cutoff2 (distance units) :ul @@ -179,27 +196,29 @@ since it has no Coulombic terms. For the {coul/cut/soft} and {coul/long/soft} only lambda and the optional cutoff2 are to be specified. -Style {lj/cut/tip4p/long/soft} implements a soft-core version of the -TIP4P water model. The usage of this pair style is documented in the -"pair_lj"_pair_lj.html styles. The soft-core version introduces the -lambda parameter to the list of arguments, after epsilon and sigma in -the "pair_coeff"_pair_coeff.html command. The parameters n, alpha_LJ -and alpha_C are set in the "pair_style"_pair_style.html command, -before the cutoffs. +Style {lj/cut/tip4p/long/soft} implements a soft-core version of the TIP4P water +model. The usage of the TIP4P pair style is documented in the +"pair_lj"_pair_lj.html styles. In the soft version the parameters n, alpha_LJ +and alpha_C are set in the "pair_style"_pair_style.html command, after the +specific parameters of the TIP4P water model and before the cutoffs. The +activation parameter lambda is supplied as an argument of the the +"pair_coeff"_pair_coeff.html command, after epsilon and sigma and before the +optional cutoffs. -Style {lj/charmm/coul/long/soft} implements a soft-core version of the -CHARMM version of LJ interactions with an additional switching -function S(r) that ramps the energy and force smoothly to zero between -an inner and outer cutoff. The usage of this pair style is documented -in the "pair_charmm"_pair_charmm.html styles. The soft-core version -introduces the lambda parameter to the list of arguments, after -epsilon and sigma in the "pair_coeff"_pair_coeff.html command (and -before the optional eps14 and sigma14). The parameters n, -alpha_LJ and alpha_C are set in the "pair_style"_pair_style.html -command, before the cutoffs. +Style {lj/charmm/coul/long/soft} implements a soft-core version of the modified +12-6 LJ potential used in CHARMM and documented in the +"pair_lj_charmm"_pair_charmm.html style. In the soft version the parameters n, +alpha_LJ and alpha_C are set in the "pair_style"_pair_style.html command, before +the global cutoffs. The activation parameter lambda is introduced as an argument +of the the "pair_coeff"_pair_coeff.html command, after epsilon and sigma and +before the optional eps14 and sigma14. -Style {lj/class2/soft} implements a soft-core version of the 9/6 potential used -in the COMPASS class2 force field. +Style {lj/class2/soft} implements a soft-core version of the 9-6 potential in +"pair_class2"_pair_class2.html. In the soft version the parameters n, alpha_LJ +and alpha_C are set in the "pair_style"_pair_style.html command, before the +global cutoffs. The activation parameter lambda is introduced as an argument of +the the "pair_coeff"_pair_coeff.html command, after epsilon and sigma and before +the optional cutoffs. The {coul/cut/soft}, {coul/long/soft} and {tip4p/long/soft} sub-styles are designed to be combined with other pair potentials via the @@ -211,7 +230,7 @@ occur. These sub-styles are suitable to represent charges embedded in the Lennard-Jones radius of another site (for example hydrogen atoms in several water models). -NOTES: When using the soft-core Coulomb potentials with long-range +NOTE: When using the soft-core Coulomb potentials with long-range solvers ({coul/long/soft}, {lj/cut/coul/long/soft}, etc.) in a free energy calculation in which sites holding electrostatic charges are being created or annihilated (using "fix adapt/fep"_fix_adapt_fep.html @@ -224,6 +243,31 @@ Waals site is present during the free-energy route, thus avoiding overlap of the charges. Examples are provided in the LAMMPS source directory tree, under examples/USER/fep. +NOTE: To avoid division by zero do not set sigma = 0 in the {lj/cut/soft} and +related styles; use the lambda parameter instead to activate/deactivate +interactions, or use epsilon = 0 and sigma = 1. Alternatively, when sites do not +interact though the Lennard-Jones term the {coul/long/soft} or similar sub-style +can be used via the "pair_style hybrid/overlay"_pair_hybrid.html command. + +:line + +The {morse/soft} variant modifies the "pair_morse"_pair_morse.html style at +short range to have a soft core. The functional form differs from that of the +{lj/soft} styles, and is instead given by: + +:c,image(Eqs/pair_morse_soft.jpg) + +The {morse/soft} style requires the following pair coefficients: + +D0 (energy units) +alpha (1/distance units) +r0 (distance units) +lambda (unitless, between 0.0 and 1.0) +cutoff (distance units) :ul + +The last coefficient is optional. If not specified, the global morse cutoff is +used. + :line Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are @@ -250,40 +294,56 @@ instructions on how to use the accelerated styles effectively. [Mixing, shift, tail correction, restart info]: -For atom type pairs I,J and I != J, the epsilon and sigma coefficients -and cutoff distance for this pair style can be mixed. -The default mix value is {geometric}. See the "pair_modify" command -for details. +The different versions of the {lj/cut/soft} pair styles support mixing. For atom +type pairs I,J and I != J, the epsilon and sigma coefficients and cutoff +distance for these pair style can be mixed. The default mix value is +{geometric} for 12-6 styles. -These pair styles support the "pair_modify"_pair_modify.html shift -option for the energy of the Lennard-Jones portion of the pair +The mixing rule for epsilon and sigma for {lj/class2/soft} 9-6 potentials is to use the +{sixthpower} formulas. The "pair_modify mix"_pair_modify.html setting is thus +ignored for class2 potentials for epsilon and sigma. However it is still +followed for mixing the cutoff distance. See the "pair_modify"_pair_modify.html +command for details. + +The {morse/soft} pair style does not support mixing. Thus, coefficients for all +LJ pairs must be specified explicitly. + +All of the pair styles with soft core support the "pair_modify"_pair_modify.html +shift option for the energy of the Lennard-Jones portion of the pair interaction. -These pair styles support the "pair_modify"_pair_modify.html tail -option for adding a long-range tail correction to the energy and -pressure for the Lennard-Jones portion of the pair interaction. +The different versions of the {lj/cut/soft} pair styles support the +"pair_modify"_pair_modify.html tail option for adding a long-range tail +correction to the energy and pressure for the Lennard-Jones portion of the pair +interaction. -These pair styles write information to "binary restart -files"_restart.html, so pair_style and pair_coeff commands do not need -to be specified in an input script that reads a restart file. +NOTE: The analytical form of the tail corrections for energy and pressure used +in the {lj/cut/soft} potentials are approximate, being identical to that of the +corresponding non-soft potentials scaled by a factor lambda^n. For real-space +cutoffs greater than 2.5 sigma and alpha_LJ = 0.5, the error affecting the tail +correction is below 0.2% when lambda = 0 (worse case). This error disappears as +lambda approaches 1. Note that this is the error affecting the long-range tail +(itself a correction to the interaction energy) which includes other +approximations, namely that the system is homogenous (local density equal the +average density) beyond the cutoff. + +The {morse/soft} pair style does not support the "pair_modify"_pair_modify.html +tail option for adding long-range tail corrections to energy and pressure. + +All of these pair styles write information to "binary restart +files"_restart.html, so pair_style and pair_coeff commands do not need to be +specified in an input script that reads a restart file. :line [Restrictions:] -To avoid division by zero do not set sigma = 0; use the lambda -parameter instead to activate/deactivate interactions, or use -epsilon = 0 and sigma = 1. Alternatively, when sites do not -interact though the Lennard-Jones term the {coul/long/soft} or -similar sub-style can be used via the -"pair_style hybrid/overlay"_pair_hybrid.html command. - -:line - -All of the plain {soft} pair styles are part of the USER-FEP package. -The {long} styles also require the KSPACE package to be installed. -They are only enabled if LAMMPS was built with those packages. See -the "Build package"_Build_package.html doc page for more info. +The pair styles with soft core are only enabled if LAMMPS was built with the +USER-FEP package. The {long} versions also require the KSPACE package to be +installed. The soft {tip4p} versions also require the MOLECULE package to be +installed. These styles are only enabled if LAMMPS was built with those +packages. See the "Build package"_Build_package.html doc page for more +info. Note that the KSPACE and MOLECULE packages are installed by default. [Related commands:] diff --git a/doc/src/pair_lj.txt b/doc/src/pair_lj.txt index 40730d67a7..1da2988df8 100644 --- a/doc/src/pair_lj.txt +++ b/doc/src/pair_lj.txt @@ -260,6 +260,14 @@ pair_style command. :line +A version of these styles with a soft core, {lj/cut/soft}, suitable for use in +free energy calculations, is part of the USER-FEP package and is documented with +the "pair_fep_soft"_pair_fep_soft.html styles. The version with soft core is +only available if LAMMPS was built with that package. See the "Build +package"_Build_package.html doc page for more info. + +:line + 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 diff --git a/doc/src/pair_lj_long.txt b/doc/src/pair_lj_long.txt index 9f95fc0347..bc6b78f108 100644 --- a/doc/src/pair_lj_long.txt +++ b/doc/src/pair_lj_long.txt @@ -154,6 +154,14 @@ specified in the pair_style command. :line +A version of these styles with a soft core, {lj/cut/soft}, suitable for use in +free energy calculations, is part of the USER-FEP package and is documented with +the "pair_fep_soft"_pair_fep_soft.html styles. The version with soft core is +only available if LAMMPS was built with that package. See the "Build +package"_Build_package.html doc page for more info. + +:line + 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 diff --git a/doc/src/pair_morse.txt b/doc/src/pair_morse.txt index 68894f6913..7faa6ab785 100644 --- a/doc/src/pair_morse.txt +++ b/doc/src/pair_morse.txt @@ -12,7 +12,6 @@ pair_style morse/omp command :h3 pair_style morse/opt command :h3 pair_style morse/smooth/linear command :h3 pair_style morse/smooth/linear/omp command :h3 -pair_style morse/soft command :h3 pair_style morse/kk command :h3 [Syntax:] @@ -25,10 +24,6 @@ args = list of arguments for a particular style :ul cutoff = global cutoff for Morse interactions (distance units) {morse/smooth/linear} args = cutoff cutoff = global cutoff for Morse interactions (distance units) - {morse/soft} args = n lf cutoff - n = soft-core parameter - lf = transformation range is lf < lambda < 1 - cutoff = global cutoff for Morse interactions (distance units) :pre [Examples:] @@ -38,10 +33,6 @@ pair_style morse/smooth/linear 2.5 pair_coeff * * 100.0 2.0 1.5 pair_coeff 1 1 100.0 2.0 1.5 3.0 :pre -pair_style morse/soft 4 0.9 10.0 -pair_coeff * * 100.0 2.0 1.5 1.0 -pair_coeff 1 1 100.0 2.0 1.5 1.0 3.0 :pre - [Description:] Style {morse} computes pairwise interactions with the formula @@ -77,24 +68,11 @@ the {morse} and {morse/smooth/linear} styles. :line -The {morse/soft} variant is similar to the {lj/cut/soft} pair style -in that it modifies the potential at short range to have a soft core. -This helps to avoid singularities during free energy calculation in -which sites are created or annihilated. The formula differs from that -of {lj/cut/soft}, and is instead given by: - -:c,image(Eqs/pair_morse_soft.jpg) - -The {morse/soft} style requires the following pair coefficients: - -D0 (energy units) -alpha (1/distance units) -r0 (distance units) -lamda (unitless, between 0.0 and 1.0) -cutoff (distance units) :ul - -The last coefficient is optional. If not specified, the global morse -cutoff is used. +A version of the {morse} style with a soft core, {morse/soft}, suitable for use in +free energy calculations, is part of the USER-FEP package and is documented with +the "pair_fep_soft"_pair_fep_soft.html styles. The version with soft core is only +available if LAMMPS was built with that package. See the "Build +package"_Build_package.html doc page for more info. :line @@ -151,12 +129,8 @@ The {morse/smooth/linear} pair style is only enabled if LAMMPS was built with the USER-MISC package. See the "Build package"_Build_package.html doc page for more info. -The {morse/soft} pair style is only enabled if LAMMPS was built with -the USER-FEP package. See the "Build package"_Build_package.html doc -page for more info. - [Related commands:] -"pair_coeff"_pair_coeff.html +"pair_coeff"_pair_coeff.html, "pair_fep_soft"_pair_fep_soft.html [Default:] none