changes for next patch, 2d disc options for spheres, fix external upgrade, bug fixes for fix ave/chunk for density calcs, Aidan doc page citation deconvolution

This commit is contained in:
Steve Plimpton 2017-03-21 08:56:37 -06:00
parent 145e682ad3
commit dcede304df
112 changed files with 912 additions and 534 deletions

View File

@ -165,9 +165,16 @@ Many of the example input scripts included in the LAMMPS distribution
are for 2d models.
NOTE: Some models in LAMMPS treat particles as finite-size spheres, as
opposed to point particles. In 2d, the particles will still be
spheres, not disks, meaning their moment of inertia will be the same
as in 3d.
opposed to point particles. See the "atom_style
sphere"_atom_style.html and "fix nve/sphere"_fix_nve_sphere.html
commands for details. By default, for 2d simulations, such particles
will still be modeled as 3d spheres, not 2d discs (circles), meaning
their moment of inertia will be that of a sphere. If you wish to
model them as 2d discs, see the "set density/disc"_set.html command
and the {disc} option for the "fix nve/sphere"_fix_nve_sphere.html,
"fix nvt/sphere"_fix_nvt_sphere.html, "fix
nph/sphere"_fix_nph_sphere.html, "fix npt/sphere"_fix_npt_sphere.html
commands.
:line
@ -434,6 +441,12 @@ computations between frozen atoms by using this command:
"neigh_modify"_neigh_modify.html exclude :ul
NOTE: By default, for 2d systems, granular particles are still modeled
as 3d spheres, not 2d discs (circles), meaning their moment of inertia
will be the same as in 3d. If you wish to model granular particles in
2d as 2d discs, see the note on this topic in "Section
6.2"_Section_howto.html#howto_2, where 2d simulations are disussed.
:line
6.7 TIP3P water model :link(howto_7),h4
@ -451,7 +464,7 @@ atoms and the water molecule to run a rigid TIP3P-CHARMM model with a
cutoff. The K values can be used if a flexible TIP3P model (without
fix shake) is desired. If the LJ epsilon and sigma for HH and OH are
set to 0.0, it corresponds to the original 1983 TIP3P model
"(Jorgensen)"_#Jorgensen.
"(Jorgensen)"_#Jorgensen1.
O mass = 15.9994
H mass = 1.008
@ -469,7 +482,7 @@ K of HOH angle = 55
theta of HOH angle = 104.52 :all(b),p
These are the parameters to use for TIP3P with a long-range Coulombic
solver (e.g. Ewald or PPPM in LAMMPS), see "(Price)"_#Price for
solver (e.g. Ewald or PPPM in LAMMPS), see "(Price)"_#Price1 for
details:
O mass = 15.9994
@ -513,7 +526,7 @@ using the "fix shake"_fix_shake.html command.
These are the additional parameters (in real units) to set for O and H
atoms and the water molecule to run a rigid TIP4P model with a cutoff
"(Jorgensen)"_#Jorgensen. Note that the OM distance is specified in
"(Jorgensen)"_#Jorgensen1. Note that the OM distance is specified in
the "pair_style"_pair_style.html command, not as part of the pair
coefficients.
@ -1838,7 +1851,7 @@ the deformation must be chosen judiciously, and care must be taken to
fully equilibrate the deformed cell before sampling the stress
tensor. Another approach is to sample the triclinic cell fluctuations
that occur in an NPT simulation. This method can also be slow to
converge and requires careful post-processing "(Shinoda)"_#Shinoda
converge and requires careful post-processing "(Shinoda)"_#Shinoda1
:line
@ -2903,14 +2916,14 @@ Fischer, Gao, Guo, Ha, et al, J Phys Chem, 102, 3586 (1998).
[(Mayo)] Mayo, Olfason, Goddard III, J Phys Chem, 94, 8897-8909
(1990).
:link(Jorgensen)
:link(Jorgensen1)
[(Jorgensen)] Jorgensen, Chandrasekhar, Madura, Impey, Klein, J Chem
Phys, 79, 926 (1983).
:link(Price)
:link(Price1)
[(Price)] Price and Brooks, J Chem Phys, 121, 10096 (2004).
:link(Shinoda)
:link(Shinoda1)
[(Shinoda)] Shinoda, Shiga, and Mikami, Phys Rev B, 69, 134103 (2004).
:link(MitchellFincham)

View File

@ -39,15 +39,16 @@ authors.
The source code for each of these codes is in the tools sub-directory
of the LAMMPS distribution. There is a Makefile (which you may need
to edit for your platform) which will build several of the tools which
reside in that directory. Some of them are larger packages in their
own sub-directories with their own Makefiles.
reside in that directory. Most of them are larger packages in their
own sub-directories with their own Makefiles and/or README files.
"amber2lmp"_#amber
"binary2txt"_#binary
"ch2lmp"_#charmm
"chain"_#chain
"colvars"_#colvars
"createatoms"_#create
"createatoms"_#createtools
"drude"_#drude
"eam database"_#eamdb
"eam generate"_#eamgn
"eff"_#eff
@ -63,11 +64,11 @@ own sub-directories with their own Makefiles.
"moltemplate"_#moltemplate
"msi2lmp"_#msi
"phonon"_#phonon
"polymer bonding"_#polybond
"polybond"_#polybond
"pymol_asphere"_#pymol
"python"_#pythontools
"reax"_#reax_tool
"restart2data"_#restart
"smd"_#smd
"vim"_#vim
"xmgrace"_#xmgrace
@ -171,6 +172,19 @@ The tool is authored by Xiaowang Zhou (Sandia), xzhou at sandia.gov.
:line
drude tool :h4,link(drude)
The tools/drude directory contains a Python script called
polarizer.py which can add Drude oscillators to a LAMMPS
data file in the required format.
See the header of the polarizer.py file for details.
The tool is authored by Agilio Padua and Alain Dequidt: agilio.padua
at univ-bpclermont.fr, alain.dequidt at univ-bpclermont.fr
:line
eam database tool :h4,link(eamdb)
The tools/eam_database directory contains a Fortran program that will
@ -382,7 +396,7 @@ University.
:line
polymer bonding tool :h4,link(polybond)
polybond tool :h4,link(polybond)
The polybond sub-directory contains a Python-based tool useful for
performing "programmable polymer bonding". The Python file
@ -441,29 +455,19 @@ These tools were written by Aidan Thompson at Sandia.
:line
restart2data tool :h4,link(restart)
smd tool :h4,link(smd)
NOTE: This tool is now obsolete and is not included in the current
LAMMPS distribution. This is because there is now a
"write_data"_write_data.html command, which can create a data file
from within an input script. Running LAMMPS with the "-r"
"command-line switch"_Section_start.html#start_7 as follows:
The smd sub-directory contains a C++ file dump2vtk_tris.cpp and
Makefile which can be compiled and used to convert triangle output
files created by the Smooth-Mach Dynamics (USER-SMD) package into a
VTK-compatible unstructured grid file. It could then be read in and
visualized by VTK.
lmp_g++ -r restartfile datafile
See the header of dump2vtk.cpp for more details.
is the same as running a 2-line input script:
read_restart restartfile
write_data datafile
which will produce the same data file that the restart2data tool used
to create.
IMPORTANT NOTE: LAMMPS' binary restart files are generally not portable
between platforms, compiler settings and LAMMPS versions. Changes in
the format itself are rare, but no effort is made to maintain backward
compatibility. Data files are mostly backward and forward portable,
if no features are used that exist in only one LAMMPS version.
This tool was written by the USER-SMD package author, Georg
Ganzenmuller at the Fraunhofer-Institute for High-Speed Dynamics,
Ernst Mach Institute in Germany (georg.ganzenmueller at emi.fhg.de).
:line

View File

@ -41,7 +41,7 @@ angle.
The torque on the dipole can be obtained by differentiating the
potential using the 'chain rule' as in appendix C.3 of
"(Allen)"_#Allen:
"(Allen)"_#Allen1:
:c,image(Eqs/angle_dipole_torque.jpg)
@ -121,6 +121,6 @@ This angle style should not be used with SHAKE.
[(Orsi)] Orsi & Essex, The ELBA force field for coarse-grain modeling of
lipid membranes, PloS ONE 6(12): e28637, 2011.
:link(Allen)
:link(Allen1)
[(Allen)] Allen & Tildesley, Computer Simulation of Liquids,
Clarendon Press, Oxford, 1987.

View File

@ -110,7 +110,12 @@ basis.
For the {sphere} style, the particles are spheres and each stores a
per-particle diameter and mass. If the diameter > 0.0, the particle
is a finite-size sphere. If the diameter = 0.0, it is a point
particle.
particle. Note that by use of the {disc} keyword with the "fix
nve/sphere"_fix_nve_sphere.html, "fix nvt/sphere"_fix_nvt_sphere.html,
"fix nph/sphere"_fix_nph_sphere.html, "fix
npt/sphere"_fix_npt_sphere.html commands, spheres can be effectively
treated as 2d discs for a 2d simulation if desired. See also the "set
density/disc"_set.html command.
For the {ellipsoid} style, the particles are ellipsoids and each
stores a flag which indicates whether it is a finite-size ellipsoid or

View File

@ -148,7 +148,9 @@ described further below where the keywords are discussed.
The {binning} styles perform a spatial binning of atoms, and assign an
atom the chunk ID corresponding to the bin number it is in. {Nchunk}
is set to the number of bins, which can change if the simulation box
size changes.
size changes. This also depends on the setting of the {units}
keyword; e.g. for {reduced} units the number of chunks may not change
even if the box size does.
The {bin/1d}, {bin/2d}, and {bin/3d} styles define bins as 1d layers
(slabs), 2d pencils, or 3d boxes. The {dim}, {origin}, and {delta}

View File

@ -64,7 +64,7 @@ defined by the orientational order parameter calculated by the
"compute orientorder/atom"_compute_orientorder_atom.html command.
This {cstyle} thus allows one to apply the ten Wolde's criterion to
identify crystal-like atoms in a system, as discussed in "ten
Wolde"_#tenWolde.
Wolde"_#tenWolde1.
The ID of the previously specified "compute
orientorder/atom"_compute_orientorder/atom command is specified as
@ -127,6 +127,6 @@ explained above.
:line
:link(tenWolde)
:link(tenWolde1)
[(tenWolde)] P. R. ten Wolde, M. J. Ruiz-Montero, D. Frenkel,
J. Chem. Phys. 104, 9932 (1996).

View File

@ -64,7 +64,7 @@ command.
:line
:link(Larentzos)
:link(Larentzos1)
[(Larentzos)] J.P. Larentzos, J.K. Brennan, J.D. Moore, and
W.D. Mattson, "LAMMPS Implementation of Constant Energy Dissipative
Particle Dynamics (DPD-E)", ARL-TR-6863, U.S. Army Research

View File

@ -59,7 +59,7 @@ command.
:line
:link(Larentzos)
:link(Larentzos2)
[(Larentzos)] J.P. Larentzos, J.K. Brennan, J.D. Moore, and
W.D. Mattson, "LAMMPS Implementation of Constant Energy Dissipative
Particle Dynamics (DPD-E)", ARL-TR-6863, U.S. Army Research

View File

@ -78,7 +78,7 @@ normalized complex vector {Ybar_lm} of degree {ldegree}, which must be
explicitly included in the keyword {degrees}. This option can be used
in conjunction with "compute coord_atom"_compute_coord_atom.html to
calculate the ten Wolde's criterion to identify crystal-like
particles, as discussed in "ten Wolde"_#tenWolde.
particles, as discussed in "ten Wolde"_#tenWolde2.
The value of {Ql} is set to zero for atoms not in the
specified compute group, as well as for atoms that have less than
@ -143,6 +143,6 @@ Phys. Rev. B 28, 784 (1983).
[(Mickel)] W. Mickel, S. C. Kapfer, G. E. Schroeder-Turkand, K. Mecke,
J. Chem. Phys. 138, 044501 (2013).
:link(tenWolde)
:link(tenWolde2)
[(tenWolde)] P. R. ten Wolde, M. J. Ruiz-Montero, D. Frenkel,
J. Chem. Phys. 104, 9932 (1996).

View File

@ -49,7 +49,7 @@ pairwise interactions between 1-4 atoms. The energy contribution of
these terms is included in the pair energy, not the dihedral energy.
The KSpace contribution is calculated using the method in
"(Heyes)"_#Heyes for the Ewald method and a related method for PPPM,
"(Heyes)"_#Heyes1 for the Ewald method and a related method for PPPM,
as specified by the "kspace_style pppm"_kspace_style.html command.
For PPPM, the calculation requires 1 extra FFT each timestep that
per-atom energy is calculated. This "document"_PDF/kspace.pdf
@ -97,5 +97,5 @@ stress/atom"_compute_stress_atom.html
:line
:link(Heyes)
:link(Heyes1)
[(Heyes)] Heyes, Phys Rev B 49, 755 (1994),

View File

@ -70,7 +70,7 @@ means include all terms except the kinetic energy {ke}.
Details of how LAMMPS computes the virial efficiently for the entire
system, including for manybody potentials and accounting for the
effects of periodic boundary conditions are discussed in
"(Thompson)"_#Thompson.
"(Thompson)"_#Thompson1.
The temperature and kinetic energy tensor is not calculated by this
compute, but rather by the temperature compute specified with the
@ -150,5 +150,5 @@ stress/atom"_compute_stress_atom.html,
:line
:link(Thompson)
:link(Thompson1)
[(Thompson)] Thompson, Plimpton, Mattson, J Chem Phys, 131, 154107 (2009).

View File

