mirror of https://github.com/lammps/lammps.git
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:
parent
145e682ad3
commit
dcede304df
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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).
|
||||
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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).
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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.",
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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).
|
||||
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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).
|
||||
|
||||
|
|
|
@ -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).
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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).
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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];
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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++)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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];
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
|
|
|
@ -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
Loading…
Reference in New Issue