git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@11365 f3b2605a-c512-4ea7-a41b-209d697bcdaa

This commit is contained in:
sjplimp 2014-01-29 00:36:55 +00:00
parent b9f7190578
commit 6b5813f257
2 changed files with 304 additions and 609 deletions

View File

@ -1,312 +1 @@
<HTML> <HTML>
<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A>
</CENTER>
<HR>
<H3>kspace_modify command
</H3>
<P><B>Syntax:</B>
</P>
<PRE>kspace_modify keyword value ...
</PRE>
<UL><LI>one or more keyword/value pairs may be listed
<LI>keyword = <I>mesh</I> or <I>order</I> or <I>order/disp</I> or <I>overlap</I> or <I>minorder</I> or <I>force</I> or <I>gewald</I> or <I>gewald/disp</I> or <I>slab</I> or (nozforce</I> or <I>compute</I> or <I>cutoff/adjust</I> or <I>diff</I> or <I>kmax/ewald</I> or <I>force/disp/real</I> or <I>force/disp/kspace</I> or <I>splittol</I>
<PRE> <I>mesh</I> value = x y z
x,y,z = grid size in each dimension for long-range Coulombics
<I>mesh/disp</I> value = x y z
x,y,z = grid size in each dimension for 1/r^6 dispersion
<I>order</I> value = N
N = extent of Gaussian for PPPM or MSM mapping of charge to grid
<I>order/disp</I> value = N
N = extent of Gaussian for PPPM mapping of dispersion term to grid
<I>overlap</I> = <I>yes</I> or <I>no</I> = whether the grid stencil for PPPM is allowed to overlap into more than the nearest-neighbor processor
<I>minorder</I> value = M
M = min allowed extent of Gaussian when auto-adjusting to minimize grid communication
<I>force</I> value = accuracy (force units)
<I>gewald</I> value = rinv (1/distance units)
rinv = G-ewald parameter for Coulombics
<I>gewald/disp</I> value = rinv (1/distance units)
rinv = G-ewald parameter for dispersion
<I>slab</I> value = volfactor or <I>nozforce</I>
volfactor = ratio of the total extended volume used in the
2d approximation compared with the volume of the simulation domain
<I>nozforce</I> turns off kspace forces in the z direction
<I>compute</I> value = <I>yes</I> or <I>no</I>
<I>cutoff/adjust</I> value = <I>yes</I> or <I>no</I>
<I>fftbench</I> value = <I>yes</I> or <I>no</I>
<I>diff</I> value = <I>ad</I> or <I>ik</I> = 2 or 4 FFTs for PPPM in smoothed or non-smoothed mode
<I>kmax/ewald</I> value = kx ky kz
kx,ky,kz = number of Ewald sum kspace vectors in each dimension
<I>mix/disp</I> value = <I>pair</I> or <I>geom</I> or <I>none</I>
<I>force/disp/real</I> value = accuracy (force units)
<I>force/disp/kspace</I> value = accuracy (force units)
<I>splittol</I> value = tol
tol = relative size of two eigenvalues (see discussion below)
</PRE>
</UL>
<P><B>Examples:</B>
</P>
<PRE>kspace_modify mesh 24 24 30 order 6
kspace_modify slab 3.0
</PRE>
<P><B>Description:</B>
</P>
<P>Set parameters used by the kspace solvers defined by the
<A HREF = "kspace_style.html">kspace_style</A> command. Not all parameters are
relevant to all kspace styles.
</P>
<P>The <I>mesh</I> keyword sets the grid size for kspace style <I>pppm</I> or
<I>msm</I>. In the case of PPPM, this is the FFT mesh, and each dimension
must be factorizable into powers of 2, 3, and 5. In the case of MSM,
this is the finest scale real-space mesh, and each dimension must be
factorizable into powers of 2. When this option is not set, the PPPM
or MSM solver chooses its own grid size, consistent with the
user-specified accuracy and pairwise cutoff. Values for x,y,z of
0,0,0 unset the option.
</P>
<P>The <I>mesh/disp</I> keyword sets the grid size for kspace style
<I>pppm/disp</I>. This is the FFT mesh for long-range dispersion and ach
dimension must be factorizable into powers of 2, 3, and 5. When this
option is not set, the PPPM solver chooses its own grid size,
consistent with the user-specified accuracy and pairwise cutoff.
Values for x,y,z of 0,0,0 unset the option.
</P>
<P>The <I>order</I> keyword determines how many grid spacings an atom's charge
extends when it is mapped to the grid in kspace style <I>pppm</I> or <I>msm</I>.
The default for this parameter is 5 for PPPM and 8 for MSM, which
means each charge spans 5 or 8 grid cells in each dimension,
respectively. For the LAMMPS implementation of MSM, the order can
range from 4 to 10 and must be even. For PPPM, the minimum allowed
setting is 2 and the maximum allowed setting is 7. The larger the
value of this parameter, the smaller that LAMMPS will set the grid
size, to achieve the requested accuracy. Conversely, the smaller the
order value, the larger the grid size will be. Note that there is an
inherent trade-off involved: a small grid will lower the cost of FFTs
or MSM direct sum, but a larger order parameter will increase the cost
of interpolating charge/fields to/from the grid.
</P>
<P>The <I>order/disp</I> keyword determines how many grid spacings an atom's
dispersion term extends when it is mapped to the grid in kspace style
<I>pppm/disp</I>. It has the same meaning as the <I>order</I> setting for
Coulombics.
</P>
<P>The <I>overlap</I> keyword can be used in conjunction with the <I>minorder</I>
keyword with the PPPM styles to adjust the amount of communication
that occurs when values on the FFT grid are exchangeed between
processors. This communication is distinct from the communication
inherent in the parallel FFTs themselves, and is required because
processors interpolate charge and field values using grid point values
owned by neighboring processors (i.e. ghost point communication). If
the <I>overlap</I> keyword is set to <I>yes</I> then this communication is
allowed to extend beyond nearest-neighbor processors, e.g. when using
lots of processors on a small problem. If it is set to <I>no</I> then the
communication will be limited to nearest-neighbor processors and the
<I>order</I> setting will be reduced if necessary, as explained by the
<I>minorder</I> keyword discussion. The <I>overlap</I> keyword is always set to
<I>yes</I> in MSM.
</P>
<P>The <I>minorder</I> keyword allows LAMMPS to reduce the <I>order</I> setting if
necessary to keep the communication of ghost grid point limited to
exchanges between nearest-neighbor processors. See the discussion of
the <I>overlap</I> keyword for details. If the <I>overlap</I> keyword is set to
<I>yes</I>, which is the default, this is never needed. If it set to <I>no</I>
and overlap occurs, then LAMMPS will reduce the order setting, one
step at a time, until the ghost grid overlap only extends to nearest
neighbor processors. The <I>minorder</I> keyword limits how small the
<I>order</I> setting can become. The minimum allowed value for PPPM is 2,
which is the default. If <I>minorder</I> is set to the same value as
<I>order</I> then no reduction is allowed, and LAMMPS will generate an
error if the grid communcation is non-nearest-neighbor and <I>overlap</I>
is set to <I>no</I>. The <I>minorder</I> keyword is not currently supported in
MSM.
</P>
<P>The PPPM order parameter may be reset by LAMMPS when it sets up the
FFT grid if the implied grid stencil extends beyond the grid cells
owned by neighboring processors. Typically this will only occur when
small problems are run on large numbers of processors. A warning will
be generated indicating the order parameter is being reduced to allow
LAMMPS to run the problem. Automatic adjustment of the order parameter
is not supported in MSM.
</P>
<P>The <I>force</I> keyword overrides the relative accuracy parameter set by
the <A HREF = "kspace_style.html">kspace_style</A> command with an absolute
accuracy. The accuracy determines the RMS error in per-atom forces
calculated by the long-range solver and is thus specified in force
units. A negative value for the accuracy setting means to use the
relative accuracy parameter. The accuracy setting is used in
conjunction with the pairwise cutoff to determine the number of
K-space vectors for style <I>ewald</I>, the FFT grid size for style
<I>pppm</I>, or the real space grid size for style <I>msm</I>.
</P>
<P>The <I>gewald</I> keyword sets the value of the Ewald or PPPM G-ewald
parameter for charge as <I>rinv</I> in reciprocal distance units. Without
this setting, LAMMPS chooses the parameter automatically as a function
of cutoff, precision, grid spacing, etc. This means it can vary from
one simulation to the next which may not be desirable for matching a
KSpace solver to a pre-tabulated pairwise potential. This setting can
also be useful if Ewald or PPPM fails to choose a good grid spacing
and G-ewald parameter automatically. If the value is set to 0.0,
LAMMPS will choose the G-ewald parameter automatically. MSM does not
use the <I>gewald</I> parameter.
</P>
<P>The <I>gewald/disp</I> keyword sets the value of the Ewald or PPPM G-ewald
parameter for dispersion as <I>rinv</I> in reciprocal distance units. It
has the same meaning as the <I>gewald</I> setting for Coulombics.
</P>
<P>The <I>slab</I> keyword allows an Ewald or PPPM solver to be used for a
systems that are periodic in x,y but non-periodic in z - a
<A HREF = "boundary.html">boundary</A> setting of "boundary p p f". This is done by
treating the system as if it were periodic in z, but inserting empty
volume between atom slabs and removing dipole inter-slab interactions
so that slab-slab interactions are effectively turned off. The
volfactor value sets the ratio of the extended dimension in z divided
by the actual dimension in z. The recommended value is 3.0. A larger
value is inefficient; a smaller value introduces unwanted slab-slab
interactions. The use of fixed boundaries in z means that the user
must prevent particle migration beyond the initial z-bounds, typically
by providing a wall-style fix. The methodology behind the <I>slab</I>
option is explained in the paper by <A HREF = "#Yeh">(Yeh)</A>. The <I>slab</I> option
is also extended to non-neutral systems
<A HREF = "#Ballenegger">(Ballenegger)</A>. An alternative slab option can be
invoked with the <I>nozforce</I> keyword in lieu of the volfactor. This
turns off all kspace forces in the z direction. The <I>nozforce</I> option
is not supported by MSM. For MSM, any combination of periodic,
non-periodic, or shrink-wrapped boundaries can be set using
<A HREF = "boundary.html">boundary</A> (the slab approximation in not needed). The
<I>slab</I> keyword is not currently supported by Ewald or PPPM when using
a triclinic simulation cell.
</P>
<P>The <I>compute</I> keyword allows Kspace computations to be turned off,
even though a <A HREF = "kspace_style.html">kspace_style</A> is defined. This is
not useful for running a real simulation, but can be useful for
debugging purposes or for computing only partial forces that do not
include the Kspace contribution. You can also do this by simply not
defining a <A HREF = "kspace_style.html">kspace_style</A>, but a Kspace-compatible
<A HREF = "pair_style.html">pair_style</A> requires a kspace style to be defined.
This keyword gives you that option.
</P>
<P>The <I>cutoff/adjust</I> keyword applies only to MSM. If this option is
turned on, the Coulombic cutoff will be automatically adjusted at the
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 <I>mesh</I> command, this command will also attempt to use the optimal
grid that minimizes cost using an estimate given by
<A HREF = "#Hardy">(Hardy)</A>. Note that this cost estimate is not exact, somewhat
experimental, and still may not yield the optimal parameters.
</P>
<P>The <I>fftbench</I> keyword applies only to PPPM. It is on by default. If
this option is turned off, LAMMPS will not take the time at the end
of a run to give FFT benchmark timings, and will finish a few seconds
faster than it would if this option were on.
</P>
<P>The <I>diff</I> keyword specifies the differentiation scheme used by the
PPPM method to compute forces on particles given electrostatic
potentials on the PPPM mesh. The <I>ik</I> approach is the default for
PPPM and is the original formulation used in <A HREF = "#Hockney">(Hockney)</A>. 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.
</P>
<P>The analytic differentiation <I>ad</I> approach uses only 1 FFT to transfer
information back to real space for a total of 2 FFTs per timestep. It
then performs analytic differentiation on the single quantity to
generate the 3 components of the electric field at each grid point.
This is sometimes referred to as "smoothed" PPPM. This approach
requires a somewhat larger PPPM mesh to achieve the same accuracy as
the <I>ik</I> method. Currently, only the <I>ik</I> method (default) can be
used for a triclinic simulation cell with PPPM. The <I>ad</I> method is
always used for MSM.
</P>
<P>IMPORTANT NOTE: Currently, not all PPPM styles support the <I>ad</I>
option. Support for those PPPM variants will be added later.
</P>
<P>The <I>kmax/ewald</I> keyword sets the number of kspace vectors in
each dimension for kspace style <I>ewald</I>. The three values must
be positive integers, or else (0,0,0), which unsets the option.
When this option is not
set, the Ewald sum scheme chooses its own kspace vectors,
consistent with the
user-specified accuracy and pairwise cutoff. In any case,
if kspace style <I>ewald</I> is invoked, the values used
are printed to the screen and
the log file at the start of the run.
</P>
<P>With the <I>mix/disp<I> keyword one can select the mixing rule for the
dispersion coefficients. With <I>pair</I>, the dispersion coefficients of
unlike types are computed as indicated with
<A HREF = "pair_modify.html">pair_modify</A>. With <I>geom</I>, geometric mixing is
enforced on the dispersion coefficients in the kspace
coefficients. When using the arithmetic mixing rule, this will
speed-up the simulations but introduces some error in the force
computations, as shown in <A HREF = "#Wennberg">(Wennberg)</A>. With <I>none</I>, it is
assumed that no mixing rule is applicable. Splitting of the dispersion
coefficients will be performed as described in
<A HREF = "#Isele-Holder">(Isele-Holder)</A>. This splitting can be influenced with
the <I>splittol</I> 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
leads to faster computations, but the accuracy in the reciprocal space
computations of the dispersion part is decreased.
</P>
<P>The <I>force/disp/real</I> and <I>force/disp/kspace</I> keywords set the force
accuracy for the real and space computations for the dispersion part
of pppm/disp. as shown in <A HREF = "#Isele-Holder">(Isele-Holder)</A>, optimal
performance and accuracy in the results is obtained when these values
are different.
</P>
<P><B>Restrictions:</B> none
</P>
<P><B>Related commands:</B>
</P>
<P><A HREF = "kspace_style.html">kspace_style</A>, <A HREF = "boundary.html">boundary</A>
</P>
<P><B>Default:</B>
</P>
<P>The option defaults are mesh = mesh/disp = 0 0 0, order = order/disp =
5 (PPPM), order = 10 (MSM), minorder = 2, overlap = yes, force = -1.0,
gewald = gewald/disp = 0.0, slab = 1.0, compute = yes, cutoff/adjust =
yes (MSM), fftbench = yes (PPPM), diff = ik (PPPM), mix/disp = pair,
force/disp/real = -1.0, force/disp/kspace = -1.0, split = 0, and tol = 1.0e-6.
</P>
<HR>
<A NAME = "Hockney"></A>
<P><B>(Hockney)</B> Hockney and Eastwood, Computer Simulation Using Particles,
Adam Hilger, NY (1989).
</P>
<A NAME = "Yeh"></A>
<P><B>(Yeh)</B> Yeh and Berkowitz, J Chem Phys, 111, 3155 (1999).
</P>
<A NAME = "Ballenegger"></A>
<P><B>(Ballenegger)</B> Ballenegger, Arnold, Cerda, J Chem Phys, 131, 094107
(2009).
</P>
<A NAME = "Hardy"></A>
<P><B>(Hardy)</B> David Hardy thesis: Multilevel Summation for the Fast
Evaluation of Forces for the Simulation of Biomolecules, University of
Illinois at Urbana-Champaign, (2006).
</P>
<A NAME = "Isele-Holder"></A>
<P><B>(Isele-Holder)</B> Isele-Holder, Mitchell, Hammond, Kohlmeyer, Ismail, J
Chem Theory Comput, 9, 5412 (2013).
</P>
<A NAME = "Wennberg"></A>
<P><B>(Wennberg)</B> Wennberg, Murtola, Hess, Lindahl, J Chem Theory Comput,
9, 3527 (2013).
</P>
</HTML>

View File

@ -1,298 +1,304 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov) :link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html) :link(ld,Manual.html)
:link(lc,Section_commands.html#comm) :link(lc,Section_commands.html#comm)
:line :line
kspace_modify command :h3 kspace_modify command :h3
[Syntax:] [Syntax:]
kspace_modify keyword value ... :pre kspace_modify keyword value ... :pre
one or more keyword/value pairs may be listed :ulb,l one or more keyword/value pairs may be listed :ulb,l
keyword = {mesh} or {order} or {order/disp} or {overlap} or {minorder} or {force} or {gewald} or {gewald/disp} or {slab} or (nozforce} or {compute} or {cutoff/adjust} or {diff} or {kmax/ewald} or {force/disp/real} or {force/disp/kspace} or {splittol} :l keyword = {mesh} or {order} or {order/disp} or {overlap} or {minorder} or {force} or {gewald} or {gewald/disp} or {slab} or (nozforce} or {compute} or {cutoff/adjust} or {diff} or {kmax/ewald} or {force/disp/real} or {force/disp/kspace} or {splittol} :l
{mesh} value = x y z {mesh} value = x y z
x,y,z = grid size in each dimension for long-range Coulombics x,y,z = grid size in each dimension for long-range Coulombics
{mesh/disp} value = x y z {mesh/disp} value = x y z
x,y,z = grid size in each dimension for 1/r^6 dispersion x,y,z = grid size in each dimension for 1/r^6 dispersion
{order} value = N {order} value = N
N = extent of Gaussian for PPPM or MSM mapping of charge to grid N = extent of Gaussian for PPPM or MSM mapping of charge to grid
{order/disp} value = N {order/disp} value = N
N = extent of Gaussian for PPPM mapping of dispersion term to grid N = extent of Gaussian for PPPM mapping of dispersion term to grid
{overlap} = {yes} or {no} = whether the grid stencil for PPPM is allowed to overlap into more than the nearest-neighbor processor {overlap} = {yes} or {no} = whether the grid stencil for PPPM is allowed to overlap into more than the nearest-neighbor processor
{minorder} value = M {minorder} value = M
M = min allowed extent of Gaussian when auto-adjusting to minimize grid communication M = min allowed extent of Gaussian when auto-adjusting to minimize grid communication
{force} value = accuracy (force units) {force} value = accuracy (force units)
{gewald} value = rinv (1/distance units) {gewald} value = rinv (1/distance units)
rinv = G-ewald parameter for Coulombics rinv = G-ewald parameter for Coulombics
{gewald/disp} value = rinv (1/distance units) {gewald/disp} value = rinv (1/distance units)
rinv = G-ewald parameter for dispersion rinv = G-ewald parameter for dispersion
{slab} value = volfactor or {nozforce} {slab} value = volfactor or {nozforce}
volfactor = ratio of the total extended volume used in the volfactor = ratio of the total extended volume used in the
2d approximation compared with the volume of the simulation domain 2d approximation compared with the volume of the simulation domain
{nozforce} turns off kspace forces in the z direction {nozforce} turns off kspace forces in the z direction
{compute} value = {yes} or {no} {compute} value = {yes} or {no}
{cutoff/adjust} value = {yes} or {no} {cutoff/adjust} value = {yes} or {no}
{fftbench} value = {yes} or {no} {fftbench} value = {yes} or {no}
{diff} value = {ad} or {ik} = 2 or 4 FFTs for PPPM in smoothed or non-smoothed mode {diff} value = {ad} or {ik} = 2 or 4 FFTs for PPPM in smoothed or non-smoothed mode
{kmax/ewald} value = kx ky kz {kmax/ewald} value = kx ky kz
kx,ky,kz = number of Ewald sum kspace vectors in each dimension kx,ky,kz = number of Ewald sum kspace vectors in each dimension
{mix/disp} value = {pair} or {geom} or {none} {mix/disp} value = {pair} or {geom} or {none}
{force/disp/real} value = accuracy (force units) {force/disp/real} value = accuracy (force units)
{force/disp/kspace} value = accuracy (force units) {force/disp/kspace} value = accuracy (force units)
{splittol} value = tol {splittol} value = tol
tol = relative size of two eigenvalues (see discussion below) :pre tol = relative size of two eigenvalues (see discussion below) :pre
:ule :ule
[Examples:] [Examples:]
kspace_modify mesh 24 24 30 order 6 kspace_modify mesh 24 24 30 order 6
kspace_modify slab 3.0 :pre kspace_modify slab 3.0 :pre
[Description:] [Description:]
Set parameters used by the kspace solvers defined by the Set parameters used by the kspace solvers defined by the
"kspace_style"_kspace_style.html command. Not all parameters are "kspace_style"_kspace_style.html command. Not all parameters are
relevant to all kspace styles. relevant to all kspace styles.
The {mesh} keyword sets the grid size for kspace style {pppm} or The {mesh} keyword sets the grid size for kspace style {pppm} or
{msm}. In the case of PPPM, this is the FFT mesh, and each dimension {msm}. In the case of PPPM, this is the FFT mesh, and each dimension
must be factorizable into powers of 2, 3, and 5. In the case of MSM, must be factorizable into powers of 2, 3, and 5. In the case of MSM,
this is the finest scale real-space mesh, and each dimension must be this is the finest scale real-space mesh, and each dimension must be
factorizable into powers of 2. When this option is not set, the PPPM factorizable into powers of 2. When this option is not set, the PPPM
or MSM solver chooses its own grid size, consistent with the or MSM solver chooses its own grid size, consistent with the
user-specified accuracy and pairwise cutoff. Values for x,y,z of user-specified accuracy and pairwise cutoff. Values for x,y,z of
0,0,0 unset the option. 0,0,0 unset the option.
The {mesh/disp} keyword sets the grid size for kspace style The {mesh/disp} keyword sets the grid size for kspace style
{pppm/disp}. This is the FFT mesh for long-range dispersion and ach {pppm/disp}. This is the FFT mesh for long-range dispersion and ach
dimension must be factorizable into powers of 2, 3, and 5. When this dimension must be factorizable into powers of 2, 3, and 5. When this
option is not set, the PPPM solver chooses its own grid size, option is not set, the PPPM solver chooses its own grid size,
consistent with the user-specified accuracy and pairwise cutoff. consistent with the user-specified accuracy and pairwise cutoff.
Values for x,y,z of 0,0,0 unset the option. Values for x,y,z of 0,0,0 unset the option.
The {order} keyword determines how many grid spacings an atom's charge The {order} keyword determines how many grid spacings an atom's charge
extends when it is mapped to the grid in kspace style {pppm} or {msm}. extends when it is mapped to the grid in kspace style {pppm} or {msm}.
The default for this parameter is 5 for PPPM and 8 for MSM, which The default for this parameter is 5 for PPPM and 8 for MSM, which
means each charge spans 5 or 8 grid cells in each dimension, means each charge spans 5 or 8 grid cells in each dimension,
respectively. For the LAMMPS implementation of MSM, the order can respectively. For the LAMMPS implementation of MSM, the order can
range from 4 to 10 and must be even. For PPPM, the minimum allowed range from 4 to 10 and must be even. For PPPM, the minimum allowed
setting is 2 and the maximum allowed setting is 7. The larger the setting is 2 and the maximum allowed setting is 7. The larger the
value of this parameter, the smaller that LAMMPS will set the grid value of this parameter, the smaller that LAMMPS will set the grid
size, to achieve the requested accuracy. Conversely, the smaller the size, to achieve the requested accuracy. Conversely, the smaller the
order value, the larger the grid size will be. Note that there is an order value, the larger the grid size will be. Note that there is an
inherent trade-off involved: a small grid will lower the cost of FFTs inherent trade-off involved: a small grid will lower the cost of FFTs
or MSM direct sum, but a larger order parameter will increase the cost or MSM direct sum, but a larger order parameter will increase the cost
of interpolating charge/fields to/from the grid. of interpolating charge/fields to/from the grid.
The {order/disp} keyword determines how many grid spacings an atom's The {order/disp} keyword determines how many grid spacings an atom's
dispersion term extends when it is mapped to the grid in kspace style dispersion term extends when it is mapped to the grid in kspace style
{pppm/disp}. It has the same meaning as the {order} setting for {pppm/disp}. It has the same meaning as the {order} setting for
Coulombics. Coulombics.
The {overlap} keyword can be used in conjunction with the {minorder} The {overlap} keyword can be used in conjunction with the {minorder}
keyword with the PPPM styles to adjust the amount of communication keyword with the PPPM styles to adjust the amount of communication
that occurs when values on the FFT grid are exchangeed between that occurs when values on the FFT grid are exchangeed between
processors. This communication is distinct from the communication processors. This communication is distinct from the communication
inherent in the parallel FFTs themselves, and is required because inherent in the parallel FFTs themselves, and is required because
processors interpolate charge and field values using grid point values processors interpolate charge and field values using grid point values
owned by neighboring processors (i.e. ghost point communication). If owned by neighboring processors (i.e. ghost point communication). If
the {overlap} keyword is set to {yes} then this communication is the {overlap} keyword is set to {yes} then this communication is
allowed to extend beyond nearest-neighbor processors, e.g. when using allowed to extend beyond nearest-neighbor processors, e.g. when using
lots of processors on a small problem. If it is set to {no} then the lots of processors on a small problem. If it is set to {no} then the
communication will be limited to nearest-neighbor processors and the communication will be limited to nearest-neighbor processors and the
{order} setting will be reduced if necessary, as explained by the {order} setting will be reduced if necessary, as explained by the
{minorder} keyword discussion. The {overlap} keyword is always set to {minorder} keyword discussion. The {overlap} keyword is always set to
{yes} in MSM. {yes} in MSM.
The {minorder} keyword allows LAMMPS to reduce the {order} setting if The {minorder} keyword allows LAMMPS to reduce the {order} setting if
necessary to keep the communication of ghost grid point limited to necessary to keep the communication of ghost grid point limited to
exchanges between nearest-neighbor processors. See the discussion of exchanges between nearest-neighbor processors. See the discussion of
the {overlap} keyword for details. If the {overlap} keyword is set to the {overlap} keyword for details. If the {overlap} keyword is set to
{yes}, which is the default, this is never needed. If it set to {no} {yes}, which is the default, this is never needed. If it set to {no}
and overlap occurs, then LAMMPS will reduce the order setting, one and overlap occurs, then LAMMPS will reduce the order setting, one
step at a time, until the ghost grid overlap only extends to nearest step at a time, until the ghost grid overlap only extends to nearest
neighbor processors. The {minorder} keyword limits how small the neighbor processors. The {minorder} keyword limits how small the
{order} setting can become. The minimum allowed value for PPPM is 2, {order} setting can become. The minimum allowed value for PPPM is 2,
which is the default. If {minorder} is set to the same value as which is the default. If {minorder} is set to the same value as
{order} then no reduction is allowed, and LAMMPS will generate an {order} then no reduction is allowed, and LAMMPS will generate an
error if the grid communcation is non-nearest-neighbor and {overlap} error if the grid communcation is non-nearest-neighbor and {overlap}
is set to {no}. The {minorder} keyword is not currently supported in is set to {no}. The {minorder} keyword is not currently supported in
MSM. MSM.
The PPPM order parameter may be reset by LAMMPS when it sets up the The PPPM order parameter may be reset by LAMMPS when it sets up the
FFT grid if the implied grid stencil extends beyond the grid cells FFT grid if the implied grid stencil extends beyond the grid cells
owned by neighboring processors. Typically this will only occur when owned by neighboring processors. Typically this will only occur when
small problems are run on large numbers of processors. A warning will small problems are run on large numbers of processors. A warning will
be generated indicating the order parameter is being reduced to allow be generated indicating the order parameter is being reduced to allow
LAMMPS to run the problem. Automatic adjustment of the order parameter LAMMPS to run the problem. Automatic adjustment of the order parameter
is not supported in MSM. is not supported in MSM.
The {force} keyword overrides the relative accuracy parameter set by The {force} keyword overrides the relative accuracy parameter set by
the "kspace_style"_kspace_style.html command with an absolute the "kspace_style"_kspace_style.html command with an absolute
accuracy. The accuracy determines the RMS error in per-atom forces accuracy. The accuracy determines the RMS error in per-atom forces
calculated by the long-range solver and is thus specified in force calculated by the long-range solver and is thus specified in force
units. A negative value for the accuracy setting means to use the units. A negative value for the accuracy setting means to use the
relative accuracy parameter. The accuracy setting is used in relative accuracy parameter. The accuracy setting is used in
conjunction with the pairwise cutoff to determine the number of conjunction with the pairwise cutoff to determine the number of
K-space vectors for style {ewald}, the FFT grid size for style K-space vectors for style {ewald}, the FFT grid size for style
{pppm}, or the real space grid size for style {msm}. {pppm}, or the real space grid size for style {msm}.
The {gewald} keyword sets the value of the Ewald or PPPM G-ewald The {gewald} keyword sets the value of the Ewald or PPPM G-ewald
parameter for charge as {rinv} in reciprocal distance units. Without parameter for charge as {rinv} in reciprocal distance units. Without
this setting, LAMMPS chooses the parameter automatically as a function this setting, LAMMPS chooses the parameter automatically as a function
of cutoff, precision, grid spacing, etc. This means it can vary from of cutoff, precision, grid spacing, etc. This means it can vary from
one simulation to the next which may not be desirable for matching a one simulation to the next which may not be desirable for matching a
KSpace solver to a pre-tabulated pairwise potential. This setting can KSpace solver to a pre-tabulated pairwise potential. This setting can
also be useful if Ewald or PPPM fails to choose a good grid spacing also be useful if Ewald or PPPM fails to choose a good grid spacing
and G-ewald parameter automatically. If the value is set to 0.0, and G-ewald parameter automatically. If the value is set to 0.0,
LAMMPS will choose the G-ewald parameter automatically. MSM does not LAMMPS will choose the G-ewald parameter automatically. MSM does not
use the {gewald} parameter. use the {gewald} parameter.
The {gewald/disp} keyword sets the value of the Ewald or PPPM G-ewald The {gewald/disp} keyword sets the value of the Ewald or PPPM G-ewald
parameter for dispersion as {rinv} in reciprocal distance units. It parameter for dispersion as {rinv} in reciprocal distance units. It
has the same meaning as the {gewald} setting for Coulombics. has the same meaning as the {gewald} setting for Coulombics.
The {slab} keyword allows an Ewald or PPPM solver to be used for a The {slab} keyword allows an Ewald or PPPM solver to be used for a
systems that are periodic in x,y but non-periodic in z - a systems that are periodic in x,y but non-periodic in z - a
"boundary"_boundary.html setting of "boundary p p f". This is done by "boundary"_boundary.html setting of "boundary p p f". This is done by
treating the system as if it were periodic in z, but inserting empty treating the system as if it were periodic in z, but inserting empty
volume between atom slabs and removing dipole inter-slab interactions volume between atom slabs and removing dipole inter-slab interactions
so that slab-slab interactions are effectively turned off. The so that slab-slab interactions are effectively turned off. The
volfactor value sets the ratio of the extended dimension in z divided volfactor value sets the ratio of the extended dimension in z divided
by the actual dimension in z. The recommended value is 3.0. A larger by the actual dimension in z. The recommended value is 3.0. A larger
value is inefficient; a smaller value introduces unwanted slab-slab value is inefficient; a smaller value introduces unwanted slab-slab
interactions. The use of fixed boundaries in z means that the user interactions. The use of fixed boundaries in z means that the user
must prevent particle migration beyond the initial z-bounds, typically must prevent particle migration beyond the initial z-bounds, typically
by providing a wall-style fix. The methodology behind the {slab} by providing a wall-style fix. The methodology behind the {slab}
option is explained in the paper by "(Yeh)"_#Yeh. The {slab} option option is explained in the paper by "(Yeh)"_#Yeh. The {slab} option
is also extended to non-neutral systems is also extended to non-neutral systems
"(Ballenegger)"_#Ballenegger. An alternative slab option can be "(Ballenegger)"_#Ballenegger. An alternative slab option can be
invoked with the {nozforce} keyword in lieu of the volfactor. This invoked with the {nozforce} keyword in lieu of the volfactor. This
turns off all kspace forces in the z direction. The {nozforce} option turns off all kspace forces in the z direction. The {nozforce} option
is not supported by MSM. For MSM, any combination of periodic, is not supported by MSM. For MSM, any combination of periodic,
non-periodic, or shrink-wrapped boundaries can be set using non-periodic, or shrink-wrapped boundaries can be set using
"boundary"_boundary.html (the slab approximation in not needed). The "boundary"_boundary.html (the slab approximation in not needed). The
{slab} keyword is not currently supported by Ewald or PPPM when using {slab} keyword is not currently supported by Ewald or PPPM when using
a triclinic simulation cell. a triclinic simulation cell. The slab correction has also been
extended to point dipole interactions "(Klapp)"_#Klapp in
The {compute} keyword allows Kspace computations to be turned off, "kspace_style"_kspace_style.html {ewald/disp}.
even though a "kspace_style"_kspace_style.html is defined. This is
not useful for running a real simulation, but can be useful for The {compute} keyword allows Kspace computations to be turned off,
debugging purposes or for computing only partial forces that do not even though a "kspace_style"_kspace_style.html is defined. This is
include the Kspace contribution. You can also do this by simply not not useful for running a real simulation, but can be useful for
defining a "kspace_style"_kspace_style.html, but a Kspace-compatible debugging purposes or for computing only partial forces that do not
"pair_style"_pair_style.html requires a kspace style to be defined. include the Kspace contribution. You can also do this by simply not
This keyword gives you that option. defining a "kspace_style"_kspace_style.html, but a Kspace-compatible
"pair_style"_pair_style.html requires a kspace style to be defined.
The {cutoff/adjust} keyword applies only to MSM. If this option is This keyword gives you that option.
turned on, the Coulombic cutoff will be automatically adjusted at the
beginning of the run to give the desired estimated error. Other The {cutoff/adjust} keyword applies only to MSM. If this option is
cutoffs such as LJ will not be affected. If the grid is not set using turned on, the Coulombic cutoff will be automatically adjusted at the
the {mesh} command, this command will also attempt to use the optimal beginning of the run to give the desired estimated error. Other
grid that minimizes cost using an estimate given by cutoffs such as LJ will not be affected. If the grid is not set using
"(Hardy)"_#Hardy. Note that this cost estimate is not exact, somewhat the {mesh} command, this command will also attempt to use the optimal
experimental, and still may not yield the optimal parameters. grid that minimizes cost using an estimate given by
"(Hardy)"_#Hardy. Note that this cost estimate is not exact, somewhat
The {fftbench} keyword applies only to PPPM. It is on by default. If experimental, and still may not yield the optimal parameters.
this option is turned off, LAMMPS will not take the time at the end
of a run to give FFT benchmark timings, and will finish a few seconds The {fftbench} keyword applies only to PPPM. It is on by default. If
faster than it would if this option were on. this option is turned off, LAMMPS will not take the time at the end
of a run to give FFT benchmark timings, and will finish a few seconds
The {diff} keyword specifies the differentiation scheme used by the faster than it would if this option were on.
PPPM method to compute forces on particles given electrostatic
potentials on the PPPM mesh. The {ik} approach is the default for The {diff} keyword specifies the differentiation scheme used by the
PPPM and is the original formulation used in "(Hockney)"_#Hockney. It PPPM method to compute forces on particles given electrostatic
performs differentiation in Kspace, and uses 3 FFTs to transfer each potentials on the PPPM mesh. The {ik} approach is the default for
component of the computed fields back to real space for total of 4 PPPM and is the original formulation used in "(Hockney)"_#Hockney. It
FFTs per timestep. performs differentiation in Kspace, and uses 3 FFTs to transfer each
component of the computed fields back to real space for total of 4
The analytic differentiation {ad} approach uses only 1 FFT to transfer FFTs per timestep.
information back to real space for a total of 2 FFTs per timestep. It
then performs analytic differentiation on the single quantity to The analytic differentiation {ad} approach uses only 1 FFT to transfer
generate the 3 components of the electric field at each grid point. information back to real space for a total of 2 FFTs per timestep. It
This is sometimes referred to as "smoothed" PPPM. This approach then performs analytic differentiation on the single quantity to
requires a somewhat larger PPPM mesh to achieve the same accuracy as generate the 3 components of the electric field at each grid point.
the {ik} method. Currently, only the {ik} method (default) can be This is sometimes referred to as "smoothed" PPPM. This approach
used for a triclinic simulation cell with PPPM. The {ad} method is requires a somewhat larger PPPM mesh to achieve the same accuracy as
always used for MSM. the {ik} method. Currently, only the {ik} method (default) can be
used for a triclinic simulation cell with PPPM. The {ad} method is
IMPORTANT NOTE: Currently, not all PPPM styles support the {ad} always used for MSM.
option. Support for those PPPM variants will be added later.
IMPORTANT NOTE: Currently, not all PPPM styles support the {ad}
The {kmax/ewald} keyword sets the number of kspace vectors in option. Support for those PPPM variants will be added later.
each dimension for kspace style {ewald}. The three values must
be positive integers, or else (0,0,0), which unsets the option. The {kmax/ewald} keyword sets the number of kspace vectors in
When this option is not each dimension for kspace style {ewald}. The three values must
set, the Ewald sum scheme chooses its own kspace vectors, be positive integers, or else (0,0,0), which unsets the option.
consistent with the When this option is not
user-specified accuracy and pairwise cutoff. In any case, set, the Ewald sum scheme chooses its own kspace vectors,
if kspace style {ewald} is invoked, the values used consistent with the
are printed to the screen and user-specified accuracy and pairwise cutoff. In any case,
the log file at the start of the run. if kspace style {ewald} is invoked, the values used
are printed to the screen and
With the {mix/disp{ keyword one can select the mixing rule for the the log file at the start of the run.
dispersion coefficients. With {pair}, the dispersion coefficients of
unlike types are computed as indicated with With the {mix/disp} keyword one can select the mixing rule for the
"pair_modify"_pair_modify.html. With {geom}, geometric mixing is dispersion coefficients. With {pair}, the dispersion coefficients of
enforced on the dispersion coefficients in the kspace unlike types are computed as indicated with
coefficients. When using the arithmetic mixing rule, this will "pair_modify"_pair_modify.html. With {geom}, geometric mixing is
speed-up the simulations but introduces some error in the force enforced on the dispersion coefficients in the kspace
computations, as shown in "(Wennberg)"_#Wennberg. With {none}, it is coefficients. When using the arithmetic mixing rule, this will
assumed that no mixing rule is applicable. Splitting of the dispersion speed-up the simulations but introduces some error in the force
coefficients will be performed as described in computations, as shown in "(Wennberg)"_#Wennberg. With {none}, it is
"(Isele-Holder)"_#Isele-Holder. This splitting can be influenced with assumed that no mixing rule is applicable. Splitting of the dispersion
the {splittol} keywords. Only the eigenvalues that are larger than tol coefficients will be performed as described in
compared to the largest eigenvalues are included. Using this keywords "(Isele-Holder)"_#Isele-Holder. This splitting can be influenced with
the original matrix of dispersion coefficients is approximated. This the {splittol} keywords. Only the eigenvalues that are larger than tol
leads to faster computations, but the accuracy in the reciprocal space compared to the largest eigenvalues are included. Using this keywords
computations of the dispersion part is decreased. the original matrix of dispersion coefficients is approximated. This
leads to faster computations, but the accuracy in the reciprocal space
The {force/disp/real} and {force/disp/kspace} keywords set the force computations of the dispersion part is decreased.
accuracy for the real and space computations for the dispersion part
of pppm/disp. as shown in "(Isele-Holder)"_#Isele-Holder, optimal The {force/disp/real} and {force/disp/kspace} keywords set the force
performance and accuracy in the results is obtained when these values accuracy for the real and space computations for the dispersion part
are different. of pppm/disp. as shown in "(Isele-Holder)"_#Isele-Holder, optimal
performance and accuracy in the results is obtained when these values
[Restrictions:] none are different.
[Related commands:] [Restrictions:] none
"kspace_style"_kspace_style.html, "boundary"_boundary.html [Related commands:]
[Default:] "kspace_style"_kspace_style.html, "boundary"_boundary.html
The option defaults are mesh = mesh/disp = 0 0 0, order = order/disp = [Default:]
5 (PPPM), order = 10 (MSM), minorder = 2, overlap = yes, force = -1.0,
gewald = gewald/disp = 0.0, slab = 1.0, compute = yes, cutoff/adjust = The option defaults are mesh = mesh/disp = 0 0 0, order = order/disp =
yes (MSM), fftbench = yes (PPPM), diff = ik (PPPM), mix/disp = pair, 5 (PPPM), order = 10 (MSM), minorder = 2, overlap = yes, force = -1.0,
force/disp/real = -1.0, force/disp/kspace = -1.0, split = 0, and tol = 1.0e-6. gewald = gewald/disp = 0.0, slab = 1.0, compute = yes, cutoff/adjust =
yes (MSM), fftbench = yes (PPPM), diff = ik (PPPM), mix/disp = pair,
:line force/disp/real = -1.0, force/disp/kspace = -1.0, split = 0, and tol =
1.0e-6.
:link(Hockney)
[(Hockney)] Hockney and Eastwood, Computer Simulation Using Particles, :line
Adam Hilger, NY (1989).
:link(Hockney)
:link(Yeh) [(Hockney)] Hockney and Eastwood, Computer Simulation Using Particles,
[(Yeh)] Yeh and Berkowitz, J Chem Phys, 111, 3155 (1999). Adam Hilger, NY (1989).
:link(Ballenegger) :link(Yeh)
[(Ballenegger)] Ballenegger, Arnold, Cerda, J Chem Phys, 131, 094107 [(Yeh)] Yeh and Berkowitz, J Chem Phys, 111, 3155 (1999).
(2009).
:link(Ballenegger)
:link(Hardy) [(Ballenegger)] Ballenegger, Arnold, Cerda, J Chem Phys, 131, 094107
[(Hardy)] David Hardy thesis: Multilevel Summation for the Fast (2009).
Evaluation of Forces for the Simulation of Biomolecules, University of
Illinois at Urbana-Champaign, (2006). :link(Klapp)
[(Klapp)] Klapp, Schoen, J Chem Phys, 117, 8050 (2002).
:link(Isele-Holder)
[(Isele-Holder)] Isele-Holder, Mitchell, Hammond, Kohlmeyer, Ismail, J :link(Hardy)
Chem Theory Comput, 9, 5412 (2013). [(Hardy)] David Hardy thesis: Multilevel Summation for the Fast
Evaluation of Forces for the Simulation of Biomolecules, University of
:link(Wennberg) Illinois at Urbana-Champaign, (2006).
[(Wennberg)] Wennberg, Murtola, Hess, Lindahl, J Chem Theory Comput,
9, 3527 (2013). :link(Isele-Holder)
[(Isele-Holder)] Isele-Holder, Mitchell, Hammond, Kohlmeyer, Ismail, J
Chem Theory Comput, 9, 5412 (2013).
:link(Wennberg)
[(Wennberg)] Wennberg, Murtola, Hess, Lindahl, J Chem Theory Comput,
9, 3527 (2013).