@ -50,12 +50,12 @@ for each atom in a group.
Bispectrum components of an atom are order parameters characterizing
the radial and angular distribution of neighbor atoms. The detailed
mathematical definition is given in the paper by Thompson et
al. "(Thompson)"_#Thompson2014
al. "(Thompson)"_#Thompson20141
The position of a neighbor atom {i'} relative to a central atom {i} is
a point within the 3D ball of radius {R_ii' = rcutfac*(R_i + R_i')}
Bartok et al. "(Bartok)"_#Bartok2010, proposed mapping this 3D ball
Bartok et al. "(Bartok)"_#Bartok20101, proposed mapping this 3D ball
onto the 3-sphere, the surface of the unit ball in a four-dimensional
space. The radial distance {r} within {R_ii'} is mapped on to a third
polar angle {theta0} defined by,
@ -92,7 +92,7 @@ The expansion coefficients {u^j_m,m'} are complex-valued and they are
not directly useful as descriptors, because they are not invariant
under rotation of the polar coordinate frame. However, the following
scalar triple products of expansion coefficients can be shown to be
real-valued and invariant under rotation "(Bartok)"_#Bartok2010.
real-valued and invariant under rotation "(Bartok)"_#Bartok20101.
:c,image(Eqs/compute_sna_atom3.jpg)
@ -226,11 +226,11 @@ The optional keyword defaults are {diagonal} = 0, {rmin0} = 0,
:line
:link(Thompson2014)
:link(Thompson20141)
[(Thompson)] Thompson, Swiler, Trott, Foiles, Tucker, under review, preprint
available at "arXiv:1409.3880"_http://arxiv.org/abs/1409.3880
:link(Bartok2010)
:link(Bartok20101)
[(Bartok)] Bartok, Payne, Risi, Csanyi, Phys Rev Lett, 104, 136403 (2010).
:link(Meremianin2006)

View File

@ -74,7 +74,7 @@ other atoms in the simulation, not just with other atoms in the group.
Details of how LAMMPS computes the virial for individual atoms for
either pairwise or manybody potentials, and including the effects of
periodic boundary conditions is discussed in "(Thompson)"_#Thompson.
periodic boundary conditions is discussed in "(Thompson)"_#Thompson2.
The basic idea for manybody potentials is to treat each component of
the force computation between a small cluster of atoms in the same
manner as in the formula above for bond, angle, dihedral, etc
@ -89,8 +89,8 @@ pairwise interactions between 1-4 atoms. The virial contribution of
these terms is included in the pair virial, not the dihedral virial.
The KSpace contribution is calculated using the method in
"(Heyes)"_#Heyes for the Ewald method and by the methodology described
in "(Sirk)"_#Sirk for PPPM. The choice of KSpace solver is specified
"(Heyes)"_#Heyes2 for the Ewald method and by the methodology described
in "(Sirk)"_#Sirk1 for PPPM. The choice of KSpace solver is specified
by the "kspace_style pppm"_kspace_style.html command. Note that for
PPPM, the calculation requires 6 extra FFTs each timestep that
per-atom stress is calculated. Thus it can significantly increase the
@ -159,11 +159,11 @@ The per-atom array values will be in pressure*volume
:line
:link(Heyes)
:link(Heyes2)
[(Heyes)] Heyes, Phys Rev B 49, 755 (1994),
:link(Sirk)
:link(Sirk1)
[(Sirk)] Sirk, Moore, Brown, J Chem Phys, 138, 064505 (2013).
:link(Thompson)
:link(Thompson2)
[(Thompson)] Thompson, Plimpton, Mattson, J Chem Phys, 131, 154107 (2009).

View File

@ -27,7 +27,7 @@ compute core_shells all temp/cs cores shells :pre
Define a computation that calculates the temperature of a system based
on the center-of-mass velocity of atom pairs that are bonded to each
other. This compute is designed to be used with the adiabatic
core/shell model of "(Mitchell and Finchham)"_#MitchellFinchham. See
core/shell model of "(Mitchell and Finchham)"_#MitchellFinchham1. See
"Section 6.25"_Section_howto.html#howto_25 of the manual for an
overview of the model as implemented in LAMMPS. Specifically, this
compute enables correct temperature calculation and thermostatting of
@ -114,6 +114,6 @@ temp/chunk"_compute_temp_chunk.html
:line
:link(MitchellFinchham)
:link(MitchellFinchham1)
[(Mitchell and Finchham)] Mitchell, Finchham, J Phys Condensed Matter,
5, 1031-1038 (1993).

View File

@ -43,7 +43,7 @@ atoms, after subtracting out a spatially-averaged center-of-mass
velocity field, before computing the kinetic energy. This can be
useful for thermostatting a collection of atoms undergoing a complex
flow, e.g. via a profile-unbiased thermostat (PUT) as described in
"(Evans)"_#Evans. A compute of this style can be used by any command
"(Evans)"_#Evans1. A compute of this style can be used by any command
that computes a temperature, e.g. "thermo_modify"_thermo_modify.html,
"fix temp/rescale"_fix_temp_rescale.html, "fix npt"_fix_nh.html, etc.
@ -75,7 +75,7 @@ atoms (sum of 1/2 m v^2), dim = 2 or 3 = dimensionality of the
simulation, N = number of atoms in the group, k = Boltzmann constant,
and T = temperature. The dim*Nx*Ny*Nz term are degrees of freedom
subtracted to adjust for the removal of the center-of-mass velocity in
each of Nx*Ny*Nz bins, as discussed in the "(Evans)"_#Evans paper.
each of Nx*Ny*Nz bins, as discussed in the "(Evans)"_#Evans1 paper.
If the {out} keyword is used with a {tensor} value, which is the
default, a kinetic energy tensor, stored as a 6-element vector, is
@ -126,7 +126,7 @@ See "this howto section"_Section_howto.html#howto_16 of the manual for
a discussion of different ways to compute temperature and perform
thermostatting. Using this compute in conjunction with a
thermostatting fix, as explained there, will effectively implement a
profile-unbiased thermostat (PUT), as described in "(Evans)"_#Evans.
profile-unbiased thermostat (PUT), as described in "(Evans)"_#Evans1.
[Output info:]
@ -178,5 +178,5 @@ The option default is out = tensor.
:line
:link(Evans)
:link(Evans1)
[(Evans)] Evans and Morriss, Phys Rev Lett, 56, 2172-2175 (1986).

View File

@ -191,8 +191,15 @@ remain constant for the duration of the simulation. This fix forces
the chunk/atom compute specified by chunkID to hold {Nchunk} constant
for the appropriate time windows, by not allowing it to re-calculate
{Nchunk}, which can also affect how it assigns chunk IDs to atoms.
More details are given on the "compute
chunk/atom"_compute_chunk_atom.html doc page.
This is particularly important to understand if the chunks defined by
the "compute chunk/atom"_compute_chunk_atom.html command are spatial
bins. If its {units} keyword is set to {box} or {lattice}, then the
number of bins {Nchunk} and size of each bin will be fixed over the
{Nfreq} time window, which can affect which atoms are discarded if the
simulation box size changes. If its {units} keyword is set to
{reduced}, then the number of bins {Nchunk} will still be fixed, but
the size of each bin can vary at each timestep if the simulation box
size changes, e.g. for an NPT simulation.
:line
@ -290,24 +297,32 @@ It the {norm} setting is {all}, which is the default, a chunk value is
summed over all atoms in all {Nrepeat} samples, as is the count of
atoms in the chunk. The averaged output value for the chunk on the
{Nfreq} timesteps is Total-sum / Total-count. In other words it is an
average over atoms across the entire {Nfreq} timescale.
average over atoms across the entire {Nfreq} timescale. For the
{density/number} and {density/mass} values, the volume (bin volume or
system volume) used in the final normalization will be the volume at
the final {Nfreq} timestep.
If the {norm} setting is {sample}, the chunk value is summed over atoms
for each sample, as is the count, and an "average sample value" is
computed for each sample, i.e. Sample-sum / Sample-count. The output
value for the chunk on the {Nfreq} timesteps is the average of the
{Nrepeat} "average sample values", i.e. the sum of {Nrepeat} "average
sample values" divided by {Nrepeat}. In other words it is an average
of an average.
If the {norm} setting is {sample}, the chunk value is summed over
atoms for each sample, as is the count, and an "average sample value"
is computed for each sample, i.e. Sample-sum / Sample-count. The
output value for the chunk on the {Nfreq} timesteps is the average of
the {Nrepeat} "average sample values", i.e. the sum of {Nrepeat}
"average sample values" divided by {Nrepeat}. In other words it is an
average of an average. For the {density/number} and {density/mass}
values, the volume (bin volume or system volume) used in the
per-sample normalization will be the current volume at each sampling
step.
If the {norm} setting is {none}, a similar computation as for the
{sample} setting is done, except the individual "average sample values"
are "summed sample values". A summed sample value is simply the chunk
value summed over atoms in the sample, without dividing by the number
of atoms in the sample. The output value for the chunk on the
{Nfreq} timesteps is the average of the {Nrepeat} "summed sample
{sample} setting is done, except the individual "average sample
values" are "summed sample values". A summed sample value is simply
the chunk value summed over atoms in the sample, without dividing by
the number of atoms in the sample. The output value for the chunk on
the {Nfreq} timesteps is the average of the {Nrepeat} "summed sample
values", i.e. the sum of {Nrepeat} "summed sample values" divided by
{Nrepeat}.
{Nrepeat}. For the {density/number} and {density/mass} values, the
volume (bin volume or system volume) used in the per-sample sum
normalization will be the current volume at each sampling step.
The {ave} keyword determines how the per-chunk values produced every
{Nfreq} steps are averaged with values produced on previous steps that

View File

@ -70,13 +70,13 @@ mesoparticle equation of state for each particle.
:line
:link(Lisal)
:link(Lisal1)
[(Lisal)] M. Lisal, J.K. Brennan, J. Bonet Avalos, "Dissipative
particle dynamics at isothermal, isobaric, isoenergetic, and
isoenthalpic conditions using Shardlow-like splitting algorithms.",
J. Chem. Phys., 135, 204105 (2011).
:link(Larentzos)
:link(Larentzos3)
[(Larentzos)] J.P. Larentzos, J.K. Brennan, J.D. Moore, and
W.D. Mattson, "LAMMPS Implementation of Constant Energy Dissipative
Particle Dynamics (DPD-E)", ARL-TR-6863, U.S. Army Research

View File

@ -32,7 +32,7 @@ fix 1 all drude/transform/inverse :pre
Transform the coordinates of Drude oscillators from real to reduced
and back for thermalizing the Drude oscillators as described in
"(Lamoureux)"_#Lamoureux using a Nose-Hoover thermostat. This fix is
"(Lamoureux)"_#Lamoureux1 using a Nose-Hoover thermostat. This fix is
designed to be used with the "thermalized Drude oscillator
model"_tutorial_drude.html. Polarizable models in LAMMPS are
described in "this Section"_Section_howto.html#howto_25.
@ -160,5 +160,5 @@ files"_restart.html.
:line
:link(Lamoureux)
:link(Lamoureux1)
[(Lamoureux)] Lamoureux and Roux, J Chem Phys, 119, 3025-3039 (2003).

View File

@ -53,7 +53,7 @@ command.
:line
:link(Larentzos)
:link(Larentzos4)
[(Larentzos)] J.P. Larentzos, J.K. Brennan, J.D. Moore, and
W.D. Mattson, "LAMMPS Implementation of Constant Energy Dissipative
Particle Dynamics (DPD-E)", ARL-TR-6863, U.S. Army Research

View File

@ -153,7 +153,7 @@ The option default for the {energy} keyword is energy = no.
:link(Strong)
[(Strong)] Strong and Eaves, J. Phys. Chem. B 121, 189 (2017).
:link(Evans)
:link(Evans2)
[(Evans)] Evans and Morriss, Phys. Rev. Lett. 56, 2172 (1986).
:link(Zhu)

View File

@ -23,7 +23,7 @@ T = temperature of the ideal gas reservoir (temperature units) :l
mu = chemical potential of the ideal gas reservoir (energy units) :l
displace = maximum Monte Carlo translation distance (length units) :l
zero or more keyword/value pairs may be appended to args :l
keyword = {mol}, {region}, {maxangle}, {pressure}, {fugacity_coeff}, {full_energy}, {charge}, {group}, {grouptype}, {intra_energy}, or {tfac_insert}
keyword = {mol}, {region}, {maxangle}, {pressure}, {fugacity_coeff}, {full_energy}, {charge}, {group}, {grouptype}, {intra_energy}, {tfac_insert}, or {overlap_cutoff}
{mol} value = template-ID
template-ID = ID of molecule template specified in a separate "molecule"_molecule.html command
{shake} value = fix-ID
@ -41,7 +41,8 @@ keyword = {mol}, {region}, {maxangle}, {pressure}, {fugacity_coeff}, {full_energ
type = atom type (int)
group-ID = group-ID for inserted atoms (string)
{intra_energy} value = intramolecular energy (energy units)
{tfac_insert} value = scale up/down temperature of inserted atoms (unitless) :pre
{tfac_insert} value = scale up/down temperature of inserted atoms (unitless)
{overlap_cutoff} value = maximum pair distance for overlap rejection (distance units) :pre
:ule
[Examples:]
@ -262,6 +263,17 @@ therefore, you will want to use the
current number of atoms is used as a normalizing factor each time
temperature is computed. Here is the necessary command:
With some pair_styles, such as "Buckingham"_pair_buck.html,
"Born-Mayer-Huggins"_pair_born.html and "ReaxFF"_pair_reax_c.html,
two atoms placed close to each other may have an arbitrary large,
negative potential energy due to the functional form of the potential.
While these unphysical configurations are inaccessible
to typical dynamical trajectories,
they can be generated by Monte Carlo moves. The {overlap_cutoff}
keyword suppresses these moves by effectively assigning an
infinite positive energy to all new configurations that place any
pair of atoms closer than the specified overlap cutoff distance.
compute_modify thermo_temp dynamic yes :pre
If LJ units are used, note that a value of 0.18292026 is used by this
@ -344,7 +356,8 @@ with this fix is not allowed.
[Default:]
The option defaults are mol = no, maxangle = 10, full_energy = no,
The option defaults are mol = no, maxangle = 10, overlap_cutoff = 0.0,
and full_energy = no,
except for the situations where full_energy is required, as
listed above.

View File

@ -49,7 +49,7 @@ fix 1 all langevin 1.0 1.1 100.0 48279 angmom 3.333 :pre
[Description:]
Apply a Langevin thermostat as described in "(Schneider)"_#Schneider
Apply a Langevin thermostat as described in "(Schneider)"_#Schneider1
to a group of atoms which models an interaction with a background
implicit solvent. Used with "fix nve"_fix_nve.html, this command
performs Brownian dynamics (BD), since the total force on each atom
@ -80,7 +80,7 @@ dt damp), where Kb is the Boltzmann constant, T is the desired
temperature, m is the mass of the particle, dt is the timestep size,
and damp is the damping factor. Random numbers are used to randomize
the direction and magnitude of this force as described in
"(Dunweg)"_#Dunweg, where a uniform random number is used (instead of
"(Dunweg)"_#Dunweg1, where a uniform random number is used (instead of
a Gaussian random number) for speed.
Note that unless you use the {omega} or {angmom} keywords, the
@ -332,10 +332,10 @@ types, tally = no, zero = no, gjf = no.
:line
:link(Dunweg)
:link(Dunweg1)
[(Dunweg)] Dunweg and Paul, Int J of Modern Physics C, 2, 817-27 (1991).
:link(Schneider)
:link(Schneider1)
[(Schneider)] Schneider and Stoll, Phys Rev B, 17, 1302 (1978).
:link(Gronbech-Jensen)

View File

@ -41,7 +41,7 @@ fix 1 all langevin/drude 298.15 100.0 19377 5.0 10.0 83451 zero yes :pre
[Description:]
Apply two Langevin thermostats as described in "(Jiang)"_#Jiang for
Apply two Langevin thermostats as described in "(Jiang)"_#Jiang1 for
thermalizing the reduced degrees of freedom of Drude oscillators.
This link describes how to use the "thermalized Drude oscillator
model"_tutorial_drude.html in LAMMPS and polarizable models in LAMMPS
@ -268,6 +268,6 @@ The option defaults are zero = no.
:line
:link(Jiang)
:link(Jiang1)
[(Jiang)] Jiang, Hardy, Phillips, MacKerell, Schulten, and Roux, J
Phys Chem Lett, 2, 87-92 (2011).

View File

@ -37,7 +37,7 @@ fix 1 all langevin/eff 1.0 1.1 10.0 48279 scale 3 1.5 :pre
[Description:]
Apply a Langevin thermostat as described in "(Schneider)"_#Schneider
Apply a Langevin thermostat as described in "(Schneider)"_#Schneider2
to a group of nuclei and electrons in the "electron force
field"_pair_eff.html model. Used with "fix nve/eff"_fix_nve_eff.html,
this command performs Brownian dynamics (BD), since the total force on
@ -106,8 +106,8 @@ The option defaults are scale = 1.0 for all types and tally = no.
:line
:link(Dunweg)
:link(Dunweg2)
[(Dunweg)] Dunweg and Paul, Int J of Modern Physics C, 2, 817-27 (1991).
:link(Schneider)
:link(Schneider2)
[(Schneider)] Schneider and Stoll, Phys Rev B, 17, 1302 (1978).

View File

@ -24,7 +24,7 @@ fix 1 all lb/pc :pre
Update the positions and velocities of the individual particles
described by {group-ID}, experiencing velocity-dependent hydrodynamic
forces, using the integration algorithm described in "Mackay et
al."_#Mackay. This integration algorithm should only be used if a
al."_#Mackay1. This integration algorithm should only be used if a
user-specified value for the force-coupling constant used in "fix
lb/fluid"_fix_lb_fluid.html has been set; do not use this integration
algorithm if the force coupling constant has been set by default.
@ -58,5 +58,5 @@ lb/rigid/pc/sphere"_fix_lb_rigid_pc_sphere.html
:line
:link(Mackay)
:link(Mackay1)
[(Mackay et al.)] Mackay, F. E., Ollila, S.T.T., and Denniston, C., Hydrodynamic Forces Implemented into LAMMPS through a lattice-Boltzmann fluid, Computer Physics Communications 184 (2013) 2021-2031.

View File

@ -44,7 +44,7 @@ hydrodynamic forces to the particles.
:line
For further details, as well as descriptions and results of several
test runs, see "Mackay et al."_#Mackay. Please include a citation to
test runs, see "Mackay et al."_#Mackay3. Please include a citation to
this paper if this fix is used in work contributing to published
research.
@ -90,5 +90,5 @@ lb/rigid/pc/sphere"_fix_lb_rigid_pc_sphere.html
:line
:link(Mackay)
:link(Mackay3)
[(Mackay et al.)] Mackay, F. E., Ollila, S.T.T., and Denniston, C., Hydrodynamic Forces Implemented into LAMMPS through a lattice-Boltzmann fluid, Computer Physics Communications 184 (2013) 2021-2031.

View File

@ -128,15 +128,15 @@ ploop = 1, nreset = 0, drag = 0.0, dilate = all, and couple = none.
:line
:link(Martyna)
:link(Martyna1)
[(Martyna)] Martyna, Tobias and Klein, J Chem Phys, 101, 4177 (1994).
:link(Parrinello)
[(Parrinello)] Parrinello and Rahman, J Appl Phys, 52, 7182 (1981).
:link(Tuckerman)
:link(Tuckerman1)
[(Tuckerman)] Tuckerman, Alejandre, Lopez-Rendon, Jochim, and
Martyna, J Phys A: Math Gen, 39, 5629 (2006).
:link(Shinoda)
:link(Shinoda2)
[(Shinoda)] Shinoda, Shiga, and Mikami, Phys Rev B, 69, 134103 (2004).

View File

@ -13,14 +13,17 @@ fix nph/sphere/omp command :h3
fix ID group-ID nph/sphere args keyword value ... :pre
ID, group-ID are documented in "fix"_fix.html command
nph/sphere = style name of this fix command
additional barostat related keyword/value pairs from the "fix nph"_fix_nh.html command can be appended :ul
ID, group-ID are documented in "fix"_fix.html command :ulb,l
nph/sphere = style name of this fix command :l
keyword = {disc} :l
{disc} value = none = treat particles as 2d discs, not spheres :pre
additional barostat related keyword/value pairs from the "fix nph"_fix_nh.html command can be appended :l,ule
[Examples:]
fix 1 all nph/sphere iso 0.0 0.0 1000.0
fix 2 all nph/sphere x 5.0 5.0 1000.0
fix 2 all nph/sphere x 5.0 5.0 1000.0 disc
fix 2 all nph/sphere x 5.0 5.0 1000.0 drag 0.2
fix 2 water nph/sphere aniso 0.0 0.0 1000.0 dilate partial :pre
@ -35,6 +38,12 @@ isenthalpic ensemble.
This fix differs from the "fix nph"_fix_nh.html command, which assumes
point particles and only updates their position and velocity.
If the {disc} keyword is used, then each particle is treated as a 2d
disc (circle) instead of as a sphere. This is only possible for 2d
simulations, as defined by the "dimension"_dimension.html keyword.
The only difference between discs and spheres in this context is their
moment of inertia, as used in the time integration.
Additional parameters affecting the barostat are specified by keywords
and values documented with the "fix nph"_fix_nh.html command. See,
for example, discussion of the {aniso}, and {dilate} keywords.
@ -139,6 +148,9 @@ command.
All particles in the group must be finite-size spheres. They cannot
be point particles.
Use of the {disc} keyword is only allowed for 2d simulations, as
defined by the "dimension"_dimension.html keyword.
[Related commands:]
"fix nph"_fix_nh.html, "fix nve_sphere"_fix_nve_sphere.html, "fix

View File

@ -49,7 +49,7 @@ fix myhug all nphug temp 1.0 1.0 10.0 iso 40.0 40.0 70.0 drag 200.0 tchain 1 pch
This command is a variant of the Nose-Hoover
"fix npt"_fix_nh.html fix style.
It performs time integration of the Hugoniostat equations
of motion developed by Ravelo et al. "(Ravelo)"_#Ravelo.
of motion developed by Ravelo et al. "(Ravelo)"_#Ravelo1.
These equations compress the system to a state with average
axial stress or pressure equal to the specified target value
and that satisfies the Rankine-Hugoniot (RH)
@ -225,5 +225,5 @@ The keyword defaults are the same as those for "fix npt"_fix_nh.html
:line
:link(Ravelo)
:link(Ravelo1)
[(Ravelo)] Ravelo, Holian, Germann and Lomdahl, Phys Rev B, 70, 014103 (2004).

View File

@ -15,12 +15,17 @@ fix ID group-ID npt/sphere keyword value ... :pre
ID, group-ID are documented in "fix"_fix.html command
npt/sphere = style name of this fix command
additional thermostat and barostat related keyword/value pairs from the "fix npt"_fix_nh.html command can be appended :ul
zero or more keyword/value pairs may be appended :l
keyword = {disc} :l
{disc} value = none = treat particles as 2d discs, not spheres :pre
additional thermostat and barostat related keyword/value pairs from the "fix npt"_fix_nh.html command can be appended :l,ule
[Examples:]
fix 1 all npt/sphere temp 300.0 300.0 100.0 iso 0.0 0.0 1000.0
fix 2 all npt/sphere temp 300.0 300.0 100.0 x 5.0 5.0 1000.0
fix 2 all npt/sphere temp 300.0 300.0 100.0 x 5.0 5.0 1000.0 disc
fix 2 all npt/sphere temp 300.0 300.0 100.0 x 5.0 5.0 1000.0 drag 0.2
fix 2 water npt/sphere temp 300.0 300.0 100.0 aniso 0.0 0.0 1000.0 dilate partial :pre
@ -42,6 +47,12 @@ degrees of freedom (see below). The translational degrees of freedom
can also have a bias velocity removed from them before thermostatting
takes place; see the description below.
If the {disc} keyword is used, then each particle is treated as a 2d
disc (circle) instead of as a sphere. This is only possible for 2d
simulations, as defined by the "dimension"_dimension.html keyword.
The only difference between discs and spheres in this context is their
moment of inertia, as used in the time integration.
Additional parameters affecting the thermostat and barostat are
specified by keywords and values documented with the "fix
npt"_fix_nh.html command. See, for example, discussion of the {temp},
@ -163,6 +174,9 @@ command.
All particles in the group must be finite-size spheres. They cannot
be point particles.
Use of the {disc} keyword is only allowed for 2d simulations, as
defined by the "dimension"_dimension.html keyword.
[Related commands:]
"fix npt"_fix_nh.html, "fix nve_sphere"_fix_nve_sphere.html, "fix

View File

@ -22,11 +22,11 @@ fix 1 all nve/dot :pre
[Description:]
Apply a rigid-body integrator as described in "(Davidchack)"_#Davidchack
Apply a rigid-body integrator as described in "(Davidchack)"_#Davidchack1
to a group of atoms, but without Langevin dynamics.
This command performs Molecular dynamics (MD)
via a velocity-Verlet algorithm and an evolution operator that rotates
the quaternion degrees of freedom, similar to the scheme outlined in "(Miller)"_#Miller.
the quaternion degrees of freedom, similar to the scheme outlined in "(Miller)"_#Miller1.
This command is the equivalent of the "fix nve/dotc/langevin"_fix_nve_dotc_langevin.html
without damping and noise and can be used to determine the stability range
@ -55,7 +55,7 @@ LAMMPS"_Section_start.html#start_3 section for more info on packages.
:line
:link(Davidchack)
:link(Davidchack1)
[(Davidchack)] R.L Davidchack, T.E. Ouldridge, and M.V. Tretyakov. J. Chem. Phys. 142, 144114 (2015).
:link(Miller)
:link(Miller1)
[(Miller)] T. F. Miller III, M. Eleftheriou, P. Pattnaik, A. Ndirango, G. J. Martyna, J. Chem. Phys., 116, 8649-8659 (2002).

View File

@ -29,14 +29,14 @@ fix 1 all nve/dotc/langevin 1.0 1.0 0.03 457145 angmom 10 :pre
[Description:]
Apply a rigid-body Langevin-type integrator of the kind "Langevin C"
as described in "(Davidchack)"_#Davidchack
as described in "(Davidchack)"_#Davidchack2
to a group of atoms, which models an interaction with an implicit background
solvent. This command performs Brownian dynamics (BD)
via a technique that splits the integration into a deterministic Hamiltonian
part and the Ornstein-Uhlenbeck process for noise and damping.
The quaternion degrees of freedom are updated though an evolution
operator which performs a rotation in quaternion space, preserves
the quaternion norm and is akin to "(Miller)"_#Miller.
the quaternion norm and is akin to "(Miller)"_#Miller2.
In terms of syntax this command has been closely modelled on the
"fix langevin"_fix_langevin.html and its {angmom} option. But it combines
@ -72,7 +72,7 @@ dt damp), where Kb is the Boltzmann constant, T is the desired
temperature, m is the mass of the particle, dt is the timestep size,
and damp is the damping factor. Random numbers are used to randomize
the direction and magnitude of this force as described in
"(Dunweg)"_#Dunweg, where a uniform random number is used (instead of
"(Dunweg)"_#Dunweg3, where a uniform random number is used (instead of
a Gaussian random number) for speed.
:line
@ -126,9 +126,9 @@ LAMMPS"_Section_start.html#start_3 section for more info on packages.
:line
:link(Davidchack)
:link(Davidchack2)
[(Davidchack)] R.L Davidchack, T.E. Ouldridge, M.V. Tretyakov. J. Chem. Phys. 142, 144114 (2015).
:link(Miller)
:link(Miller2)
[(Miller)] T. F. Miller III, M. Eleftheriou, P. Pattnaik, A. Ndirango, G. J. Martyna, J. Chem. Phys., 116, 8649-8659 (2002).
:link(Dunweg)
:link(Dunweg3)
[(Dunweg)] B. Dunweg, W. Paul, Int. J. Mod. Phys. C, 2, 817-27 (1991).

View File

@ -33,7 +33,7 @@ fix step all nve/manifold/rattle 1e-8 100 ellipsoid 2.5 2.5 5.0 every 25 :pre
Perform constant NVE integration to update position and velocity for
atoms constrained to a curved surface (manifold) in the group each
timestep. The constraint is handled by RATTLE "(Andersen)"_#Andersen
timestep. The constraint is handled by RATTLE "(Andersen)"_#Andersen1
written out for the special case of single-particle constraints as
explained in "(Paquay)"_#Paquay2. V is volume; E is energy. This way,
the dynamics of particles constrained to curved surfaces can be
@ -92,7 +92,7 @@ manifoldforce"_fix_manifoldforce.html
:line
:link(Andersen)
:link(Andersen1)
[(Andersen)] Andersen, J. Comp. Phys. 52, 24, (1983).
:link(Paquay2)

View File

@ -16,16 +16,18 @@ fix ID group-ID nve/sphere :pre
ID, group-ID are documented in "fix"_fix.html command :ulb,l
nve/sphere = style name of this fix command :l
zero or more keyword/value pairs may be appended :l
keyword = {update}
keyword = {update} or {disc} :l
{update} value = {dipole} or {dipole/dlm}
dipole = update orientation of dipole moment during integration
dipole/dlm = use DLM integrator to update dipole orientation :pre
dipole/dlm = use DLM integrator to update dipole orientation
{disc} value = none = treat particles as 2d discs, not spheres :pre
:ule
[Examples:]
fix 1 all nve/sphere
fix 1 all nve/sphere update dipole
fix 1 all nve/sphere disc
fix 1 all nve/sphere update dipole/dlm :pre
[Description:]
@ -52,6 +54,12 @@ Dullweber-Leimkuhler-McLachlan integration scheme
giving better energy conservation and allows slightly longer timesteps
at only a small additional computational cost.
If the {disc} keyword is used, then each particle is treated as a 2d
disc (circle) instead of as a sphere. This is only possible for 2d
simulations, as defined by the "dimension"_dimension.html keyword.
The only difference between discs and spheres in this context is their
moment of inertia, as used in the time integration.
:line
Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are
@ -98,6 +106,9 @@ command.
All particles in the group must be finite-size spheres. They cannot
be point particles.
Use of the {disc} keyword is only allowed for 2d simulations, as
defined by the "dimension"_dimension.html keyword.
[Related commands:]
"fix nve"_fix_nve.html, "fix nve/asphere"_fix_nve_asphere.html

View File

@ -37,7 +37,7 @@ fix 1 all nvt/manifold/rattle 1e-4 10 cylinder 3.0 temp 1.0 1.0 10.0
[Description:]
This fix combines the RATTLE-based "(Andersen)"_#Andersen time integrator of "fix nve/manifold/rattle"_fix_nve_manifold_rattle.html "(Paquay)"_#Paquay3 with a Nose-Hoover-chain thermostat to sample the
This fix combines the RATTLE-based "(Andersen)"_#Andersen2 time integrator of "fix nve/manifold/rattle"_fix_nve_manifold_rattle.html "(Paquay)"_#Paquay3 with a Nose-Hoover-chain thermostat to sample the
canonical ensemble of particles constrained to a curved surface (manifold). This sampling does suffer from discretization bias of O(dt).
For a list of currently supported manifolds and their parameters, see "manifolds"_manifolds.html
@ -72,7 +72,7 @@ section for more info.
:line
:link(Andersen)
:link(Andersen2)
[(Andersen)] Andersen, J. Comp. Phys. 52, 24, (1983).
:link(Paquay3)

View File

@ -54,9 +54,9 @@ by fix nvt/sllod. LAMMPS will give an error if this setting is not
consistent.
The SLLOD equations of motion, originally proposed by Hoover and Ladd
(see "(Evans and Morriss)"_#Evans), were proven to be equivalent to
(see "(Evans and Morriss)"_#Evans3), were proven to be equivalent to
Newton's equations of motion for shear flow by "(Evans and
Morriss)"_#Evans. They were later shown to generate the desired
Morriss)"_#Evans3. They were later shown to generate the desired
velocity gradient and the correct production of work by stresses for
all forms of homogeneous flow by "(Daivis and Todd)"_#Daivis. As
implemented in LAMMPS, they are coupled to a Nose/Hoover chain
@ -173,7 +173,7 @@ Same as "fix nvt"_fix_nh.html, except tchain = 1.
:line
:link(Evans)
:link(Evans3)
[(Evans and Morriss)] Evans and Morriss, Phys Rev A, 30, 1528 (1984).
:link(Daivis)

View File

@ -89,6 +89,6 @@ Same as "fix nvt/eff"_fix_nh_eff.html, except tchain = 1.
:line
:link(Tuckerman)
:link(Tuckerman2)
[(Tuckerman)] Tuckerman, Mundy, Balasubramanian, Klein, J Chem Phys,
106, 5615 (1997).

View File

@ -13,13 +13,17 @@ fix nvt/sphere/omp command :h3
fix ID group-ID nvt/sphere keyword value ... :pre
ID, group-ID are documented in "fix"_fix.html command
nvt/sphere = style name of this fix command
additional thermostat related keyword/value pairs from the "fix nvt"_fix_nh.html command can be appended :ul
ID, group-ID are documented in "fix"_fix.html command :ulb,l
nvt/sphere = style name of this fix command :l
zero or more keyword/value pairs may be appended :l
keyword = {disc} :l
{disc} value = none = treat particles as 2d discs, not spheres :pre
additional thermostat related keyword/value pairs from the "fix nvt"_fix_nh.html command can be appended :l,ule
[Examples:]
fix 1 all nvt/sphere temp 300.0 300.0 100.0
fix 1 all nvt/sphere temp 300.0 300.0 100.0 disc
fix 1 all nvt/sphere temp 300.0 300.0 100.0 drag 0.2 :pre
[Description:]
@ -40,6 +44,12 @@ degrees of freedom (see below). The translational degrees of freedom
can also have a bias velocity removed from them before thermostatting
takes place; see the description below.
If the {disc} keyword is used, then each particle is treated as a 2d
disc (circle) instead of as a sphere. This is only possible for 2d
simulations, as defined by the "dimension"_dimension.html keyword.
The only difference between discs and spheres in this context is their
moment of inertia, as used in the time integration.
Additional parameters affecting the thermostat are specified by
keywords and values documented with the "fix nvt"_fix_nh.html
command. See, for example, discussion of the {temp} and {drag}
@ -140,6 +150,9 @@ command.
All particles in the group must be finite-size spheres. They cannot
be point particles.
Use of the {disc} keyword is only allowed for 2d simulations, as
defined by the "dimension"_dimension.html keyword.
[Related commands:]
"fix nvt"_fix_nh.html, "fix nve_sphere"_fix_nve_sphere.html, "fix

View File

@ -35,7 +35,7 @@ fix 2 all press/berendsen aniso 0.0 0.0 1000.0 dilate partial :pre
[Description:]
Reset the pressure of the system by using a Berendsen barostat
"(Berendsen)"_#Berendsen, which rescales the system volume and
"(Berendsen)"_#Berendsen1, which rescales the system volume and
(optionally) the atoms coordinates within the simulation box every
timestep.
@ -221,7 +221,7 @@ pressure for whatever "units"_units.html are defined.
:line
:link(Berendsen)
:link(Berendsen1)
[(Berendsen)] Berendsen, Postma, van Gunsteren, DiNola, Haak, J Chem
Phys, 81, 3684 (1984).

View File

@ -43,8 +43,8 @@ fix 1 all qeq/fire 1 10 1.0e-3 100 my_qeq qdamp 0.2 qstep 0.1 :pre
[Description:]
Perform the charge equilibration (QEq) method as described in "(Rappe
and Goddard)"_#Rappe and formulated in "(Nakano)"_#Nakano (also known
as the matrix inversion method) and in "(Rick and Stuart)"_#Rick (also
and Goddard)"_#Rappe1 and formulated in "(Nakano)"_#Nakano1 (also known
as the matrix inversion method) and in "(Rick and Stuart)"_#Rick1 (also
known as the extended Lagrangian method) based on the
electronegativity equilization principle.
@ -97,8 +97,8 @@ below, thus the others can be set to 0.0 if desired.
{chi} = electronegativity in energy units
{eta} = self-Coulomb potential in energy units
{gamma} = shielded Coulomb constant defined by "ReaxFF force field"_#vanDuin in distance units
{zeta} = Slater type orbital exponent defined by the "Streitz-Mintmire"_#Streitz potential in reverse distance units
{qcore} = charge of the nucleus defined by the "Streitz-Mintmire potential"_#Streitz potential in charge units :ul
{zeta} = Slater type orbital exponent defined by the "Streitz-Mintmire"_#Streitz1 potential in reverse distance units
{qcore} = charge of the nucleus defined by the "Streitz-Mintmire potential"_#Streitz1 potential in charge units :ul
The {qeq/point} style describes partial charges on atoms as point
charges. Interaction between a pair of charged particles is 1/r,
@ -126,7 +126,7 @@ charge densities centered around atoms via the Slater 1{s} orbital, so
that the interaction between a pair of charged particles is the
product of two Slater 1{s} orbitals. The expression for the Slater
1{s} orbital is given under equation (6) of the
"Streitz-Mintmire"_#Streitz paper. Only the {chi}, {eta}, {zeta}, and
"Streitz-Mintmire"_#Streitz1 paper. Only the {chi}, {eta}, {zeta}, and
{qcore} parameters from the {qfile} file are used. This style solves
partial charges on atoms via the matrix inversion method. A tolerance
of 1.0e-6 is usually a good number. Keyword {alpha} can be used to
@ -194,18 +194,18 @@ LAMMPS"_Section_start.html#start_3 section for more info.
:line
:link(Rappe)
:link(Rappe1)
[(Rappe and Goddard)] A. K. Rappe and W. A. Goddard III, J Physical
Chemistry, 95, 3358-3363 (1991).
:link(Nakano)
:link(Nakano1)
[(Nakano)] A. Nakano, Computer Physics Communications, 104, 59-69 (1997).
:link(Rick)
:link(Rick1)
[(Rick and Stuart)] S. W. Rick, S. J. Stuart, B. J. Berne, J Chemical Physics
101, 16141 (1994).
:link(Streitz)
:link(Streitz1)
[(Streitz-Mintmire)] F. H. Streitz, J. W. Mintmire, Physical Review B, 50,
16, 11996 (1994)

View File

@ -28,7 +28,7 @@ fix 1 all qeq/reax 1 0.0 10.0 1.0e-6 param.qeq :pre
[Description:]
Perform the charge equilibration (QEq) method as described in "(Rappe
and Goddard)"_#Rappe and formulated in "(Nakano)"_#Nakano. It is
and Goddard)"_#Rappe2 and formulated in "(Nakano)"_#Nakano2. It is
typically used in conjunction with the ReaxFF force field model as
implemented in the "pair_style reax/c"_pair_reax_c.html command, but
it can be used with any potential in LAMMPS, so long as it defines and
@ -112,11 +112,11 @@ be used for periodic cell dimensions less than 10 angstroms.
:line
:link(Rappe)
:link(Rappe2)
[(Rappe)] Rappe and Goddard III, Journal of Physical Chemistry, 95,
3358-3363 (1991).
:link(Nakano)
:link(Nakano2)
[(Nakano)] Nakano, Computer Physics Communications, 104, 59-69 (1997).
:link(qeq-Aktulga)

View File

@ -93,7 +93,7 @@ Examples of large rigid bodies are a colloidal particle, or portions
of a biomolecule such as a protein.
Example of small rigid bodies are patchy nanoparticles, such as those
modeled in "this paper"_#Zhang by Sharon Glotzer's group, clumps of
modeled in "this paper"_#Zhang1 by Sharon Glotzer's group, clumps of
granular particles, lipid molecules consiting of one or more point
dipoles connected to other spheroids or ellipsoids, irregular
particles built from line segments (2d) or triangles (3d), and
@ -299,12 +299,12 @@ perform constant NVE time integration. They are referred to below as
the 4 NVE rigid styles. The only difference is that the {rigid} and
{rigid/small} styles use an integration technique based on Richardson
iterations. The {rigid/nve} and {rigid/small/nve} styles uses the
methods described in the paper by "Miller"_#Miller, which are thought
methods described in the paper by "Miller"_#Miller3, which are thought
to provide better energy conservation than an iterative approach.
The {rigid/nvt} and {rigid/nvt/small} styles performs constant NVT
integration using a Nose/Hoover thermostat with chains as described
originally in "(Hoover)"_#Hoover and "(Martyna)"_#Martyna, which
originally in "(Hoover)"_#Hoover and "(Martyna)"_#Martyna2, which
thermostats both the translational and rotational degrees of freedom
of the rigid bodies. They are referred to below as the 2 NVT rigid
styles. The rigid-body algorithm used by {rigid/nvt} is described in
@ -788,13 +788,13 @@ torque. Also Tchain = Pchain = 10, Titer = 1, Torder = 3.
:link(Kamberaj)
[(Kamberaj)] Kamberaj, Low, Neal, J Chem Phys, 122, 224114 (2005).
:link(Martyna)
:link(Martyna2)
[(Martyna)] Martyna, Klein, Tuckerman, J Chem Phys, 97, 2635 (1992);
Martyna, Tuckerman, Tobias, Klein, Mol Phys, 87, 1117.
:link(Miller)
:link(Miller3)
[(Miller)] Miller, Eleftheriou, Pattnaik, Ndirango, and Newns,
J Chem Phys, 116, 8649 (2002).
:link(Zhang)
:link(Zhang1)
[(Zhang)] Zhang, Glotzer, Nanoletters, 4, 1407-1413 (2004).

View File

@ -53,7 +53,7 @@ velocities are approximated as finite differences to the trajectories
integrated explicitly, as with velocity Verlet which is what LAMMPS
uses as an integration method, a second set of constraining forces is
required in order to eliminate velocity components along the bonds
("Andersen (1983)"_#Andersen).
("Andersen (1983)"_#Andersen3).
In order to formulate individual constraints for SHAKE and RATTLE,
focus on a single molecule whose bonds are constrained. Let Ri and Vi
@ -171,7 +171,7 @@ more instructions on how to use the accelerated styles effectively.
The velocity constraints lead to a linear system of equations which
can be solved analytically. The implementation of the algorithm in
LAMMPS closely follows ("Andersen (1983)"_#Andersen).
LAMMPS closely follows ("Andersen (1983)"_#Andersen3).
NOTE: The fix rattle command modifies forces and velocities and thus
should be defined after all other integration fixes in your input
@ -223,5 +223,5 @@ SHAKE or RATTLE should not be used to constrain an angle at 180 degrees
[(Ryckaert)] J.-P. Ryckaert, G. Ciccotti and H. J. C. Berendsen,
J of Comp Phys, 23, 327-341 (1977).
:link(Andersen)
:link(Andersen3)
[(Andersen)] H. Andersen, J of Comp Phys, 52, 24-34 (1983).

View File

@ -30,7 +30,7 @@ nve"_fix_nve.html or "fix nph"_fix_nh.html). The stochastic
integration of the dissipative and random forces is performed prior to
the deterministic integration of the conservative force. Further
details regarding the method are provided in "(Lisal)"_#Lisal and
"(Larentzos1)"_#Larentzos1.
"(Larentzos1)"_#Larentzos1sh.
The fix {shardlow} must be used with the "pair_style
dpd/fdt"_pair_style.html or "pair_style
@ -83,13 +83,13 @@ particle dynamics as isothermal, isobaric, isoenergetic, and
isoenthalpic conditions using Shardlow-like splitting algorithms.",
J. Chem. Phys., 135, 204105 (2011).
:link(Larentzos1)
:link(Larentzos1sh)
[(Larentzos1)] J.P. Larentzos, J.K. Brennan, J.D. Moore, M. Lisal and
W.D. Mattson, "Parallel Implementation of Isothermal and Isoenergetic
Dissipative Particle Dynamics Using Shardlow-Like Splitting
Algorithms", Comput. Phys. Commun., 185, 1987-1998 (2014).
:link(Larentzos2)
:link(Larentzos2sh)
[(Larentzos2)] J.P. Larentzos, J.K. Brennan, J.D. Moore, and
W.D. Mattson, "LAMMPS Implementation of Constant Energy Dissipative
Particle Dynamics (DPD-E)", ARL-TR-6863, U.S. Army Research

View File

@ -72,7 +72,7 @@ viscosity"_fix_viscosity.html, and "fix nvt/sllod"_fix_nvt_sllod.html,
can be used in conjunction with the SRD model.
For more details on how the SRD model is implemented in LAMMPS, "this
paper"_#Petersen describes the implementation and usage of pure SRD
paper"_#Petersen1 describes the implementation and usage of pure SRD
fluids. "This paper"_#Lechman, which is nearly complete, describes
the implementation and usage of mixture systems (solute particles in
an SRD fluid). See the examples/srd directory for sample input
@ -390,7 +390,7 @@ rescale = yes.
:link(Hecht)
[(Hecht)] Hecht, Harting, Ihle, Herrmann, Phys Rev E, 72, 011408 (2005).
:link(Petersen)
:link(Petersen1)
[(Petersen)] Petersen, Lechman, Plimpton, Grest, in' t Veld, Schunk, J
Chem Phys, 132, 174106 (2010).

View File

@ -26,7 +26,7 @@ fix 1 all temp/berendsen 300.0 300.0 100.0 :pre
[Description:]
Reset the temperature of a group of atoms by using a Berendsen
thermostat "(Berendsen)"_#Berendsen, which rescales their velocities
thermostat "(Berendsen)"_#Berendsen2, which rescales their velocities
every timestep.
The thermostat is applied to only the translational degrees of freedom
@ -157,7 +157,7 @@ temp/rescale"_fix_temp_rescale.html, "fix langevin"_fix_langevin.html,
:line
:link(Berendsen)
:link(Berendsen2)
[(Berendsen)] Berendsen, Postma, van Gunsteren, DiNola, Haak, J Chem
Phys, 81, 3684 (1984).

View File

@ -31,7 +31,7 @@ fix 1 all thermal/conductivity 50 z 20 swap 2 :pre
[Description:]
Use the Muller-Plathe algorithm described in "this
paper"_#Muller-Plathe to exchange kinetic energy between two particles
paper"_#Muller-Plathe1 to exchange kinetic energy between two particles
in different regions of the simulation box every N steps. This
induces a temperature gradient in the system. As described below this
enables the thermal conductivity of a material to be calculated. This
@ -85,7 +85,7 @@ quantity by time and the cross-sectional area of the simulation box
yields a heat flux. The ratio of heat flux to the slope of the
temperature profile is proportional to the thermal conductivity of the
fluid, in appropriate units. See the "Muller-Plathe
paper"_#Muller-Plathe for details.
paper"_#Muller-Plathe1 for details.
NOTE: If your system is periodic in the direction of the heat flux,
then the flux is going in 2 directions. This means the effective heat
@ -136,7 +136,7 @@ kinetic energy of atoms that are in constrained molecules, e.g. via
"fix shake"_fix_shake.html or "fix rigid"_fix_rigid.html. This is
because application of the constraints will alter the amount of
transferred momentum. You should, however, be able to use flexible
molecules. See the "Zhang paper"_#Zhang for a discussion and results
molecules. See the "Zhang paper"_#Zhang2 for a discussion and results
of this idea.
When running a simulation with large, massive particles or molecules
@ -155,9 +155,9 @@ The option defaults are swap = 1.
:line
:link(Muller-Plathe)
:link(Muller-Plathe1)
[(Muller-Plathe)] Muller-Plathe, J Chem Phys, 106, 6082 (1997).
:link(Zhang)
:link(Zhang2)
[(Zhang)] Zhang, Lussetti, de Souza, Muller-Plathe, J Phys Chem B,
109, 15060-15067 (2005).

View File

@ -33,7 +33,7 @@ fix 1 all viscosity 50 x z 20 swap 2 vtarget 1.5 :pre
[Description:]
Use the Muller-Plathe algorithm described in "this
paper"_#Muller-Plathe to exchange momenta between two particles in
paper"_#Muller-Plathe2 to exchange momenta between two particles in
different regions of the simulation box every N steps. This induces a
shear velocity profile in the system. As described below this enables
a viscosity of the fluid to be calculated. This algorithm is
@ -83,7 +83,7 @@ quantity by time and the cross-sectional area of the simulation box
yields a momentum flux. The ratio of momentum flux to the slope of
the shear velocity profile is proportional to the viscosity of the
fluid, in appropriate units. See the "Muller-Plathe
paper"_#Muller-Plathe for details.
paper"_#Muller-Plathe2 for details.
NOTE: If your system is periodic in the direction of the momentum
flux, then the flux is going in 2 directions. This means the
@ -161,7 +161,7 @@ The option defaults are swap = 1 and vtarget = INF.
:line
:link(Muller-Plathe)
:link(Muller-Plathe2)
[(Muller-Plathe)] Muller-Plathe, Phys Rev E, 59, 4894-4898 (1999).
:link(Maginn)

View File

@ -206,7 +206,7 @@ beginning of the run to give the desired estimated error. Other
cutoffs such as LJ will not be affected. If the grid is not set using
the {mesh} command, this command will also attempt to use the optimal
grid that minimizes cost using an estimate given by
"(Hardy)"_#Hardy. Note that this cost estimate is not exact, somewhat
"(Hardy)"_#Hardy1. Note that this cost estimate is not exact, somewhat
experimental, and still may not yield the optimal parameters.
The {pressure/scalar} keyword applies only to MSM. If this option is
@ -235,7 +235,7 @@ collective operations and adequate hardware.
The {diff} keyword specifies the differentiation scheme used by the
PPPM method to compute forces on particles given electrostatic
potentials on the PPPM mesh. The {ik} approach is the default for
PPPM and is the original formulation used in "(Hockney)"_#Hockney. It
PPPM and is the original formulation used in "(Hockney)"_#Hockney1. It
performs differentiation in Kspace, and uses 3 FFTs to transfer each
component of the computed fields back to real space for total of 4
FFTs per timestep.
@ -271,7 +271,7 @@ speed-up the simulations but introduces some error in the force
computations, as shown in "(Wennberg)"_#Wennberg. With {none}, it is
assumed that no mixing rule is applicable. Splitting of the dispersion
coefficients will be performed as described in
"(Isele-Holder)"_#Isele-Holder. This splitting can be influenced with
"(Isele-Holder)"_#Isele-Holder1. This splitting can be influenced with
the {splittol} keywords. Only the eigenvalues that are larger than tol
compared to the largest eigenvalues are included. Using this keywords
the original matrix of dispersion coefficients is approximated. This
@ -280,7 +280,7 @@ computations of the dispersion part is decreased.
The {force/disp/real} and {force/disp/kspace} keywords set the force
accuracy for the real and space computations for the dispersion part
of pppm/disp. As shown in "(Isele-Holder)"_#Isele-Holder, optimal
of pppm/disp. As shown in "(Isele-Holder)"_#Isele-Holder1, optimal
performance and accuracy in the results is obtained when these values
are different.
@ -311,7 +311,7 @@ split = 0, tol = 1.0e-6, and disp/auto = no.
:line
:link(Hockney)
:link(Hockney1)
[(Hockney)] Hockney and Eastwood, Computer Simulation Using Particles,
Adam Hilger, NY (1989).
@ -325,7 +325,7 @@ Adam Hilger, NY (1989).
:link(Klapp)
[(Klapp)] Klapp, Schoen, J Chem Phys, 117, 8050 (2002).
:link(Hardy)
:link(Hardy1)
[(Hardy)] David Hardy thesis: Multilevel Summation for the Fast
Evaluation of Forces for the Simulation of Biomolecules, University of
Illinois at Urbana-Champaign, (2006).
@ -333,7 +333,7 @@ Illinois at Urbana-Champaign, (2006).
:link(Hummer)
[(Hummer)] Hummer, Gronbech-Jensen, Neumann, J Chem Phys, 109, 2791 (1998)
:link(Isele-Holder)
:link(Isele-Holder1)
[(Isele-Holder)] Isele-Holder, Mitchell, Hammond, Kohlmeyer, Ismail, J
Chem Theory Comput, 9, 5412 (2013).

View File

@ -152,7 +152,7 @@ such as when using a barostat.
:line
The {pppm/disp} and {pppm/disp/tip4p} styles add a mesh-based long-range
dispersion sum option for 1/r^6 potentials "(Isele-Holder)"_#Isele-Holder,
dispersion sum option for 1/r^6 potentials "(Isele-Holder)"_#Isele-Holder2012,
similar to the {ewald/disp} style. The 1/r^6 capability means
that Lennard-Jones or Buckingham potentials can be used without a cutoff,
i.e. they become full long-range potentials.
@ -163,8 +163,8 @@ This can be done by either choosing the Ewald and grid parameters, or
by specifying separate accuracies for the real and kspace
calculations. When not making any settings, the simulation will stop with
an error message. Further information on the influence of the parameters
and how to choose them is described in "(Isele-Holder)"_#Isele-Holder,
"(Isele-Holder2)"_#Isele-Holder2 and the
and how to choose them is described in "(Isele-Holder)"_#Isele-Holder2012,
"(Isele-Holder2)"_#Isele-Holder2013 and the
"How-To"_Section_howto.html#howto_24 discussion.
:line
@ -182,7 +182,7 @@ currently support the -DFFT_SINGLE compiler switch.
:line
The {msm} style invokes a multi-level summation method MSM solver,
"(Hardy)"_#Hardy or "(Hardy2)"_#Hardy2, which maps atom charge to a 3d
"(Hardy)"_#Hardy2006 or "(Hardy2)"_#Hardy2009, which maps atom charge to a 3d
mesh, and uses a multi-level hierarchy of coarser and coarser meshes
on which direct coulomb solves are done. This method does not use
FFTs and scales as N. It may therefore be faster than the other
@ -247,7 +247,7 @@ equation 9 of "(Petersen)"_#Petersen. RMS force errors in K-space for
which is similar to equation 32 of "(Kolafa)"_#Kolafa. RMS force
errors in K-space for {pppm} are estimated using equation 38 of
"(Deserno)"_#Deserno. RMS force errors for {msm} are estimated
using ideas from chapter 3 of "(Hardy)"_#Hardy, with equation 3.197
using ideas from chapter 3 of "(Hardy)"_#Hardy2006, with equation 3.197
of particular note. When using {msm} with non-periodic boundary
conditions, it is expected that the error estimation will be too
pessimistic. RMS force errors for dipoles when using {ewald/disp}
@ -366,19 +366,19 @@ and Computation 5, 2322 (2009)
[(Toukmaji)] Toukmaji, Sagui, Board, and Darden, J Chem Phys, 113,
10913 (2000).
:link(Isele-Holder)
:link(Isele-Holder2012)
[(Isele-Holder)] Isele-Holder, Mitchell, Ismail, J Chem Phys, 137,
174107 (2012).
:link(Isele-Holder2)
:link(Isele-Holder2013)
[(Isele-Holder2)] Isele-Holder, Mitchell, Hammond, Kohlmeyer, Ismail,
J Chem Theory Comput 9, 5412 (2013).
:link(Hardy)
:link(Hardy2006)
[(Hardy)] David Hardy thesis: Multilevel Summation for the Fast
Evaluation of Forces for the Simulation of Biomolecules, University of
Illinois at Urbana-Champaign, (2006).
:link(Hardy2)
[(Hardy)] Hardy, Stone, Schulten, Parallel Computing 35 (2009)
:link(Hardy2009)
[(Hardy2)] Hardy, Stone, Schulten, Parallel Computing 35 (2009)
164-177.

View File

@ -44,7 +44,7 @@ of the energy barrier associated with a transition state, e.g. for an
atom to perform a diffusive hop from one energy basin to another in a
coordinated fashion with its neighbors. The implementation in LAMMPS
follows the discussion in these 3 papers: "(HenkelmanA)"_#HenkelmanA,
"(HenkelmanB)"_#HenkelmanB, and "(Nakano)"_#Nakano.
"(HenkelmanB)"_#HenkelmanB, and "(Nakano)"_#Nakano3.
Each replica runs on a partition of one or more processors. Processor
partitions are defined at run-time using the -partition command-line
@ -412,5 +412,5 @@ langevin"_fix_langevin.html, "fix viscous"_fix_viscous.html
[(HenkelmanB)] Henkelman, Uberuaga, Jonsson, J Chem Phys, 113,
9901-9904 (2000).
:link(Nakano)
:link(Nakano3)
[(Nakano)] Nakano, Comp Phys Comm, 178, 280-289 (2008).

View File

@ -137,7 +137,7 @@ and beta_pi,ij)(r_ij).
The parameters/coefficients format for the different kinds of BOP
files are given below with variables matching the formulation of Ward
("Ward"_#Ward) and Zhou ("Zhou"_#Zhou). Each header line containing a
("Ward"_#Ward) and Zhou ("Zhou"_#Zhou1). Each header line containing a
":" is preceded by a blank line.
@ -258,7 +258,7 @@ Line 2: (A_ij)^(mu*nu) (for e1-e2 and repeats as above) :ul
The parameters/coefficients format for the BOP potentials input file
containing pre-tabulated functions of g is given below with variables
matching the formulation of Ward ("Ward"_#Ward). This format also
assumes the angular functions have the formulation of ("Zhou"_#Zhou).
assumes the angular functions have the formulation of ("Zhou"_#Zhou1).
Line 1: # elements N :ul
@ -314,7 +314,7 @@ The rest of the table has the same structure as the previous section
The parameters/coefficients format for the BOP potentials input file
containing pre-tabulated functions of g is given below with variables
matching the formulation of Ward ("Ward"_#Ward). This format also
assumes the angular functions have the formulation of ("Zhou"_#Zhou).
assumes the angular functions have the formulation of ("Zhou"_#Zhou1).
Line 1: # elements N :ul
@ -425,5 +425,5 @@ Drautz, and D.G. Pettifor, Phys. Rev. B, 73, 45206 (2006).
[(Ward)] D.K. Ward, X.W. Zhou, B.M. Wong, F.P. Doty, and J.A.
Zimmerman, Phys. Rev. B, 85,115206 (2012).
:link(Zhou)
:link(Zhou1)
[(Zhou)] X.W. Zhou, D.K. Ward, M. Foster (TBP).

View File

@ -39,7 +39,7 @@ where A_cc is the Hamaker constant, a1 and a2 are the radii of the two
colloidal particles, and Rc is the cutoff. This equation results from
describing each colloidal particle as an integrated collection of
Lennard-Jones particles of size sigma and is derived in
"(Everaers)"_#Everaers.
"(Everaers)"_#Everaers1.
The colloid-solvent interaction energy is given by
@ -201,5 +201,5 @@ only per-type polydispersity is enabled via the pair_coeff parameters.
:line
:link(Everaers)
:link(Everaers1)
[(Everaers)] Everaers, Ejtehadi, Phys Rev E, 67, 041710 (2003).

View File

@ -50,7 +50,7 @@ atoms {i} and {j},
The COMB potentials (styles {comb} and {comb3}) are variable charge
potentials. The equilibrium charge on each atom is calculated by the
electronegativity equalization (QEq) method. See "Rick"_#Rick for
electronegativity equalization (QEq) method. See "Rick"_#Rick2 for
further details. This is implemented by the "fix
qeq/comb"_fix_qeq_comb.html command, which should normally be
specified in the input script when running a model with the COMB
@ -187,6 +187,6 @@ S. R. Phillpot, Phys. Rev. B 81, 125328 (2010)
Y. Li, Z. Lu, S. R. Phillpot, and S. B. Sinnott, Mat. Sci. & Eng: R 74,
255-279 (2013).
:link(Rick)
:link(Rick2)
[(Rick)] S. W. Rick, S. J. Stuart, B. J. Berne, J Chem Phys 101, 6141
(1994).

View File

@ -109,7 +109,7 @@ mimic the screening effect of a polar solvent.
:line
Style {coul/dsf} computes Coulombic interactions via the damped
shifted force model described in "Fennell"_#Fennell, given by:
shifted force model described in "Fennell"_#Fennell1, given by:
:c,image(Eqs/pair_coul_dsf.jpg)
@ -122,7 +122,7 @@ decay to zero.
:line
Style {coul/wolf} computes Coulombic interactions via the Wolf
summation method, described in "Wolf"_#Wolf, given by:
summation method, described in "Wolf"_#Wolf1, given by:
:c,image(Eqs/pair_coul_wolf.jpg)
@ -143,7 +143,7 @@ interactions with a short-range potential.
Style {coul/streitz} is the Coulomb pair interaction defined as part
of the Streitz-Mintmire potential, as described in "this
paper"_#Streitz, in which charge distribution about an atom is modeled
paper"_#Streitz2, in which charge distribution about an atom is modeled
as a Slater 1{s} orbital. More details can be found in the referenced
paper. To fully reproduce the published Streitz-Mintmire potential,
which is a variable charge potential, style {coul/streitz} must be
@ -205,7 +205,7 @@ added for the "core/shell model"_Section_howto.html#howto_25 to allow
charges on core and shell particles to be separated by r = 0.0.
Styles {tip4p/cut} and {tip4p/long} implement the coulomb part of
the TIP4P water model of "(Jorgensen)"_#Jorgensen, which introduces
the TIP4P water model of "(Jorgensen)"_#Jorgensen3, which introduces
a massless site located a short distance away from the oxygen atom
along the bisector of the HOH angle. The atomic types of the oxygen and
hydrogen atoms, the bond and angle types for OH and HOH interactions,
@ -325,14 +325,18 @@ hybrid/overlay"_pair_hybrid.html, "kspace_style"_kspace_style.html
:line
:link(Wolf)
:link(Wolf1)
[(Wolf)] D. Wolf, P. Keblinski, S. R. Phillpot, J. Eggebrecht, J Chem
Phys, 110, 8254 (1999).
:link(Fennell)
:link(Fennell1)
[(Fennell)] C. J. Fennell, J. D. Gezelter, J Chem Phys, 124,
234104 (2006).
:link(Streitz)
:link(Streitz2)
[(Streitz)] F. H. Streitz, J. W. Mintmire, Phys Rev B, 50, 11996-12003
(1994).
:link(Jorgensen3)
[(Jorgensen)] Jorgensen, Chandrasekhar, Madura, Impey, Klein, J Chem
Phys, 79, 926 (1983).

View File

@ -46,10 +46,10 @@ for water at 298K.
Examples of the use of this type of Coulomb interaction include implicit
solvent simulations of salt ions
"(Lenart)"_#Lenart and of ionic surfactants "(Jusufi)"_#Jusufi.
"(Lenart)"_#Lenart1 and of ionic surfactants "(Jusufi)"_#Jusufi1.
Note that this potential is only reasonable for implicit solvent simulations
and in combination with coul/cut or coul/long. It is also usually combined
with gauss/cut, see "(Lenart)"_#Lenart or "(Jusufi)"_#Jusufi.
with gauss/cut, see "(Lenart)"_#Lenart1 or "(Jusufi)"_#Jusufi1.
The following coefficients must be defined for each pair of atom
types via the "pair_coeff"_pair_coeff.html command as in the example
@ -103,10 +103,10 @@ LAMMPS"_Section_start.html#start_2_3 section for more info.
[(Stiles)] Stiles , Hubbard, and Kayser, J Chem Phys, 77,
6189 (1982).
:link(Lenart)
:link(Lenart1)
[(Lenart)] Lenart , Jusufi, and Panagiotopoulos, J Chem Phys, 126,
044509 (2007).
:link(Jusufi)
:link(Jusufi1)
[(Jusufi)] Jusufi, Hynninen, and Panagiotopoulos, J Phys Chem B, 112,
13783 (2008).

View File

@ -44,7 +44,7 @@ pair_coeff 1 1 480.0 0.25 0.00 1.05 0.50 :pre
[Description:]
These pair styles are designed to be used with the adiabatic
core/shell model of "(Mitchell and Finchham)"_#MitchellFinchham. See
core/shell model of "(Mitchell and Finchham)"_#MitchellFinchham2. See
"Section 6.25"_Section_howto.html#howto_25 of the manual for an
overview of the model as implemented in LAMMPS.
@ -95,6 +95,6 @@ LAMMPS"_Section_start.html#start_3 section for more info.
:line
:link(MitchellFinchham)
:link(MitchellFinchham2)
[(Mitchell and Finchham)] Mitchell, Finchham, J Phys Condensed Matter,
5, 1031-1038 (1993).

View File

@ -69,7 +69,7 @@ distance, and the vector r = Ri - Rj is the separation vector between
the two particles. Note that Eqq and Fqq are simply Coulombic energy
and force, Fij = -Fji as symmetric forces, and Tij != -Tji since the
torques do not act symmetrically. These formulas are discussed in
"(Allen)"_#Allen and in "(Toukmaji)"_#Toukmaji.
"(Allen)"_#Allen2 and in "(Toukmaji)"_#Toukmaji2.
Style {lj/sf/dipole/sf} computes "shifted-force" interactions between
pairs of particles that each have a charge and/or a point dipole
@ -77,7 +77,7 @@ moment. In general, a shifted-force potential is a (sligthly) modified
potential containing extra terms that make both the energy and its
derivative go to zero at the cutoff distance; this removes
(cutoff-related) problems in energy conservation and any numerical
instability in the equations of motion "(Allen)"_#Allen. Shifted-force
instability in the equations of motion "(Allen)"_#Allen2. Shifted-force
interactions for the Lennard-Jones (E_LJ), charge-charge (Eqq),
charge-dipole (Eqp), dipole-charge (Epq) and dipole-dipole (Epp)
potentials are computed by these formulas for the energy (E), force
@ -95,11 +95,11 @@ and force, Fij = -Fji as symmetric forces, and Tij != -Tji since the
torques do not act symmetrically. The shifted-force formula for the
Lennard-Jones potential is reported in "(Stoddard)"_#Stoddard. The
original (unshifted) formulas for the electrostatic potentials, forces
and torques can be found in "(Price)"_#Price. The shifted-force
and torques can be found in "(Price)"_#Price2. The shifted-force
electrostatic potentials have been obtained by applying equation 5.13
of "(Allen)"_#Allen. The formulas for the corresponding forces and
of "(Allen)"_#Allen2. The formulas for the corresponding forces and
torques have been obtained by applying the 'chain rule' as in appendix
C.3 of "(Allen)"_#Allen.
C.3 of "(Allen)"_#Allen2.
If one cutoff is specified in the pair_style command, it is used for
both the LJ and Coulombic (q,p) terms. If two cutoffs are specified,
@ -110,7 +110,7 @@ scaled according to this factor. This scale factor is also made available
for use with fix adapt.
Style {lj/cut/dipole/long} computes long-range point-dipole
interactions as discussed in "(Toukmaji)"_#Toukmaji. Dipole-dipole,
interactions as discussed in "(Toukmaji)"_#Toukmaji2. Dipole-dipole,
dipole-charge, and charge-charge interactions are all supported, along
with the standard 12/6 Lennard-Jones interactions, which are computed
with a cutoff. A "kspace_style"_kspace_style.html must be defined to
@ -119,7 +119,7 @@ ewald/disp"_kspace_style.html support long-range point-dipole
interactions.
Style {lj/long/dipole/long} also computes point-dipole interactions as
discussed in "(Toukmaji)"_#Toukmaji. Long-range dipole-dipole,
discussed in "(Toukmaji)"_#Toukmaji2. Long-range dipole-dipole,
dipole-charge, and charge-charge interactions are all supported, along
with the standard 12/6 Lennard-Jones interactions. LJ interactions
can be cutoff or long-ranged.
@ -252,16 +252,16 @@ currently supported.
:line
:link(Allen)
:link(Allen2)
[(Allen)] Allen and Tildesley, Computer Simulation of Liquids,
Clarendon Press, Oxford, 1987.
:link(Toukmaji)
:link(Toukmaji2)
[(Toukmaji)] Toukmaji, Sagui, Board, and Darden, J Chem Phys, 113,
10913 (2000).
:link(Stoddard)
[(Stoddard)] Stoddard and Ford, Phys Rev A, 8, 1504 (1973).
:link(Price)
:link(Price2)
[(Price)] Price, Stone and Alderton, Mol Phys, 52, 987 (1984).

View File

@ -37,7 +37,7 @@ Styles {dpd/fdt} and {dpd/fdt/energy} compute the force for dissipative
particle dynamics (DPD) simulations. The {dpd/fdt} style is used to
perform DPD simulations under isothermal and isobaric conditions,
while the {dpd/fdt/energy} style is used to perform DPD simulations
under isoenergetic and isoenthalpic conditions (see "(Lisal)"_#Lisal).
under isoenergetic and isoenthalpic conditions (see "(Lisal)"_#Lisal3).
For DPD simulations in general, the force on atom I due to atom J is
given as a sum of 3 terms
@ -111,7 +111,7 @@ calculated using only the conservative term.
The forces computed through the {dpd/fdt} and {dpd/fdt/energy} styles
can be integrated with the velocity-Verlet integration scheme or the
Shardlow splitting integration scheme described by "(Lisal)"_#Lisal.
Shardlow splitting integration scheme described by "(Lisal)"_#Lisal3.
In the cases when these pair styles are combined with the
"fix shardlow"_fix_shardlow.html, these pair styles differ from the
other dpd styles in that the dissipative and random forces are split
@ -147,7 +147,7 @@ energies and temperatures.
:line
:link(Lisal)
:link(Lisal3)
[(Lisal)] M. Lisal, J.K. Brennan, J. Bonet Avalos, "Dissipative
particle dynamics at isothermal, isobaric, isoenergetic, and
isoenthalpic conditions using Shardlow-like splitting algorithms.",

View File

@ -25,7 +25,7 @@ pair_coeff * * Na Cl ../potentials/ffield.eim Cl NULL Na :pre
[Description:]
Style {eim} computes pairwise interactions for ionic compounds
using embedded-ion method (EIM) potentials "(Zhou)"_#Zhou. The
using embedded-ion method (EIM) potentials "(Zhou)"_#Zhou2. The
energy of the system E is given by
:c,image(Eqs/pair_eim1.jpg)
@ -169,6 +169,6 @@ LAMMPS was built with that package.
:line
:link(Zhou)
:link(Zhou2)
[(Zhou)] Zhou, submitted for publication (2010). Please contact
Xiaowang Zhou (Sandia) for details via email at xzhou at sandia.gov.

View File

@ -59,8 +59,8 @@ between pairs of particles:
where H determines together with the standard deviation sigma_h the
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 "(Lenart)"_#Lenart and of surfactants
"(Jusufi)"_#Jusufi. In these instances the Gaussian potential mimics
solvent simulations of salt ions "(Lenart)"_#Lenart2 and of surfactants
"(Jusufi)"_#Jusufi2. In these instances the Gaussian potential mimics
the hydration barrier between a pair of particles. The hydration
barrier is located at r_mh and has a width of sigma_h. The prefactor
determines the height of the potential barrier.
@ -178,11 +178,11 @@ LAMMPS"_Section_start.html#start_3 section for more info.
[Default:] none
:link(Lenart)
:link(Lenart2)
[(Lenart)] Lenart , Jusufi, and Panagiotopoulos, J Chem Phys, 126,
044509 (2007).
:link(Jusufi)
:link(Jusufi2)
[(Jusufi)] Jusufi, Hynninen, and Panagiotopoulos, J Phys Chem B, 112,
13783 (2008).

View File

@ -44,12 +44,12 @@ a particle as "spherical").
For large uniform molecules it has been shown that the energy
parameters are approximately representable in terms of local contact
curvatures "(Everaers)"_#Everaers:
curvatures "(Everaers)"_#Everaers2:
:c,image(Eqs/pair_gayberne2.jpg)
The variable names utilized as potential parameters are for the most
part taken from "(Everaers)"_#Everaers in order to be consistent with
part taken from "(Everaers)"_#Everaers2 in order to be consistent with
the "RE-squared pair potential"_pair_resquared.html. Details on the
upsilon and mu parameters are given
"here"_PDF/pair_resquared_extra.pdf.
@ -203,7 +203,7 @@ spherical particles, or point particles. Spherical particles have all
all 3 of their shape parameters equal to 0.0.
The Gay-Berne potential does not become isotropic as r increases
"(Everaers)"_#Everaers. The distance-of-closest-approach
"(Everaers)"_#Everaers2. The distance-of-closest-approach
approximation used by LAMMPS becomes less accurate when high-aspect
ratio ellipsoids are used.
@ -217,7 +217,7 @@ resquared"_pair_resquared.html
:line
:link(Everaers)
:link(Everaers2)
[(Everaers)] Everaers and Ejtehadi, Phys Rev E, 67, 041710 (2003).
:link(Berardi)
@ -227,5 +227,5 @@ Berardi, Muccioli, Zannoni, J Chem Phys, 128, 024905 (2008).
:link(Perram)
[(Perram)] Perram and Rasmussen, Phys Rev E, 54, 6565-6572 (1996).
:link(Allen)
:link(Allen3)
[(Allen)] Allen and Germano, Mol Phys 104, 3225-3235 (2006).

View File

@ -45,7 +45,7 @@ pair_style gran/hooke 200000.0 70000.0 50.0 30.0 0.5 0 :pre
The {gran} styles use the following formulas for the frictional force
between two granular particles, as described in
"(Brilliantov)"_#Brilliantov, "(Silbert)"_#Silbert, and
"(Zhang)"_#Zhang, when the distance r between two particles of radii
"(Zhang)"_#Zhang3, when the distance r between two particles of radii
Ri and Rj is less than their contact distance d = Ri + Rj. There is
no force between the particles when r > d.
@ -115,7 +115,7 @@ gamma_t is in units of (1/(time*distance)).
Note that in the Hookean case, Kn can be thought of as a linear spring
constant with units of force/distance. In the Hertzian case, Kn is
like a non-linear spring constant with units of force/area or
pressure, and as shown in the "(Zhang)"_#Zhang paper, Kn = 4G /
pressure, and as shown in the "(Zhang)"_#Zhang3 paper, Kn = 4G /
(3(1-nu)) where nu = the Poisson ratio, G = shear modulus = E /
(2(1+nu)), and E = Young's modulus. Similarly, Kt = 4G / (2-nu).
(NOTE: in an earlier version of the manual, we incorrectly stated that
@ -267,5 +267,5 @@ p 5382-5392 (1996).
[(Silbert)] Silbert, Ertas, Grest, Halsey, Levine, Plimpton, Phys Rev
E, 64, p 051302 (2001).
:link(Zhang)
:link(Zhang3)
[(Zhang)] Zhang and Makse, Phys Rev E, 72, p 011301 (2005).

View File

@ -149,7 +149,7 @@ where kappa is the inverse of the Debye length. This potential is
another way to mimic the screening effect of a polar solvent.
Style {lj/cut/coul/dsf} computes the Coulombic term via the damped
shifted force model described in "Fennell"_#Fennell, given by:
shifted force model described in "Fennell"_#Fennell2, given by:
:c,image(Eqs/pair_coul_dsf.jpg)
@ -180,7 +180,7 @@ model"_Section_howto.html#howto_25 to allow charges on core and shell
particles to be separated by r = 0.0.
Styles {lj/cut/tip4p/cut} and {lj/cut/tip4p/long} implement the TIP4P
water model of "(Jorgensen)"_#Jorgensen, which introduces a massless
water model of "(Jorgensen)"_#Jorgensen2, which introduces a massless
site located a short distance away from the oxygen atom along the
bisector of the HOH angle. The atomic types of the oxygen and
hydrogen atoms, the bond and angle types for OH and HOH interactions,
@ -311,10 +311,10 @@ installed by default.
:line
:link(Jorgensen)
:link(Jorgensen2)
[(Jorgensen)] Jorgensen, Chandrasekhar, Madura, Impey, Klein, J Chem
Phys, 79, 926 (1983).
:link(Fennell)
:link(Fennell2)
[(Fennell)] C. J. Fennell, J. D. Gezelter, J Chem Phys, 124,
234104 (2006).

View File

@ -42,7 +42,7 @@ A3*rmin^3/epsilon = 27.93... is given in the paper by
Holian and Ravelo "(Holian)"_#Holian.
This potential is commonly used to study the shock mechanics of FCC
solids, as in Ravelo et al. "(Ravelo)"_#Ravelo.
solids, as in Ravelo et al. "(Ravelo)"_#Ravelo2.
The following coefficients must be defined for each pair of atom types
via the "pair_coeff"_pair_coeff.html command as in the example above,
@ -125,5 +125,5 @@ support the {inner}, {middle}, {outer} keywords.
:link(Holian)
[(Holian)] Holian and Ravelo, Phys Rev B, 51, 11275 (1995).
:link(Ravelo)
:link(Ravelo2)
[(Ravelo)] Ravelo, Holian, Germann and Lomdahl, Phys Rev B, 70, 014103 (2004).

View File

@ -72,12 +72,12 @@ used as cutoffs for the LJ and Coulombic terms respectively.
The purpose of this pair style is to capture long-range interactions
resulting from both attractive 1/r^6 Lennard-Jones and Coulombic 1/r
interactions. This is done by use of the {flag_lj} and {flag_coul}
settings. The "In 't Veld"_#Veld paper has more details on when it is
settings. The "In 't Veld"_#Veld2 paper has more details on when it is
appropriate to include long-range 1/r^6 interactions, using this
potential.
Style {lj/long/tip4p/long} implements the TIP4P water model of
"(Jorgensen)"_#Jorgensen, which introduces a massless site located a
"(Jorgensen)"_#Jorgensen4, which introduces a massless site located a
short distance away from the oxygen atom along the bisector of the HOH
angle. The atomic types of the oxygen and hydrogen atoms, the bond
and angle types for OH and HOH interactions, and the distance to the
@ -221,5 +221,9 @@ the KSPACE package is installed by default.
:line
:link(Veld)
:link(Veld2)
[(In 't Veld)] In 't Veld, Ismail, Grest, J Chem Phys (accepted) (2007).
:link(Jorgensen4)
[(Jorgensen)] Jorgensen, Chandrasekhar, Madura, Impey, Klein, J Chem
Phys, 79, 926 (1983).

View File

@ -41,7 +41,7 @@ Styles {lubricate} and {lubricate/poly} compute hydrodynamic
interactions between mono-disperse finite-size spherical particles in
a pairwise fashion. The interactions have 2 components. The first is
Ball-Melrose lubrication terms via the formulas in "(Ball and
Melrose)"_#Ball
Melrose)"_#Ball1
:c,image(Eqs/pair_lubricate.jpg)
@ -70,7 +70,7 @@ computed. Using a {cutoff} less than 3 radii is recommended if
{flaglog} is set to 1.
The other component is due to the Fast Lubrication Dynamics (FLD)
approximation, described in "(Kumar)"_#Kumar, which can be
approximation, described in "(Kumar)"_#Kumar1, which can be
represented by the following equation
:c,image(Eqs/fld.jpg)
@ -217,10 +217,10 @@ The default settings for the optional args are flagHI = 1 and flagVF =
:line
:link(Ball)
:link(Ball1)
[(Ball)] Ball and Melrose, Physica A, 247, 444-472 (1997).
:link(Kumar)
:link(Kumar1)
[(Kumar)] Kumar and Higdon, Phys Rev E, 82, 051401 (2010). See also
his thesis for more details: A. Kumar, "Microscale Dynamics in
Suspensions of Non-spherical Particles", Thesis, University of

View File

@ -37,7 +37,7 @@ other types of interactions.
The interactions have 2 components. The first is
Ball-Melrose lubrication terms via the formulas in "(Ball and
Melrose)"_#Ball
Melrose)"_#Ball2
:c,image(Eqs/pair_lubricate.jpg)
@ -67,7 +67,7 @@ computed. Using a {cutoff} less than 3 radii is recommended if
{flaglog} is set to 1.
The other component is due to the Fast Lubrication Dynamics (FLD)
approximation, described in "(Kumar)"_#Kumar. The equation being
approximation, described in "(Kumar)"_#Kumar2. The equation being
solved to balance the forces and torques is
:c,image(Eqs/fld2.jpg)
@ -211,8 +211,8 @@ The default settings for the optional args are flagHI = 1 and flagVF =
:line
:link(Ball)
:link(Ball2)
[(Ball)] Ball and Melrose, Physica A, 247, 444-472 (1997).
:link(Kumar)
:link(Kumar2)
[(Kumar)] Kumar and Higdon, Phys Rev E, 82, 051401 (2010).

View File

@ -259,7 +259,7 @@ The augt1 parameter is related to modifications in the MEAM
formulation of the partial electron density function. In recent
literature, an extra term is included in the expression for the
third-order density in order to make the densities orthogonal (see for
example "(Wang)"_#Wang, equation 3d); this term is included in the
example "(Wang)"_#Wang2, equation 3d); this term is included in the
MEAM implementation in lammps. However, in earlier published work
this term was not included when deriving parameters, including most of
those provided in the library.meam file included with lammps, and to
@ -363,7 +363,7 @@ This report may be accessed on-line via "this link"_sandreport.
:link(Valone)
[(Valone)] Valone, Baskes, Martin, Phys. Rev. B, 73, 214209 (2006).
:link(Wang)
:link(Wang2)
[(Wang)] Wang, Van Hove, Ross, Baskes, J. Chem. Phys., 121, 5410 (2004).
:link(ZBL)

View File

@ -23,7 +23,7 @@ pair_coeff * * Ti.meam.spline Ti Ti Ti :pre
The {meam/spline} style computes pairwise interactions for metals
using a variant of modified embedded-atom method (MEAM) potentials
"(Lenosky)"_#Lenosky. The total energy E is given by
"(Lenosky)"_#Lenosky1. The total energy E is given by
:c,image(Eqs/pair_meam_spline.jpg)
@ -138,7 +138,7 @@ for more info.
:line
:link(Lenosky)
:link(Lenosky1)
[(Lenosky)] Lenosky, Sadigh, Alonso, Bulatov, de la Rubia, Kim, Voter,
Kress, Modelling Simulation Materials Science Engineering, 8, 825
(2000).

View File

@ -23,8 +23,8 @@ pair_coeff * * Ti.meam.sw.spline Ti Ti Ti :pre
The {meam/sw/spline} style computes pairwise interactions for metals
using a variant of modified embedded-atom method (MEAM) potentials
"(Lenosky)"_#Lenosky with an additional Stillinger-Weber (SW) term
"(Stillinger)"_#Stillinger in the energy. This form of the potential
"(Lenosky)"_#Lenosky2 with an additional Stillinger-Weber (SW) term
"(Stillinger)"_#Stillinger1 in the energy. This form of the potential
was first proposed by Nicklas, Fellinger, and Park
"(Nicklas)"_#Nicklas. We refer to it as MEAM+SW. The total energy E
is given by
@ -123,11 +123,11 @@ See the "Making LAMMPS"_Section_start.html#start_3 section for more info.
:line
:link(Lenosky)
:link(Lenosky2)
[(Lenosky)] Lenosky, Sadigh, Alonso, Bulatov, de la Rubia, Kim, Voter,
Kress, Modell. Simul. Mater. Sci. Eng. 8, 825 (2000).
:link(Stillinger)
:link(Stillinger1)
[(Stillinger)] Stillinger, Weber, Phys. Rev. B 31, 5262 (1985).
:link(Nicklas)

View File

@ -112,7 +112,7 @@ see the doc page for individual styles to see which potentials support
these options. If N is non-zero, a table of length 2^N is
pre-computed for forces and energies, which can shrink their
computational cost by up to a factor of 2. The table is indexed via a
bit-mapping technique "(Wolff)"_#Wolff and a linear interpolation is
bit-mapping technique "(Wolff)"_#Wolff1 and a linear interpolation is
performed between adjacent table values. In our experiments with
different table styles (lookup, linear, spline), this method typically
gave the best performance in terms of speed and accuracy.
@ -253,7 +253,7 @@ mixing. See the doc pages for individual pair styles for details.
:line
:link(Wolff)
:link(Wolff1)
[(Wolff)] Wolff and Rudd, Comp Phys Comm, 120, 200-32 (1999).
:link(Sun)

View File

@ -23,8 +23,8 @@ pair_coeff * * multibody.table ENTRY1 7.0 :pre
[Description:]
Style {multi/lucy} computes a density-dependent force following from
the many-body form described in "(Moore)"_#Moore and
"(Warren)"_#Warren as
the many-body form described in "(Moore)"_#Moore1 and
"(Warren)"_#Warren1 as
:c,image(Eqs/pair_multi_lucy.jpg)
@ -38,8 +38,8 @@ The density-dependent energy for a given particle is given by:
:c,image(Eqs/pair_multi_lucy_energy.jpg)
See the supporting information of "(Brennan)"_#Brennan or the
publication by "(Moore)"_#Moore for more details on the functional
See the supporting information of "(Brennan)"_#Brennan1 or the
publication by "(Moore)"_#Moore1 for more details on the functional
form.
An interpolation table is used to evaluate the density-dependent
@ -188,12 +188,12 @@ LAMMPS"_Section_start.html#start_3 section for more info.
:line
:link(Warren)
:link(Warren1)
[(Warren)] Warren, Phys Rev E, 68, 066702 (2003).
:link(Brennan)
:link(Brennan1)
[(Brennan)] Brennan, J Chem Phys Lett, 5, 2144-2149 (2014).
:link(Moore)
:link(Moore1)
[(Moore)] Moore, J Chem Phys, 144, 104501 (2016).

View File

@ -33,8 +33,8 @@ equations through the "fix rx"_fix_rx.html command. The species of
one CG particle can interact with a species in a neighboring CG
particle through a site-site interaction potential model. Style
{multi/lucy/rx} computes the site-site density-dependent force
following from the many-body form described in "(Moore)"_#Moore and
"(Warren)"_#Warren as
following from the many-body form described in "(Moore)"_#Moore2 and
"(Warren)"_#Warren2 as
:c,image(Eqs/pair_multi_lucy.jpg)
@ -48,8 +48,8 @@ The density-dependent energy for a given particle is given by:
:c,image(Eqs/pair_multi_lucy_energy.jpg)
See the supporting information of "(Brennan)"_#Brennan or the
publication by "(Moore)"_#Moore for more details on the functional
See the supporting information of "(Brennan)"_#Brennan2 or the
publication by "(Moore)"_#Moore2 for more details on the functional
form.
An interpolation table is used to evaluate the density-dependent
@ -214,12 +214,12 @@ LAMMPS"_Section_start.html#start_3 section for more info.
:line
:link(Warren)
:link(Warren2)
[(Warren)] Warren, Phys Rev E, 68, 066702 (2003).
:link(Brennan)
:link(Brennan2)
[(Brennan)] Brennan, J Chem Phys Lett, 5, 2144-2149 (2014).
:link(Moore)
:link(Moore2)
[(Moore)] Moore, J Chem Phys, 144, 104501 (2016).

View File

@ -25,7 +25,7 @@ pair_coeff * * GaN_sw.polymorphic GaN :pre
[Description:]
The {polymorphic} pair style computes a 3-body free-form potential
("Zhou"_#Zhou) for the energy E of a system of atoms as
("Zhou"_#Zhou3) for the energy E of a system of atoms as
:c,image(Eqs/polymorphic1.jpg)
:c,image(Eqs/polymorphic2.jpg)
@ -57,7 +57,7 @@ The potential reduces to Tersoff types of potential
:c,image(Eqs/polymorphic5.jpg)
:c,image(Eqs/polymorphic6.jpg)
The potential reduces to Rockett-Tersoff ("Wang"_#Wang) type if we set
The potential reduces to Rockett-Tersoff ("Wang"_#Wang3) type if we set
:c,image(Eqs/polymorphic7.jpg)
:c,image(Eqs/polymorphic6.jpg)
@ -208,7 +208,7 @@ files.
:line
:link(Zhou)
:link(Zhou3)
[(Zhou)] X. W. Zhou, M. E. Foster, R. E. Jones, P. Yang, H. Fan, and
F. P. Doty, J. Mater. Sci. Res., 4, 15 (2015).
@ -222,7 +222,7 @@ F. P. Doty, J. Mater. Sci. Res., 4, 15 (2015).
[(Albe)] K. Albe, K. Nordlund, J. Nord, and A. Kuronen, Phys. Rev. B,
66, 035205 (2002).
:link(Wang)
:link(Wang3)
[(Wang)] J. Wang, and A. Rockett, Phys. Rev. B, 43, 12571 (1991).
:link(poly-Daw)

View File

@ -32,7 +32,7 @@ represent the contributions of chemical bonding to the potential
energy. There is more than one version of ReaxFF. The version
implemented in LAMMPS uses the functional forms documented in the
supplemental information of the following paper:
"(Chenoweth)"_#Chenoweth_2008. The version integrated into LAMMPS matches
"(Chenoweth)"_#Chenoweth_20081. The version integrated into LAMMPS matches
the most up-to-date version of ReaxFF as of summer 2010.
WARNING: pair style reax is now deprecated and will soon be retired. Users
@ -211,6 +211,6 @@ The keyword defaults are {hbcut} = 6, {hbnewflag} = 1, {tripflag} = 1,
:line
:link(Chenoweth_2008)
:link(Chenoweth_20081)
[(Chenoweth_2008)] Chenoweth, van Duin and Goddard,
Journal of Physical Chemistry A, 112, 1040-1053 (2008).

View File

@ -38,7 +38,7 @@ represent the contributions of chemical bonding to the potential
energy. There is more than one version of ReaxFF. The version
implemented in LAMMPS uses the functional forms documented in the
supplemental information of the following paper: "(Chenoweth et al.,
2008)"_#Chenoweth_2008. The version integrated into LAMMPS matches
2008)"_#Chenoweth_20082. The version integrated into LAMMPS matches
the most up-to-date version of ReaxFF as of summer 2010. For more
technical details about the pair reax/c implementation of ReaxFF, see
the "(Aktulga)"_#Aktulga paper. The {reax/c} style was initially
@ -336,7 +336,7 @@ mincap = 50.
:line
:link(Chenoweth_2008)
:link(Chenoweth_20082)
[(Chenoweth_2008)] Chenoweth, van Duin and Goddard,
Journal of Physical Chemistry A, 112, 1040-1053 (2008).

View File

@ -24,7 +24,7 @@ pair_coeff * * 1.0 1.0 1.7 3.4 3.4 1.0 1.0 1.0 :pre
[Description:]
Style {resquared} computes the RE-squared anisotropic interaction
"(Everaers)"_#Everaers, "(Babadi)"_#Babadi between pairs of
"(Everaers)"_#Everaers3, "(Babadi)"_#Babadi between pairs of
ellipsoidal and/or spherical Lennard-Jones particles. For ellipsoidal
interactions, the potential considers the ellipsoid as being comprised
of small spheres of size sigma. LJ particles are a single sphere of
@ -69,7 +69,7 @@ two interacting particles.
For ellipsoid/ellipsoid interactions, the interaction is computed by
the formulas in the supplementary document referenced above. A12 is
the Hamaker constant as described in "(Everaers)"_#Everaers. In LJ
the Hamaker constant as described in "(Everaers)"_#Everaers3. In LJ
units:
:c,image(Eqs/pair_resquared.jpg)
@ -131,7 +131,7 @@ that type in a "pair_coeff I J" command.
For large uniform molecules it has been shown that the epsilon_*_*
energy parameters are approximately representable in terms of local
contact curvatures "(Everaers)"_#Everaers:
contact curvatures "(Everaers)"_#Everaers3:
:c,image(Eqs/pair_resquared4.jpg)
@ -228,7 +228,7 @@ gayberne"_pair_gayberne.html
:line
:link(Everaers)
:link(Everaers3)
[(Everaers)] Everaers and Ejtehadi, Phys Rev E, 67, 041710 (2003).
:link(Babadi)

View File

@ -43,7 +43,7 @@ given by
:c,image(Eqs/pair_cmm.jpg)
as required for the SDK Coarse-grained MD parametrization discussed in
"(Shinoda)"_#Shinoda and "(DeVane)"_#DeVane. Rc is the cutoff.
"(Shinoda)"_#Shinoda3 and "(DeVane)"_#DeVane. Rc is the cutoff.
Style {lj/sdk/coul/long} computes the adds Coulombic interactions
with an additional damping factor applied so it can be used in
@ -148,7 +148,7 @@ LAMMPS"_Section_start.html#start_3 section for more info.
:line
:link(Shinoda)
:link(Shinoda3)
[(Shinoda)] Shinoda, DeVane, Klein, Mol Sim, 33, 27 (2007).
:link(DeVane)

View File

@ -51,7 +51,7 @@ pair_coeff * * PathToLammps/potentials/ffield.smtbq.TiO2 O Ti :pre
The electrostatic part of the energy consists of two components :
self-energy of atom {i} in the form of a second order charge dependent
polynomial and a long-range Coulombic electrostatic interaction. The
latter uses the wolf summation method described in "Wolf"_#Wolf,
latter uses the wolf summation method described in "Wolf"_#Wolf2,
spherically truncated at a longer cutoff, {R<sub>coul</sub>}. The
charge of each ion is modeled by an orbital Slater which depends on
the principal quantum number ({n}) of the outer orbital shared by the
@ -117,7 +117,7 @@ neighbors.
The SMTB-Q potential is a variable charge potential. The equilibrium
charge on each atom is calculated by the electronegativity
equalization (QEq) method. See "Rick"_#Rick for further detail. One
equalization (QEq) method. See "Rick"_#Rick3 for further detail. One
can adjust the frequency, the maximum number of iterative loop and the
convergence of the equilibrium charge calculation. To obtain the
energy conservation in NVE thermodynamic ensemble, we recommend to use
@ -252,10 +252,10 @@ H. Jonsson, J. Phys. Chem. C 2015, 119, 10391-10399
[(SMTB-Q_3)] R. Tetot, N. Salles, S. Landron, E. Amzallag, Surface
Science 616, 19-8722 28 (2013)
:link(Wolf)
:link(Wolf2)
[(Wolf)] D. Wolf, P. Keblinski, S. R. Phillpot, J. Eggebrecht, J Chem
Phys, 110, 8254 (1999).
:link(Rick)
:link(Rick3)
[(Rick)] S. W. Rick, S. J. Stuart, B. J. Berne, J Chem Phys 101, 6141
(1994).

View File

@ -21,8 +21,8 @@ pair_coeff * * InP.snapcoeff In P InP.snapparam In In P P :pre
Style {snap} computes interactions
using the spectral neighbor analysis potential (SNAP)
"(Thompson)"_#Thompson2014. Like the GAP framework of Bartok et al.
"(Bartok2010)"_#Bartok2010, "(Bartok2013)"_#Bartok2013
"(Thompson)"_#Thompson20142. Like the GAP framework of Bartok et al.
"(Bartok2010)"_#Bartok20102, "(Bartok2013)"_#Bartok2013
it uses bispectrum components
to characterize the local neighborhood of each atom
in a very general way. The mathematical definition of the
@ -182,10 +182,10 @@ LAMMPS"_Section_start.html#start_3 section for more info.
:line
:link(Thompson2014)
:link(Thompson20142)
[(Thompson)] Thompson, Swiler, Trott, Foiles, Tucker, J Comp Phys, 285, 316 (2015).
:link(Bartok2010)
:link(Bartok20102)
[(Bartok2010)] Bartok, Payne, Risi, Csanyi, Phys Rev Lett, 104, 136403 (2010).
:link(Bartok2013)

View File

@ -65,7 +65,7 @@ according to the lever rule,
where {L} is the normalized distance from the atom to the point of
closest approach of bond {i} and {j}. The {mid} option takes {L} as
0.5 for each interaction as described in "(Sirk)"_#Sirk.
0.5 for each interaction as described in "(Sirk)"_#Sirk2.
The following coefficients must be defined via the
"pair_coeff"_pair_coeff.html command as in the examples above, or in
@ -161,6 +161,6 @@ The default keyword value is exclude = yes.
:line
:link(Sirk)
:link(Sirk2)
[(Sirk)] Sirk TW, Sliozberg YR, Brennan JK, Lisal M, Andzelm JW, J
Chem Phys, 136 (13) 134903, 2012.

View File

@ -24,7 +24,7 @@ pair_coeff * * GaN.sw Ga N Ga :pre
[Description:]
The {sw} style computes a 3-body "Stillinger-Weber"_#Stillinger
The {sw} style computes a 3-body "Stillinger-Weber"_#Stillinger2
potential for the energy E of a system of atoms as
:c,image(Eqs/pair_sw.jpg)
@ -212,5 +212,5 @@ appropriate units if your simulation doesn't use "metal" units.
:line
:link(Stillinger)
:link(Stillinger2)
[(Stillinger)] Stillinger and Weber, Phys Rev B, 31, 5262 (1985).

View File

@ -64,7 +64,7 @@ computes the energy or force.
For the {bitmap} style, the specified {N} is used to create
interpolation tables that are 2^N in length. The distance {R} is used
to index into the table via a fast bit-mapping technique due to
"(Wolff)"_#Wolff, and a linear interpolation is performed between
"(Wolff)"_#Wolff2, and a linear interpolation is performed between
adjacent table values.
The following coefficients must be defined for each pair of atoms
@ -268,5 +268,5 @@ This pair style can only be used via the {pair} keyword of the
:line
:link(Wolff)
:link(Wolff2)
[(Wolff)] Wolff and Rudd, Comp Phys Comm, 120, 200-32 (1999).

View File

@ -32,7 +32,7 @@ pair_coeff * * SiCGe.tersoff Si(D) :pre
[Description:]
The {tersoff} style computes a 3-body Tersoff potential
"(Tersoff_1)"_#Tersoff_1 for the energy E of a system of atoms as
"(Tersoff_1)"_#Tersoff_11 for the energy E of a system of atoms as
:c,image(Eqs/pair_tersoff_1.jpg)
@ -136,7 +136,7 @@ be set to 0.0 if desired.
Note that the twobody parameters in entries such as SiCC and CSiSi
are often the same, due to the common use of symmetric mixing rules,
but this is not always the case. For example, the beta and n parameters in
Tersoff_2 "(Tersoff_2)"_#Tersoff_2 are not symmetric.
Tersoff_2 "(Tersoff_2)"_#Tersoff_21 are not symmetric.
We chose the above form so as to enable users to define all commonly
used variants of the Tersoff potential. In particular, our form
@ -145,7 +145,7 @@ it reduces to the form of "Albe et al."_#Albe when beta = 1 and m = 1.
Note that in the current Tersoff implementation in LAMMPS, m must be
specified as either 3 or 1. Tersoff used a slightly different but
equivalent form for alloys, which we will refer to as Tersoff_2
potential "(Tersoff_2)"_#Tersoff_2. The {tersoff/table} style implements
potential "(Tersoff_2)"_#Tersoff_21. The {tersoff/table} style implements
Tersoff_2 parameterization only.
LAMMPS parameter values for Tersoff_2 can be obtained as follows:
@ -242,12 +242,12 @@ appropriate units if your simulation doesn't use "metal" units.
:line
:link(Tersoff_1)
:link(Tersoff_11)
[(Tersoff_1)] J. Tersoff, Phys Rev B, 37, 6991 (1988).
:link(Albe)
[(Albe)] J. Nord, K. Albe, P. Erhart, and K. Nordlund, J. Phys.:
Condens. Matter, 15, 5649(2003).
:link(Tersoff_2)
:link(Tersoff_21)
[(Tersoff_2)] J. Tersoff, Phys Rev B, 39, 5566 (1989); errata (PRB 41, 3248)

View File

@ -31,7 +31,7 @@ pair_coeff * * Si.tersoff.modc Si Si :pre
The {tersoff/mod} and {tersoff/mod/c} styles computes a bond-order type
interatomic potential "(Kumagai)"_#Kumagai based on a 3-body Tersoff
potential "(Tersoff_1)"_#Tersoff_1, "(Tersoff_2)"_#Tersoff_2 with
potential "(Tersoff_1)"_#Tersoff_12, "(Tersoff_2)"_#Tersoff_22 with
modified cutoff function and angular-dependent term, giving the energy
E of a system of atoms as
@ -194,10 +194,10 @@ appropriate units if your simulation doesn't use "metal" units.
[(Kumagai)] T. Kumagai, S. Izumi, S. Hara, S. Sakai,
Comp. Mat. Science, 39, 457 (2007).
:link(Tersoff_1)
:link(Tersoff_12)
[(Tersoff_1)] J. Tersoff, Phys Rev B, 37, 6991 (1988).
:link(Tersoff_2)
:link(Tersoff_22)
[(Tersoff_2)] J. Tersoff, Phys Rev B, 38, 9902 (1988).
:link(Murty)

View File

@ -71,8 +71,8 @@ short distances by a function
\exp \left( - s_\{ij\} r_\{ij\} \right) \end\{equation\}
This function results from an adaptation to point charges
"(Noskov)"_#Noskov of the dipole screening scheme originally proposed
by "Thole"_#Thole. The scaling coefficient \(s_\{ij\} \) is determined
"(Noskov)"_#Noskov1 of the dipole screening scheme originally proposed
by "Thole"_#Thole1. The scaling coefficient \(s_\{ij\} \) is determined
by the polarizability of the atoms, \( \alpha_i \), and by a Thole
damping parameter \( a \). This Thole damping parameter usually takes
a value of 2.6, but in certain force fields the value can depend upon
@ -186,8 +186,8 @@ temp/drude"_compute_temp_drude.html
:line
:link(Noskov)
:link(Noskov1)
[(Noskov)] Noskov, Lamoureux and Roux, J Phys Chem B, 109, 6705 (2005).
:link(Thole)
:link(Thole1)
[(Thole)] Chem Phys, 59, 341 (1981).

View File

@ -48,11 +48,11 @@ replicas of a system. One or more replicas can be used. The total
number of steps {N} to run can be interpreted in one of two ways; see
discussion of the {time} keyword below.
PRD is described in "this paper"_#Voter by Art Voter. It is a method
PRD is described in "this paper"_#Voter1998 by Art Voter. It is a method
for performing accelerated dynamics that is suitable for
infrequent-event systems that obey first-order kinetics. A good
overview of accelerated dynamics methods for such systems in given in
"this review paper"_#Voter2 from the same group. To quote from the
"this review paper"_#Voter2002prd from the same group. To quote from the
paper: "The dynamical evolution is characterized by vibrational
excursions within a potential basin, punctuated by occasional
transitions between basins." The transition probability is
@ -316,9 +316,9 @@ geom gaussian, and time = steps.
:line
:link(Voter)
[(Voter)] Voter, Phys Rev B, 57, 13985 (1998).
:link(Voter1998)
[(Voter1998)] Voter, Phys Rev B, 57, 13985 (1998).
:link(Voter2)
[(Voter2)] Voter, Montalenti, Germann, Annual Review of Materials
:link(Voter2002prd)
[(Voter2002)] Voter, Montalenti, Germann, Annual Review of Materials
Research 32, 321 (2002).

View File

@ -633,6 +633,15 @@ style, in which case the mass of each particle (body or point
particle) is specified explicitly. This is because the volume of the
body is unknown.
Note that for 2d simulations of spheres, this command will treat them
as spheres when converting density to mass. However, they can also be
modeled as 2d discs (circles) if the "set density/disc"_set.html
command is used to reset their mass after the read_data command is
used. A {disc} keyword can also be used with time integration fixes,
such as "fix nve/sphere"_fix_nve_sphere.html and "fix
nvt/sphere"_fix_nve_sphere.html to time integrate their motion as 2d
discs (not 3d spheres), by changing their moment of inertia.
For atom_style hybrid, following the 5 initial values (ID,type,x,y,z),
specific values for each sub-style must be listed. The order of the
sub-styles is the same as they were listed in the

View File

@ -130,7 +130,7 @@ options to support this, and strategies are discussed in
:line
The {respa} style implements the rRESPA multi-timescale integrator
"(Tuckerman)"_#Tuckerman with N hierarchical levels, where level 1 is
"(Tuckerman)"_#Tuckerman3 with N hierarchical levels, where level 1 is
the innermost loop (shortest timestep) and level N is the outermost
loop (largest timestep). The loop factor arguments specify what the
looping factor is between levels. N1 specifies the number of
@ -289,6 +289,6 @@ run_style verlet :pre
:line
:link(Tuckerman)
:link(Tuckerman3)
[(Tuckerman)] Tuckerman, Berne and Martyna, J Chem Phys, 97, p 1990
(1992).

View File

@ -20,7 +20,7 @@ keyword = {type} or {type/fraction} or {mol} or {x} or {y} or {z} or \
{quat/random} or {diameter} or {shape} or \
{length} or {tri} or {theta} or {theta/random} or \
{angmom} or {omega} or \
{mass} or {density} or {volume} or {image} or \
{mass} or {density} or {density/disc} or {volume} or {image} or \
{bond} or {angle} or {dihedral} or {improper} or \
{meso/e} or {meso/cv} or {meso/rho} or \
{smd/contact/radius} or {smd/mass/density} or {dpd/theta} or \
@ -72,7 +72,9 @@ keyword = {type} or {type/fraction} or {mol} or {x} or {y} or {z} or \
any of wx,wy,wz can be an atom-style variable (see below)
{mass} value = per-atom mass (mass units)
value can be an atom-style variable (see below)
{density} value = particle density for sphere or ellipsoid (mass/distance^3 or mass/distance^2 or mass/distance units, depending on dimensionality of particle)
{density} value = particle density for a sphere or ellipsoid (mass/distance^3 units), or for a triangle (mass/distance^2 units) or line (mass/distance units) particle
value can be an atom-style variable (see below)
{density/disc} value = particle density for a 2d disc or ellipse (mass/distance^2 units)
value can be an atom-style variable (see below)
{volume} value = particle volume for Peridynamic particle (distance^3 units)
value can be an atom-style variable (see below)
@ -318,23 +320,36 @@ must have a per-atom mass attribute, as defined by the
"atom_style"_atom_style.html command. See the "mass" command for how
to set mass values on a per-type basis.
Keyword {density} also sets the mass of all selected particles, but in
a different way. The particles must have a per-atom mass attribute,
as defined by the "atom_style"_atom_style.html command. If the atom
has a radius attribute (see "atom_style sphere"_atom_style.html) and
its radius is non-zero, its mass is set from the density and particle
volume. If the atom has a shape attribute (see "atom_style
Keyword {density} or {density/disc} also sets the mass of all selected
particles, but in a different way. The particles must have a per-atom
mass attribute, as defined by the "atom_style"_atom_style.html
command. If the atom has a radius attribute (see "atom_style
sphere"_atom_style.html) and its radius is non-zero, its mass is set
from the density and particle volume for 3d systems (the input density
is assumed to be in mass/distance^3 units). For 2d, the default is
for LAMMPS to model particles with a radius attribute as spheres.
However, if the {density/disc} keyword is used, then they can be
modeled as 2d discs (circles). Their mass is set from the density and
particle area (the input density is assumed to be in mass/distance^2
units).
If the atom has a shape attribute (see "atom_style
ellipsoid"_atom_style.html) and its 3 shape parameters are non-zero,
then its mass is set from the density and particle volume. If the
atom has a length attribute (see "atom_style line"_atom_style.html)
and its length is non-zero, then its mass is set from the density and
line segment length (the input density is assumed to be in
mass/distance units). If the atom has an area attribute (see
"atom_style tri"_atom_style.html) and its area is non-zero, then its
mass is set from the density and triangle area (the input density is
assumed to be in mass/distance^2 units). If none of these cases are
valid, then the mass is set to the density value directly (the input
density is assumed to be in mass units).
then its mass is set from the density and particle volume (the input
density is assumed to be in mass/distance^3 units). The
{density/disc} keyword has no effect; it does not (yet) treat 3d
ellipsoids as 2d ellipses.
If the atom has a length attribute (see "atom_style
line"_atom_style.html) and its length is non-zero, then its mass is
set from the density and line segment length (the input density is
assumed to be in mass/distance units). If the atom has an area
attribute (see "atom_style tri"_atom_style.html) and its area is
non-zero, then its mass is set from the density and triangle area (the
input density is assumed to be in mass/distance^2 units).
If none of these cases are valid, then the mass is set to the density
value directly (the input density is assumed to be in mass units).
Keyword {volume} sets the volume of all selected particles.
Currently, only the "atom_style peri"_atom_style.html command defines

View File

@ -56,11 +56,11 @@ Run a temperature accelerated dynamics (TAD) simulation. This method
requires two or more partitions to perform NEB transition state
searches.
TAD is described in "this paper"_#Voter by Art Voter. It is a method
TAD is described in "this paper"_#Voter2000 by Art Voter. It is a method
that uses accelerated dynamics at an elevated temperature to generate
results at a specified lower temperature. A good overview of
accelerated dynamics methods for such systems is given in "this review
paper"_#Voter2 from the same group. In general, these methods assume
paper"_#Voter2002 from the same group. In general, these methods assume
that the long-time dynamics is dominated by infrequent events i.e. the
system is is confined to low energy basins for long periods,
punctuated by brief, randomly-occurring transitions to adjacent
@ -304,9 +304,9 @@ the "timestep"_timestep.html command, and {neb_log} = "none".
:line
:link(Voter)
[(Voter)] Sorensen and Voter, J Chem Phys, 112, 9599 (2000)
:link(Voter2000)
[(Voter2000)] Sorensen and Voter, J Chem Phys, 112, 9599 (2000)
:link(Voter2)
[(Voter2)] Voter, Montalenti, Germann, Annual Review of Materials
:link(Voter2002)
[(Voter2002)] Voter, Montalenti, Germann, Annual Review of Materials
Research 32, 321 (2002).

View File

@ -54,7 +54,7 @@ charge, and force constant can be chosen following different
strategies, as in the following examples of polarizable force
fields:
"Lamoureux and Roux"_#Lamoureux suggest adopting a global half-stiffness, \
"Lamoureux and Roux"_#Lamoureux2 suggest adopting a global half-stiffness, \
\(K_D\) = 500 kcal/(mol Ang \(\{\}^2\)) - which corresponds to a force \
constant \(k_D\) = 4184 kJ/(mol Ang \(\{\}^2\)) - for all types of \
core-Drude bond, a global mass \(m_D\) = 0.4 g/mol (or u) for all types \
@ -83,7 +83,7 @@ from those of the normal atoms. Thermalizing the Drude dipoles at
temperatures comparable to the rest of the simulation leads to several
problems (kinetic energy transfer, very short timestep, etc.), which
can be remediate by the "cold Drude" technique ("Lamoureux and
Roux"_#Lamoureux).
Roux"_#Lamoureux2).
Two closely related models are used to represent polarization through
"charges on a spring": the core-shell model and the Drude
@ -105,7 +105,7 @@ due to the short distances, so an atom may capture the Drude particle \
(shell) of a neighbor, or the induced dipoles within the same molecule \
may align too much. To avoid this, damping at short of the \
interactions between the point charges composing the induced dipole \
can be done by "Thole"_#Thole functions. :l
can be done by "Thole"_#Thole2 functions. :l
:ole
@ -284,7 +284,7 @@ pair_style hybrid/overlay lj/cut/coul/long 10.0 thole 2.6 10.0 :pre
This tells LAMMPS that we are using two pair_styles. The first one is
as above ({lj/cut/coul/long 10.0}). The second one is a {thole}
pair_style with default screening factor 2.6 ("Noskov"_#Noskov) and
pair_style with default screening factor 2.6 ("Noskov"_#Noskov2) and
cutoff 10.0.
Since {hybrid/overlay} does not support mixing rules, the interaction
@ -381,7 +381,7 @@ group DRUDES type 6 7 8 # DPs :pre
Note that with the fixes {drude/transform}, it is not required to
specify {comm_modify vel yes} because the fixes do it anyway (several
times and for the forces also). To avoid the flying ice cube artifact
"(Lamoureux)"_#Lamoureux, where the atoms progressively freeze and the
"(Lamoureux)"_#Lamoureux2, where the atoms progressively freeze and the
center of mass of the whole system drifts faster and faster, the {fix
momentum} can be used. For instance:
@ -448,21 +448,21 @@ fix INVERSE all drude/transform/inverse :pre
:line
:link(Lamoureux)
:link(Lamoureux2)
[(Lamoureux)] Lamoureux and Roux, J Chem Phys, 119, 3025-3039 (2003)
:link(Schroeder)
[(Schroeder)] Schroeder and Steinhauser, J Chem Phys, 133,
154511 (2010).
:link(Jiang)
:link(Jiang2)
[(Jiang)] Jiang, Hardy, Phillips, MacKerell, Schulten, and Roux,
J Phys Chem Lett, 2, 87-92 (2011).
:link(Thole)
:link(Thole2)
[(Thole)] Chem Phys, 59, 341 (1981).
:link(Noskov)
:link(Noskov2)
[(Noskov)] Noskov, Lamoureux and Roux, J Phys Chem B, 109, 6705 (2005).
:link(SWM4-NDP)

View File

@ -53,6 +53,17 @@ using namespace LAMMPS_NS;
using namespace FixConst;
using namespace MathConst;
// large energy value used to signal overlap
#define MAXENERGYSIGNAL 1.0e100
// this must be lower than MAXENERGYSIGNAL
// by a large amount, so that it is still
// less than total energy when negative
// energy changes are adddd to MAXENERGYSIGNAL
#define MAXENERGYTEST 1.0e50
enum{ATOM,MOLECULE};
/* ---------------------------------------------------------------------- */
@ -245,6 +256,8 @@ void FixGCMC::options(int narg, char **arg)
grouptypebits = NULL;
energy_intra = 0.0;
tfac_insert = 1.0;
overlap_cutoff = 0.0;
overlap_flag = 0;
int iarg = 0;
while (iarg < narg) {
@ -303,11 +316,11 @@ void FixGCMC::options(int narg, char **arg)
} else if (strcmp(arg[iarg],"group") == 0) {
if (iarg+2 > narg) error->all(FLERR,"Illegal fix gcmc command");
if (ngroups >= ngroupsmax) {
ngroupsmax = ngroups+1;
groupstrings = (char **)
memory->srealloc(groupstrings,
ngroupsmax*sizeof(char *),
"fix_gcmc:groupstrings");
ngroupsmax = ngroups+1;
groupstrings = (char **)
memory->srealloc(groupstrings,
ngroupsmax*sizeof(char *),
"fix_gcmc:groupstrings");
}
int n = strlen(arg[iarg+1]) + 1;
groupstrings[ngroups] = new char[n];
@ -317,13 +330,13 @@ void FixGCMC::options(int narg, char **arg)
} else if (strcmp(arg[iarg],"grouptype") == 0) {
if (iarg+3 > narg) error->all(FLERR,"Illegal fix gcmc command");
if (ngrouptypes >= ngrouptypesmax) {
ngrouptypesmax = ngrouptypes+1;
grouptypes = (int*) memory->srealloc(grouptypes,ngrouptypesmax*sizeof(int),
"fix_gcmc:grouptypes");
grouptypestrings = (char**)
memory->srealloc(grouptypestrings,
ngrouptypesmax*sizeof(char *),
"fix_gcmc:grouptypestrings");
ngrouptypesmax = ngrouptypes+1;
grouptypes = (int*) memory->srealloc(grouptypes,ngrouptypesmax*sizeof(int),
"fix_gcmc:grouptypes");
grouptypestrings = (char**)
memory->srealloc(grouptypestrings,
ngrouptypesmax*sizeof(char *),
"fix_gcmc:grouptypestrings");
}
grouptypes[ngrouptypes] = atoi(arg[iarg+1]);
int n = strlen(arg[iarg+2]) + 1;
@ -339,6 +352,11 @@ void FixGCMC::options(int narg, char **arg)
if (iarg+2 > narg) error->all(FLERR,"Illegal fix gcmc command");
tfac_insert = force->numeric(FLERR,arg[iarg+1]);
iarg += 2;
} else if (strcmp(arg[iarg],"overlap_cutoff") == 0) {
if (iarg+2 > narg) error->all(FLERR,"Illegal fix gcmc command");
overlap_cutoff = force->numeric(FLERR,arg[iarg+1]);
overlap_flag = 1;
iarg += 2;
} else error->all(FLERR,"Illegal fix gcmc command");
}
}
@ -402,10 +420,10 @@ void FixGCMC::init()
(force->pair->single_enable == 0) ||
(force->pair_match("hybrid",0)) ||
(force->pair_match("eam",0))
) {
) {
full_flag = true;
if (comm->me == 0)
error->warning(FLERR,"Fix gcmc using full_energy option");
error->warning(FLERR,"Fix gcmc using full_energy option");
}
}
@ -610,7 +628,7 @@ void FixGCMC::init()
for (int igroup = 0; igroup < ngrouptypes; igroup++) {
int jgroup = group->find(grouptypestrings[igroup]);
if (jgroup == -1)
error->all(FLERR,"Could not find specified fix gcmc group ID");
error->all(FLERR,"Could not find specified fix gcmc group ID");
grouptypebits[igroup] = group->bitmask[jgroup];
}
}
@ -662,11 +680,11 @@ void FixGCMC::pre_exchange()
int random_int_fraction =
static_cast<int>(random_equal->uniform()*ncycles) + 1;
if (random_int_fraction <= nmcmoves) {
if (random_equal->uniform() < 0.5) attempt_molecule_translation_full();
else attempt_molecule_rotation_full();
if (random_equal->uniform() < 0.5) attempt_molecule_translation_full();
else attempt_molecule_rotation_full();
} else {
if (random_equal->uniform() < 0.5) attempt_molecule_deletion_full();
else attempt_molecule_insertion_full();
if (random_equal->uniform() < 0.5) attempt_molecule_deletion_full();
else attempt_molecule_insertion_full();
}
}
} else {
@ -676,8 +694,8 @@ void FixGCMC::pre_exchange()
if (random_int_fraction <= nmcmoves) {
attempt_atomic_translation_full();
} else {
if (random_equal->uniform() < 0.5) attempt_atomic_deletion_full();
else attempt_atomic_insertion_full();
if (random_equal->uniform() < 0.5) attempt_atomic_deletion_full();
else attempt_atomic_insertion_full();
}
}
}
@ -699,7 +717,7 @@ void FixGCMC::pre_exchange()
else attempt_molecule_rotation();
} else {
if (random_equal->uniform() < 0.5) attempt_molecule_deletion();
else attempt_molecule_insertion();
else attempt_molecule_insertion();
}
}
} else {
@ -709,8 +727,8 @@ void FixGCMC::pre_exchange()
if (random_int_fraction <= nmcmoves) {
attempt_atomic_translation();
} else {
if (random_equal->uniform() < 0.5) attempt_atomic_deletion();
else attempt_atomic_insertion();
if (random_equal->uniform() < 0.5) attempt_atomic_deletion();
else attempt_atomic_insertion();
}
}
}
@ -764,7 +782,9 @@ void FixGCMC::attempt_atomic_translation()
error->one(FLERR,"Fix gcmc put atom outside box");
double energy_after = energy(i,ngcmc_type,-1,coord);
if (random_unequal->uniform() <
if (energy_after < MAXENERGYTEST &&
random_unequal->uniform() <
exp(beta*(energy_before - energy_after))) {
x[i][0] = coord[0];
x[i][1] = coord[1];
@ -878,12 +898,12 @@ void FixGCMC::attempt_atomic_insertion()
if (!domain->inside(coord))
error->one(FLERR,"Fix gcmc put atom outside box");
if (coord[0] >= sublo[0] && coord[0] < subhi[0] &&
coord[1] >= sublo[1] && coord[1] < subhi[1] &&
coord[2] >= sublo[2] && coord[2] < subhi[2]) proc_flag = 1;
coord[1] >= sublo[1] && coord[1] < subhi[1] &&
coord[2] >= sublo[2] && coord[2] < subhi[2]) proc_flag = 1;
} else {
if (lamda[0] >= sublo[0] && lamda[0] < subhi[0] &&
lamda[1] >= sublo[1] && lamda[1] < subhi[1] &&
lamda[2] >= sublo[2] && lamda[2] < subhi[2]) proc_flag = 1;
lamda[1] >= sublo[1] && lamda[1] < subhi[1] &&
lamda[2] >= sublo[2] && lamda[2] < subhi[2]) proc_flag = 1;
}
int success = 0;
@ -895,25 +915,27 @@ void FixGCMC::attempt_atomic_insertion()
atom->q[ii] = charge;
}
double insertion_energy = energy(ii,ngcmc_type,-1,coord);
if (random_unequal->uniform() <
if (insertion_energy < MAXENERGYTEST &&
random_unequal->uniform() <
zz*volume*exp(-beta*insertion_energy)/(ngas+1)) {
atom->avec->create_atom(ngcmc_type,coord);
int m = atom->nlocal - 1;
// add to groups
// optionally add to type-based groups
atom->mask[m] = groupbitall;
for (int igroup = 0; igroup < ngrouptypes; igroup++) {
if (ngcmc_type == grouptypes[igroup])
atom->mask[m] |= grouptypebits[igroup];
if (ngcmc_type == grouptypes[igroup])
atom->mask[m] |= grouptypebits[igroup];
}
atom->v[m][0] = random_unequal->gaussian()*sigma;
atom->v[m][1] = random_unequal->gaussian()*sigma;
atom->v[m][2] = random_unequal->gaussian()*sigma;
modify->create_attribute(m);
success = 1;
}
}
@ -1004,7 +1026,7 @@ void FixGCMC::attempt_molecule_translation()
coord[1] = x[i][1] + com_displace[1];
coord[2] = x[i][2] + com_displace[2];
if (!domain->inside_nonperiodic(coord))
error->one(FLERR,"Fix gcmc put atom outside box");
error->one(FLERR,"Fix gcmc put atom outside box");
energy_after += energy(i,atom->type[i],translation_molecule,coord);
}
}
@ -1012,7 +1034,8 @@ void FixGCMC::attempt_molecule_translation()
double energy_after_sum = 0.0;
MPI_Allreduce(&energy_after,&energy_after_sum,1,MPI_DOUBLE,MPI_SUM,world);
if (random_equal->uniform() <
if (energy_after_sum < MAXENERGYTEST &&
random_equal->uniform() <
exp(beta*(energy_before_sum - energy_after_sum))) {
for (int i = 0; i < nlocal; i++) {
if (atom->molecule[i] == translation_molecule) {
@ -1097,7 +1120,7 @@ void FixGCMC::attempt_molecule_rotation()
xtmp[2] = atom_coord[n][2];
domain->remap(xtmp);
if (!domain->inside(xtmp))
error->one(FLERR,"Fix gcmc put atom outside box");
error->one(FLERR,"Fix gcmc put atom outside box");
energy_after += energy(i,atom->type[i],rotation_molecule,xtmp);
n++;
}
@ -1106,7 +1129,8 @@ void FixGCMC::attempt_molecule_rotation()
double energy_after_sum = 0.0;
MPI_Allreduce(&energy_after,&energy_after_sum,1,MPI_DOUBLE,MPI_SUM,world);
if (random_equal->uniform() <
if (energy_after_sum < MAXENERGYTEST &&
random_equal->uniform() <
exp(beta*(energy_before_sum - energy_after_sum))) {
int n = 0;
for (int i = 0; i < nlocal; i++) {
@ -1253,21 +1277,21 @@ void FixGCMC::attempt_molecule_insertion()
procflag[i] = false;
if (triclinic == 0) {
if (xtmp[0] >= sublo[0] && xtmp[0] < subhi[0] &&
xtmp[1] >= sublo[1] && xtmp[1] < subhi[1] &&
xtmp[2] >= sublo[2] && xtmp[2] < subhi[2]) procflag[i] = true;
xtmp[1] >= sublo[1] && xtmp[1] < subhi[1] &&
xtmp[2] >= sublo[2] && xtmp[2] < subhi[2]) procflag[i] = true;
} else {
domain->x2lamda(xtmp,lamda);
if (lamda[0] >= sublo[0] && lamda[0] < subhi[0] &&
lamda[1] >= sublo[1] && lamda[1] < subhi[1] &&
lamda[2] >= sublo[2] && lamda[2] < subhi[2]) procflag[i] = true;
lamda[1] >= sublo[1] && lamda[1] < subhi[1] &&
lamda[2] >= sublo[2] && lamda[2] < subhi[2]) procflag[i] = true;
}
if (procflag[i]) {
int ii = -1;
if (onemols[imol]->qflag == 1) {
ii = atom->nlocal + atom->nghost;
if (ii >= atom->nmax) atom->avec->grow(0);
atom->q[ii] = onemols[imol]->q[i];
ii = atom->nlocal + atom->nghost;
if (ii >= atom->nmax) atom->avec->grow(0);
atom->q[ii] = onemols[imol]->q[i];
}
insertion_energy += energy(ii,onemols[imol]->type[i],-1,xtmp);
}
@ -1277,9 +1301,10 @@ void FixGCMC::attempt_molecule_insertion()
MPI_Allreduce(&insertion_energy,&insertion_energy_sum,1,
MPI_DOUBLE,MPI_SUM,world);
if (random_equal->uniform() < zz*volume*natoms_per_molecule*
if (insertion_energy_sum < MAXENERGYTEST &&
random_equal->uniform() < zz*volume*natoms_per_molecule*
exp(-beta*insertion_energy_sum)/(ngas + natoms_per_molecule)) {
tagint maxmol = 0;
for (int i = 0; i < atom->nlocal; i++) maxmol = MAX(maxmol,atom->molecule[i]);
tagint maxmol_all;
@ -1287,33 +1312,33 @@ void FixGCMC::attempt_molecule_insertion()
maxmol_all++;
if (maxmol_all >= MAXTAGINT)
error->all(FLERR,"Fix gcmc ran out of available molecule IDs");
tagint maxtag = 0;
for (int i = 0; i < atom->nlocal; i++) maxtag = MAX(maxtag,atom->tag[i]);
tagint maxtag_all;
MPI_Allreduce(&maxtag,&maxtag_all,1,MPI_LMP_TAGINT,MPI_MAX,world);
int nlocalprev = atom->nlocal;
double vnew[3];
vnew[0] = random_equal->gaussian()*sigma;
vnew[1] = random_equal->gaussian()*sigma;
vnew[2] = random_equal->gaussian()*sigma;
for (int i = 0; i < natoms_per_molecule; i++) {
if (procflag[i]) {
atom->avec->create_atom(onemols[imol]->type[i],atom_coord[i]);
int m = atom->nlocal - 1;
// add to groups
// optionally add to type-based groups
atom->mask[m] = groupbitall;
for (int igroup = 0; igroup < ngrouptypes; igroup++) {
if (ngcmc_type == grouptypes[igroup])
atom->mask[m] |= grouptypebits[igroup];
}
// add to groups
// optionally add to type-based groups
atom->mask[m] = groupbitall;
for (int igroup = 0; igroup < ngrouptypes; igroup++) {
if (ngcmc_type == grouptypes[igroup])
atom->mask[m] |= grouptypebits[igroup];
}
atom->image[m] = imagezero;
domain->remap(atom->x[m],atom->image[m]);
atom->molecule[m] = maxmol_all;
@ -1323,15 +1348,15 @@ void FixGCMC::attempt_molecule_insertion()
atom->v[m][0] = vnew[0];
atom->v[m][1] = vnew[1];
atom->v[m][2] = vnew[2];
atom->add_molecule_atom(onemols[imol],i,m,maxtag_all);
modify->create_attribute(m);
}
}
if (shakeflag)
fixshake->set_molecule(nlocalprev,maxtag_all,imol,com_coord,vnew,quat);
atom->natoms += natoms_per_molecule;
if (atom->natoms < 0)
error->all(FLERR,"Too many total atoms");
@ -1412,18 +1437,19 @@ void FixGCMC::attempt_atomic_translation_full()
double energy_after = energy_full();
if (random_equal->uniform() <
if (energy_after < MAXENERGYTEST &&
random_equal->uniform() <
exp(beta*(energy_before - energy_after))) {
energy_stored = energy_after;
ntranslation_successes += 1.0;
} else {
tagint tmptag_all;
MPI_Allreduce(&tmptag,&tmptag_all,1,MPI_LMP_TAGINT,MPI_MAX,world);
double xtmp_all[3];
MPI_Allreduce(&xtmp,&xtmp_all,3,MPI_DOUBLE,MPI_SUM,world);
for (int i = 0; i < atom->nlocal; i++) {
if (tmptag_all == atom->tag[i]) {
x[i][0] = xtmp_all[0];
@ -1535,12 +1561,12 @@ void FixGCMC::attempt_atomic_insertion_full()
if (!domain->inside(coord))
error->one(FLERR,"Fix gcmc put atom outside box");
if (coord[0] >= sublo[0] && coord[0] < subhi[0] &&
coord[1] >= sublo[1] && coord[1] < subhi[1] &&
coord[2] >= sublo[2] && coord[2] < subhi[2]) proc_flag = 1;
coord[1] >= sublo[1] && coord[1] < subhi[1] &&
coord[2] >= sublo[2] && coord[2] < subhi[2]) proc_flag = 1;
} else {
if (lamda[0] >= sublo[0] && lamda[0] < subhi[0] &&
lamda[1] >= sublo[1] && lamda[1] < subhi[1] &&
lamda[2] >= sublo[2] && lamda[2] < subhi[2]) proc_flag = 1;
lamda[1] >= sublo[1] && lamda[1] < subhi[1] &&
lamda[2] >= sublo[2] && lamda[2] < subhi[2]) proc_flag = 1;
}
if (proc_flag) {
@ -1553,7 +1579,7 @@ void FixGCMC::attempt_atomic_insertion_full()
atom->mask[m] = groupbitall;
for (int igroup = 0; igroup < ngrouptypes; igroup++) {
if (ngcmc_type == grouptypes[igroup])
atom->mask[m] |= grouptypebits[igroup];
atom->mask[m] |= grouptypebits[igroup];
}
atom->v[m][0] = random_unequal->gaussian()*sigma;
@ -1575,9 +1601,10 @@ void FixGCMC::attempt_atomic_insertion_full()
if (force->kspace) force->kspace->qsum_qsq();
double energy_after = energy_full();
if (random_equal->uniform() <
if (energy_after < MAXENERGYTEST &&
random_equal->uniform() <
zz*volume*exp(beta*(energy_before - energy_after))/(ngas+1)) {
ninsertion_successes += 1.0;
energy_stored = energy_after;
} else {
@ -1656,13 +1683,14 @@ void FixGCMC::attempt_molecule_translation_full()
x[i][1] += com_displace[1];
x[i][2] += com_displace[2];
if (!domain->inside_nonperiodic(x[i]))
error->one(FLERR,"Fix gcmc put atom outside box");
error->one(FLERR,"Fix gcmc put atom outside box");
}
}
double energy_after = energy_full();
if (random_equal->uniform() <
if (energy_after < MAXENERGYTEST &&
random_equal->uniform() <
exp(beta*(energy_before - energy_after))) {
ntranslation_successes += 1.0;
energy_stored = energy_after;
@ -1746,14 +1774,15 @@ void FixGCMC::attempt_molecule_rotation_full()
image[i] = imagezero;
domain->remap(x[i],image[i]);
if (!domain->inside(x[i]))
error->one(FLERR,"Fix gcmc put atom outside box");
error->one(FLERR,"Fix gcmc put atom outside box");
n++;
}
}
double energy_after = energy_full();
if (random_equal->uniform() <
if (energy_after < MAXENERGYTEST &&
random_equal->uniform() <
exp(beta*(energy_before - energy_after))) {
nrotation_successes += 1.0;
energy_stored = energy_after;
@ -1946,13 +1975,13 @@ void FixGCMC::attempt_molecule_insertion_full()
int proc_flag = 0;
if (triclinic == 0) {
if (xtmp[0] >= sublo[0] && xtmp[0] < subhi[0] &&
xtmp[1] >= sublo[1] && xtmp[1] < subhi[1] &&
xtmp[2] >= sublo[2] && xtmp[2] < subhi[2]) proc_flag = 1;
xtmp[1] >= sublo[1] && xtmp[1] < subhi[1] &&
xtmp[2] >= sublo[2] && xtmp[2] < subhi[2]) proc_flag = 1;
} else {
domain->x2lamda(xtmp,lamda);
if (lamda[0] >= sublo[0] && lamda[0] < subhi[0] &&
lamda[1] >= sublo[1] && lamda[1] < subhi[1] &&
lamda[2] >= sublo[2] && lamda[2] < subhi[2]) proc_flag = 1;
lamda[1] >= sublo[1] && lamda[1] < subhi[1] &&
lamda[2] >= sublo[2] && lamda[2] < subhi[2]) proc_flag = 1;
}
if (proc_flag) {
@ -1964,8 +1993,8 @@ void FixGCMC::attempt_molecule_insertion_full()
atom->mask[m] = groupbitall;
for (int igroup = 0; igroup < ngrouptypes; igroup++) {
if (ngcmc_type == grouptypes[igroup])
atom->mask[m] |= grouptypebits[igroup];
if (ngcmc_type == grouptypes[igroup])
atom->mask[m] |= grouptypebits[igroup];
}
atom->image[m] = imagetmp;
@ -2005,7 +2034,8 @@ void FixGCMC::attempt_molecule_insertion_full()
double deltaphi = zz*volume*natoms_per_molecule*
exp(beta*(energy_before - (energy_after - energy_intra)))/(ngas + natoms_per_molecule);
if (random_equal->uniform() < deltaphi) {
if (energy_after < MAXENERGYTEST &&
random_equal->uniform() < deltaphi) {
ninsertion_successes += 1.0;
energy_stored = energy_after;
@ -2064,6 +2094,12 @@ double FixGCMC::energy(int i, int itype, tagint imolecule, double *coord)
rsq = delx*delx + dely*dely + delz*delz;
int jtype = type[j];
// if overlap check requested, if overlap,
// return signal value = MAXENERGYSIGNAL
if (overlap_flag && rsq < overlap_cutoff)
return MAXENERGYSIGNAL;
if (rsq < cutsq[itype][jtype])
total_energy +=
pair->single(i,j,itype,jtype,rsq,factor_coul,factor_lj,fpair);
@ -2108,6 +2144,31 @@ double FixGCMC::energy_full()
int eflag = 1;
int vflag = 0;
// if overlap check requested, if overlap,
// return signal value = MAXENERGYSIGNAL
if (overlap_flag) {
double delx,dely,delz,rsq;
double **x = atom->x;
tagint *molecule = atom->molecule;
int nall = atom->nlocal + atom->nghost;
for (int i = 0; i < atom->nlocal; i++) {
int imolecule = molecule[i];
for (int j = i+1; j < nall; j++) {
if (mode == MOLECULE)
if (imolecule == molecule[j]) continue;
delx = x[i][0] - x[j][0];
dely = x[i][1] - x[j][1];
delz = x[i][2] - x[j][2];
rsq = delx*delx + dely*dely + delz*delz;
if (rsq < overlap_cutoff) return MAXENERGYSIGNAL;
}
}
}
// clear forces so they don't accumulate over multiple
// calls within fix gcmc timestep, e.g. for fix shake
@ -2247,10 +2308,10 @@ void FixGCMC::update_gas_atoms_list()
com[0] = com[1] = com[2] = 0.0;
group->xcm(molecule_group,gas_mass,com);
// remap unwrapped com into periodic box
domain->remap(com);
comx[imolecule] = com[0];
// remap unwrapped com into periodic box
domain->remap(com);
comx[imolecule] = com[0];
comy[imolecule] = com[1];
comz[imolecule] = com[2];
}

View File

@ -112,7 +112,9 @@ class FixGCMC : public Fix {
double **cutsq;
double **atom_coord;
imageint imagezero;
double overlap_cutoff;
int overlap_flag;
double energy_intra;
class Pair *pair;

View File

@ -1950,7 +1950,7 @@ void Atom::add_callback(int flag)
void Atom::delete_callback(const char *id, int flag)
{
if(id==NULL) return;
if (id == NULL) return;
int ifix;
for (ifix = 0; ifix < modify->nfix; ifix++)

View File

@ -31,6 +31,7 @@ using namespace LAMMPS_NS;
using namespace FixConst;
enum{V,F,DENSITY_NUMBER,DENSITY_MASS,MASS,TEMPERATURE,COMPUTE,FIX,VARIABLE};
enum{SCALAR,VECTOR};
enum{SAMPLE,ALL};
enum{NOSCALE,ATOM};
enum{ONE,RUNNING,WINDOW};
@ -79,6 +80,7 @@ FixAveChunk::FixAveChunk(LAMMPS *lmp, int narg, char **arg) :
argindex = new int[nargnew];
ids = new char*[nargnew];
value2index = new int[nargnew];
densityflag = 0;
int iarg = 0;
while (iarg < nargnew) {
@ -106,9 +108,11 @@ FixAveChunk::FixAveChunk(LAMMPS *lmp, int narg, char **arg) :
argindex[nvalues++] = 2;
} else if (strcmp(arg[iarg],"density/number") == 0) {
densityflag = 1;
which[nvalues] = DENSITY_NUMBER;
argindex[nvalues++] = 0;
} else if (strcmp(arg[iarg],"density/mass") == 0) {
densityflag = 1;
which[nvalues] = DENSITY_MASS;
argindex[nvalues++] = 0;
} else if (strcmp(arg[iarg],"mass") == 0) {
@ -604,6 +608,12 @@ void FixAveChunk::end_of_step()
count_many[m] = count_sum[m] = 0.0;
for (i = 0; i < nvalues; i++) values_many[m][i] = 0.0;
}
// if any DENSITY requested, invoke setup_chunks() on each sampling step
// nchunk will not change but bin volumes might, e.g. for NPT simulation
} else if (densityflag) {
cchunk->setup_chunks();
}
// zero out arrays for one sample
@ -782,11 +792,16 @@ void FixAveChunk::end_of_step()
// if normflag = SAMPLE, one = value/count, accumulate one to many
// count is MPI summed here, value is MPI summed below across samples
// exception is TEMPERATURE: normalize by DOF
// exception is DENSITYs: no normalize by atom count
// exception is scaleflag = NOSCALE : no normalize by atom count
// exception is DENSITY_NUMBER:
// normalize by bin volume, not by atom count
// exception is DENSITY_MASS:
// scale by mv2d, normalize by bin volume, not by atom count
// exception is scaleflag = NOSCALE (norm = NONE):
// no normalize by atom count
// check last so other options can take precedence
double mvv2e = force->mvv2e;
double mv2d = force->mv2d;
double boltz = force->boltz;
if (normflag == ALL) {
@ -797,17 +812,34 @@ void FixAveChunk::end_of_step()
}
} else if (normflag == SAMPLE) {
MPI_Allreduce(count_one,count_many,nchunk,MPI_DOUBLE,MPI_SUM,world);
if (cchunk->chunk_volume_vec) {
volflag = VECTOR;
chunk_volume_vec = cchunk->chunk_volume_vec;
} else {
volflag = SCALAR;
chunk_volume_scalar = cchunk->chunk_volume_scalar;
}
for (m = 0; m < nchunk; m++) {
if (count_many[m] > 0.0)
for (j = 0; j < nvalues; j++) {
if (which[j] == TEMPERATURE)
if (which[j] == TEMPERATURE) {
values_many[m][j] += mvv2e*values_one[m][j] /
((cdof + adof*count_many[m]) * boltz);
else if (which[j] == DENSITY_NUMBER || which[j] == DENSITY_MASS ||
scaleflag == NOSCALE)
} else if (which[j] == DENSITY_NUMBER) {
if (volflag == SCALAR) values_one[m][j] /= chunk_volume_scalar;
else values_one[m][j] /= chunk_volume_vec[m];
values_many[m][j] += values_one[m][j];
else
} else if (which[j] == DENSITY_MASS) {
if (volflag == SCALAR) values_one[m][j] /= chunk_volume_scalar;
else values_one[m][j] /= chunk_volume_vec[m];
values_many[m][j] += mv2d*values_one[m][j];
} else if (scaleflag == NOSCALE) {
values_many[m][j] += values_one[m][j];
} else {
values_many[m][j] += values_one[m][j]/count_many[m];
}
}
count_sum[m] += count_many[m];
}
@ -835,28 +867,48 @@ void FixAveChunk::end_of_step()
// time average across samples
// if normflag = ALL, final is total value / total count
// exception is TEMPERATURE: normalize by DOF for total count
// exception is DENSITYs: normalize by repeat, not total count
// exception is scaleflag == NOSCALE: normalize by repeat, not total count
// exception is DENSITY_NUMBER:
// normalize by final bin_volume and repeat, not by total count
// exception is DENSITY_MASS:
// scale by mv2d, normalize by bin volume and repeat, not by total count
// exception is scaleflag == NOSCALE:
// normalize by repeat, not by total count
// check last so other options can take precedence
// if normflag = SAMPLE, final is sum of ave / repeat
double repeat = nrepeat;
double mv2d = force->mv2d;
if (normflag == ALL) {
MPI_Allreduce(count_many,count_sum,nchunk,MPI_DOUBLE,MPI_SUM,world);
MPI_Allreduce(&values_many[0][0],&values_sum[0][0],nchunk*nvalues,
MPI_DOUBLE,MPI_SUM,world);
if (cchunk->chunk_volume_vec) {
volflag = VECTOR;
chunk_volume_vec = cchunk->chunk_volume_vec;
} else {
volflag = SCALAR;
chunk_volume_scalar = cchunk->chunk_volume_scalar;
}
for (m = 0; m < nchunk; m++) {
if (count_sum[m] > 0.0)
for (j = 0; j < nvalues; j++) {
if (which[j] == TEMPERATURE)
if (which[j] == TEMPERATURE) {
values_sum[m][j] *= mvv2e / ((cdof + adof*count_sum[m]) * boltz);
else if (which[j] == DENSITY_MASS)
values_sum[m][j] *= mv2d/repeat;
else if (which[j] == DENSITY_NUMBER || scaleflag == NOSCALE)
} else if (which[j] == DENSITY_NUMBER) {
if (volflag == SCALAR) values_sum[m][j] /= chunk_volume_scalar;
else values_sum[m][j] /= chunk_volume_vec[m];
values_sum[m][j] /= repeat;
else values_sum[m][j] /= count_sum[m];
} else if (which[j] == DENSITY_MASS) {
if (volflag == SCALAR) values_sum[m][j] /= chunk_volume_scalar;
else values_sum[m][j] /= chunk_volume_vec[m];
values_sum[m][j] *= mv2d/repeat;
} else if (scaleflag == NOSCALE) {
values_sum[m][j] /= repeat;
} else {
values_sum[m][j] /= count_sum[m];
}
}
count_sum[m] /= repeat;
}
@ -869,23 +921,6 @@ void FixAveChunk::end_of_step()
}
}
// DENSITYs are additionally normalized by chunk volume
// use scalar or vector values for volume(s)
// if chunks are not spatial bins, chunk_volume_scalar = 1.0
for (j = 0; j < nvalues; j++)
if (which[j] == DENSITY_NUMBER || which[j] == DENSITY_MASS) {
if (cchunk->chunk_volume_vec) {
double *chunk_volume_vec = cchunk->chunk_volume_vec;
for (m = 0; m < nchunk; m++)
values_sum[m][j] /= chunk_volume_vec[m];
} else {
double chunk_volume_scalar = cchunk->chunk_volume_scalar;
for (m = 0; m < nchunk; m++)
values_sum[m][j] /= chunk_volume_scalar;
}
}
// if ave = ONE, only single Nfreq timestep value is needed
// if ave = RUNNING, combine with all previous Nfreq timestep values
// if ave = WINDOW, comine with nwindow most recent Nfreq timestep values

View File

@ -49,6 +49,11 @@ class FixAveChunk : public Fix {
class Compute *tbias; // ptr to additional bias compute
FILE *fp;
int densityflag; // 1 if density/number or density/mass requested
int volflag; // SCALAR/VECTOR for density normalization by volume
double chunk_volume_scalar;
double *chunk_volume_vec;
int ave,nwindow;
int normcount,iwindow,window_limit;

View File

@ -36,6 +36,7 @@ FixExternal::FixExternal(LAMMPS *lmp, int narg, char **arg) :
scalar_flag = 1;
global_freq = 1;
virial_flag = 1;
extscalar = 1;
if (strcmp(arg[3],"pf/callback") == 0) {
@ -80,6 +81,7 @@ int FixExternal::setmask()
{
int mask = 0;
if (mode == PF_CALLBACK || mode == PF_ARRAY) {
mask |= PRE_REVERSE;
mask |= POST_FORCE;
mask |= THERMO_ENERGY;
mask |= MIN_POST_FORCE;
@ -102,6 +104,13 @@ void FixExternal::setup(int vflag)
post_force(vflag);
}
/* --------------------------------------------------------------------- */
void FixExternal::setup_pre_reverse(int eflag, int vflag)
{
pre_reverse(eflag,vflag);
}
/* ---------------------------------------------------------------------- */
void FixExternal::min_setup(int vflag)
@ -109,12 +118,25 @@ void FixExternal::min_setup(int vflag)
post_force(vflag);
}
/* ----------------------------------------------------------------------
store eflag, so can use it in post_force to tally per-atom energies
------------------------------------------------------------------------- */
void FixExternal::pre_reverse(int eflag, int vflag)
{
eflag_caller = eflag;
}
/* ---------------------------------------------------------------------- */
void FixExternal::post_force(int vflag)
{
bigint ntimestep = update->ntimestep;
int eflag = eflag_caller;
if (eflag || vflag) ev_setup(eflag,vflag);
else evflag = 0;
// invoke the callback in driver program
// it will fill fexternal with forces
@ -145,11 +167,57 @@ void FixExternal::min_post_force(int vflag)
post_force(vflag);
}
/* ---------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
caller invokes this method to set its contribution to global energy
do not just return if eflag_global is not set
input script could access this quantity via compute_scalar()
even if eflag is not set on a particular timestep
------------------------------------------------------------------------- */
void FixExternal::set_energy(double eng)
void FixExternal::set_energy_global(double caller_energy)
{
user_energy = eng;
user_energy = caller_energy;
}
/* ----------------------------------------------------------------------
caller invokes this method to set its contribution to global virial
------------------------------------------------------------------------- */
void FixExternal::set_virial_global(double *caller_virial)
{
if (!vflag_global) return;
for (int i = 0; i < 6; i++)
virial[i] = caller_virial[i];
}
/* ----------------------------------------------------------------------
caller invokes this method to set its contribution to peratom energy
------------------------------------------------------------------------- */
void FixExternal::set_energy_peratom(double *caller_energy)
{
if (!eflag_atom) return;
int nlocal = atom->nlocal;
for (int i = 0; i < nlocal; i++)
eatom[i] = caller_energy[i];
}
/* ----------------------------------------------------------------------
caller invokes this method to set its contribution to peratom virial
------------------------------------------------------------------------- */
void FixExternal::set_virial_peratom(double **caller_virial)
{
int i,j;
if (!vflag_atom) return;
int nlocal = atom->nlocal;
for (i = 0; i < nlocal; i++)
for (j = 0; j < 6; j++)
vatom[i][j] = caller_virial[i][j];
}
/* ----------------------------------------------------------------------

View File

@ -33,12 +33,17 @@ class FixExternal : public Fix {
int setmask();
void init();
void setup(int);
void setup_pre_reverse(int, int);
void min_setup(int);
void pre_reverse(int, int);
void post_force(int);
void min_post_force(int);
double compute_scalar();
void set_energy(double eng);
void set_energy_global(double);
void set_virial_global(double *);
void set_energy_peratom(double *);
void set_virial_peratom(double **);
double memory_usage();
void grow_arrays(int);
@ -50,7 +55,7 @@ class FixExternal : public Fix {
void set_callback(FnPtr, void *);
private:
int mode,ncall,napply;
int mode,ncall,napply,eflag_caller;
FnPtr callback;
void *ptr_caller;
double user_energy;

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