forked from lijiext/lammps
git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@14658 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
parent
08b53bb709
commit
f705ef5600
|
@ -6354,7 +6354,11 @@ flags for the 2 atoms in a bond that straddles a periodic boundary.
|
|||
They should be different by 1 in that case. This is a warning because
|
||||
inconsistent image flags will not cause problems for dynamics or most
|
||||
LAMMPS simulations. However they can cause problems when such atoms
|
||||
are used with the fix rigid or replicate commands.</dd>
|
||||
are used with the fix rigid or replicate commands. Note that if you
|
||||
have an infinite periodic crystal with bonds then it is impossible to
|
||||
have fully consistent image flags, since some bonds will cross
|
||||
periodic boundaries and connect two atoms with the same image
|
||||
flag.</dd>
|
||||
<dt><em>KIM Model does not provide `energy’; Potential energy will be zero</em></dt>
|
||||
<dd>Self-explanatory.</dd>
|
||||
<dt><em>KIM Model does not provide `forces’; Forces will be zero</em></dt>
|
||||
|
|
|
@ -11346,7 +11346,11 @@ flags for the 2 atoms in a bond that straddles a periodic boundary.
|
|||
They should be different by 1 in that case. This is a warning because
|
||||
inconsistent image flags will not cause problems for dynamics or most
|
||||
LAMMPS simulations. However they can cause problems when such atoms
|
||||
are used with the fix rigid or replicate commands. :dd
|
||||
are used with the fix rigid or replicate commands. Note that if you
|
||||
have an infinite periodic crystal with bonds then it is impossible to
|
||||
have fully consistent image flags, since some bonds will cross
|
||||
periodic boundaries and connect two atoms with the same image
|
||||
flag. :dd
|
||||
|
||||
{KIM Model does not provide `energy'; Potential energy will be zero} :dt
|
||||
|
||||
|
|
|
@ -8804,7 +8804,11 @@ Warnings:
|
|||
They should be different by 1 in that case. This is a warning because
|
||||
inconsistent image flags will not cause problems for dynamics or most
|
||||
LAMMPS simulations. However they can cause problems when such atoms
|
||||
are used with the fix rigid or replicate commands.
|
||||
are used with the fix rigid or replicate commands. Note that if you
|
||||
have an infinite periodic crystal with bonds then it is impossible to
|
||||
have fully consistent image flags, since some bonds will cross
|
||||
periodic boundaries and connect two atoms with the same image
|
||||
flag.
|
||||
|
||||
*KIM Model does not provide `energy'; Potential energy will be zero*
|
||||
Self-explanatory.
|
||||
|
|
|
@ -129,7 +129,7 @@ in the pair section of :ref:`this page <cmd_5>`.
|
|||
* :doc:`pair_style coul/long <pair_coul>` - long-range Coulombic potential
|
||||
* :doc:`pair_style coul/long/cs <pair_coul>` - long-range Coulombic potential and core/shell
|
||||
* :doc:`pair_style coul/msm <pair_coul>` - long-range MSM Coulombics
|
||||
* :doc:`pair_style coul/msm <pair_coul_streitz>` - Coulombics via Streitz/Mintmire Slater orbitals
|
||||
* :doc:`pair_style coul/streitz <pair_coul>` - Coulombics via Streitz/Mintmire Slater orbitals
|
||||
* :doc:`pair_style coul/wolf <pair_coul>` - Coulombics via Wolf potential
|
||||
* :doc:`pair_style dpd <pair_dpd>` - dissipative particle dynamics (DPD)
|
||||
* :doc:`pair_style dpd/tstat <pair_dpd>` - DPD thermostatting
|
||||
|
@ -205,7 +205,7 @@ in the pair section of :ref:`this page <cmd_5>`.
|
|||
* :doc:`pair_style tip4p/cut <pair_coul>` - Coulomb for TIP4P water w/out LJ
|
||||
* :doc:`pair_style tip4p/long <pair_coul>` - long-range Coulombics for TIP4P water w/out LJ
|
||||
* :doc:`pair_style tri/lj <pair_tri_lj>` - LJ potential between triangles
|
||||
* :doc:`pair_style vashishta <pair_vahishta>` - Vashishta 2-body and 3-body potential
|
||||
* :doc:`pair_style vashishta <pair_vashishta>` - Vashishta 2-body and 3-body potential
|
||||
* :doc:`pair_style yukawa <pair_yukawa>` - Yukawa potential
|
||||
* :doc:`pair_style yukawa/colloid <pair_yukawa_colloid>` - screened Yukawa potential for finite-size particles
|
||||
* :doc:`pair_style zbl <pair_zbl>` - Ziegler-Biersack-Littmark potential
|
||||
|
|
|
@ -39,33 +39,41 @@ Examples
|
|||
Description
|
||||
"""""""""""
|
||||
|
||||
Style *table* creates interpolation tables of length *N* from pair
|
||||
potential and force values listed in a file(s) as a function of
|
||||
distance. The files are read by the :doc:`pair_coeff <pair_coeff>`
|
||||
command.
|
||||
Style *table* creates interpolation tables from potential energy and
|
||||
force values listed in a file(s) as a function of distance. When
|
||||
performing dynamics or minimation, the interpolation tables are used
|
||||
to evaluate energy and forces for pairwise interactions between
|
||||
particles, similar to how analytic formulas are used for other pair
|
||||
styles.
|
||||
|
||||
The interpolation tables are created by fitting cubic splines to the
|
||||
file values and interpolating energy and force values at each of *N*
|
||||
distances. During a simulation, these tables are used to interpolate
|
||||
energy and force values as needed. The interpolation is done in one
|
||||
of 4 styles: *lookup*, *linear*, *spline*, or *bitmap*.
|
||||
The interpolation tables are created as a pre-computation by fitting
|
||||
cubic splines to the file values and interpolating energy and force
|
||||
values at each of *N* distances. During a simulation, the tables are
|
||||
used to interpolate energy and force values as needed for each pair of
|
||||
particles separated by a distance *R*. The interpolation is done in
|
||||
one of 4 styles: *lookup*, *linear*, *spline*, or *bitmap*.
|
||||
|
||||
For the *lookup* style, the distance between 2 atoms is used to find
|
||||
the nearest table entry, which is the energy or force.
|
||||
For the *lookup* style, the distance *R* is used to find the nearest
|
||||
table entry, which is the energy or force.
|
||||
|
||||
For the *linear* style, the pair distance is used to find 2
|
||||
For the *linear* style, the distance *R* is used to find the 2
|
||||
surrounding table values from which an energy or force is computed by
|
||||
linear interpolation.
|
||||
|
||||
For the *spline* style, a cubic spline coefficients are computed and
|
||||
stored at each of the *N* values in the table. The pair distance is
|
||||
used to find the appropriate set of coefficients which are used to
|
||||
evaluate a cubic polynomial which computes the energy or force.
|
||||
stored for each of the *N* values in the table, one set of splines for
|
||||
energy, another for force. Note that these splines are different than
|
||||
the ones used to pre-compute the *N* values. Those splines were fit
|
||||
to the *Nfile* values in the tabulated file, where often *Nfile* <
|
||||
*N*. The distance *R* is used to find the appropriate set of spline
|
||||
coefficients which are used to evaluate a cubic polynomial which
|
||||
computes the energy or force.
|
||||
|
||||
For the *bitmap* style, the N means to create interpolation tables
|
||||
that are 2^N in length. The pair distance is used to index into the
|
||||
table via a fast bit-mapping technique due to :ref:`(Wolff) <Wolff>`, and a
|
||||
linear interpolation is performed between adjacent table values.
|
||||
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
|
||||
:ref:`(Wolff) <Wolff>`, and a linear interpolation is performed between
|
||||
adjacent table values.
|
||||
|
||||
The following coefficients must be defined for each pair of atoms
|
||||
types via the :doc:`pair_coeff <pair_coeff>` command as in the examples
|
||||
|
@ -110,8 +118,9 @@ best effect:
|
|||
* Use *N* in the pair_style command equal to the "N" in the tabulation
|
||||
file, and use the "RSQ" or "BITMAP" parameter, so additional interpolation
|
||||
is not needed. See discussion below.
|
||||
* Make sure that your tabulated forces and tabulated energies are consistent
|
||||
(dE/dr = -F) along the entire range of r values.
|
||||
* Make sure that your tabulated forces and tabulated energies are
|
||||
consistent (dE/dr = -F) over the entire range of r values. LAMMPS
|
||||
will warn if this is not the case.
|
||||
* Use as large an inner cutoff as possible. This avoids fitting splines
|
||||
to very steep parts of the potential.
|
||||
|
||||
|
@ -150,14 +159,15 @@ specified in the :doc:`pair_style table <pair_style>` command. Let
|
|||
Ntable = *N* in the pair_style command, and Nfile = "N" in the
|
||||
tabulated file. What LAMMPS does is a preliminary interpolation by
|
||||
creating splines using the Nfile tabulated values as nodal points. It
|
||||
uses these to interpolate as needed to generate energy and force
|
||||
values at Ntable different points. The resulting tables of length
|
||||
Ntable are then used as described above, when computing energy and
|
||||
force for individual pair distances. This means that if you want the
|
||||
interpolation tables of length Ntable to match exactly what is in the
|
||||
tabulated file (with effectively no preliminary interpolation), you
|
||||
should set Ntable = Nfile, and use the "RSQ" or "BITMAP" parameter.
|
||||
The internal table abscissa is RSQ (separation distance squared).
|
||||
uses these to interpolate energy and force values at Ntable different
|
||||
points. The resulting tables of length Ntable are then used as
|
||||
described above, when computing energy and force for individual pair
|
||||
distances. This means that if you want the interpolation tables of
|
||||
length Ntable to match exactly what is in the tabulated file (with
|
||||
effectively no preliminary interpolation), you should set Ntable =
|
||||
Nfile, and use the "RSQ" or "BITMAP" parameter. This is because the
|
||||
internal table abscissa is always RSQ (separation distance squared),
|
||||
for efficient lookup.
|
||||
|
||||
All other parameters are optional. If "R" or "RSQ" or "BITMAP" does
|
||||
not appear, then the distances in each line of the table are used
|
||||
|
@ -174,6 +184,15 @@ For "R", distances uniformly spaced between *rlo* and *rhi* are
|
|||
computed; for "RSQ", squared distances uniformly spaced between
|
||||
*rlo*rlo* and *rhi*rhi* are computed.
|
||||
|
||||
.. note::
|
||||
|
||||
If you use "R" or "RSQ", the tabulated distance values in the
|
||||
file are effectively ignored, and replaced by new values as described
|
||||
in the previous paragraph. If the distance value in the table is not
|
||||
very close to the new value (i.e. round-off difference), then you will
|
||||
be assingning energy/force values to a different distance, which is
|
||||
probably not what you want. LAMMPS will warn if this is occurring.
|
||||
|
||||
If used, the parameter "BITMAP" is also followed by 2 values *rlo* and
|
||||
*rhi*. These values, along with the "N" value determine the ordering
|
||||
of the N lines that follow and what distance is associated with each.
|
||||
|
|
|
@ -764,6 +764,13 @@ that use unwrapped coordinates internally are as follows:
|
|||
that will unwrap atom coordinates, it may be important that a
|
||||
continued run (restarted from a data file) begins with image flags
|
||||
that are consistent with the previous run.
|
||||
.. note::
|
||||
|
||||
If your system is an infinite periodic crystal with bonds then
|
||||
it is impossible to have fully consistent image flags. This is because
|
||||
some bonds will cross periodic boundaries and connect two atoms with the
|
||||
same image flag.
|
||||
|
||||
Atom velocities and other atom quantities not defined above are set to
|
||||
0.0 when the *Atoms* section is read. Velocities can be set later by
|
||||
a *Velocities* section in the data file or by a
|
||||
|
|
|
@ -235,7 +235,7 @@ in the pair section of <a class="reference internal" href="Section_commands.html
|
|||
<li><a class="reference internal" href="pair_coul.html"><em>pair_style coul/long</em></a> - long-range Coulombic potential</li>
|
||||
<li><a class="reference internal" href="pair_coul.html"><em>pair_style coul/long/cs</em></a> - long-range Coulombic potential and core/shell</li>
|
||||
<li><a class="reference internal" href="pair_coul.html"><em>pair_style coul/msm</em></a> - long-range MSM Coulombics</li>
|
||||
<li><code class="xref doc docutils literal"><span class="pre">pair_style</span> <span class="pre">coul/msm</span></code> - Coulombics via Streitz/Mintmire Slater orbitals</li>
|
||||
<li><a class="reference internal" href="pair_coul.html"><em>pair_style coul/streitz</em></a> - Coulombics via Streitz/Mintmire Slater orbitals</li>
|
||||
<li><a class="reference internal" href="pair_coul.html"><em>pair_style coul/wolf</em></a> - Coulombics via Wolf potential</li>
|
||||
<li><a class="reference internal" href="pair_dpd.html"><em>pair_style dpd</em></a> - dissipative particle dynamics (DPD)</li>
|
||||
<li><a class="reference internal" href="pair_dpd.html"><em>pair_style dpd/tstat</em></a> - DPD thermostatting</li>
|
||||
|
@ -311,7 +311,7 @@ in the pair section of <a class="reference internal" href="Section_commands.html
|
|||
<li><a class="reference internal" href="pair_coul.html"><em>pair_style tip4p/cut</em></a> - Coulomb for TIP4P water w/out LJ</li>
|
||||
<li><a class="reference internal" href="pair_coul.html"><em>pair_style tip4p/long</em></a> - long-range Coulombics for TIP4P water w/out LJ</li>
|
||||
<li><a class="reference internal" href="pair_tri_lj.html"><em>pair_style tri/lj</em></a> - LJ potential between triangles</li>
|
||||
<li><code class="xref doc docutils literal"><span class="pre">pair_style</span> <span class="pre">vashishta</span></code> - Vashishta 2-body and 3-body potential</li>
|
||||
<li><a class="reference internal" href="pair_vashishta.html"><em>pair_style vashishta</em></a> - Vashishta 2-body and 3-body potential</li>
|
||||
<li><a class="reference internal" href="pair_yukawa.html"><em>pair_style yukawa</em></a> - Yukawa potential</li>
|
||||
<li><a class="reference internal" href="pair_yukawa_colloid.html"><em>pair_style yukawa/colloid</em></a> - screened Yukawa potential for finite-size particles</li>
|
||||
<li><a class="reference internal" href="pair_zbl.html"><em>pair_style zbl</em></a> - Ziegler-Biersack-Littmark potential</li>
|
||||
|
|
|
@ -126,7 +126,7 @@ in the pair section of "this page"_Section_commands.html#cmd_5.
|
|||
"pair_style coul/long"_pair_coul.html - long-range Coulombic potential
|
||||
"pair_style coul/long/cs"_pair_coul.html - long-range Coulombic potential and core/shell
|
||||
"pair_style coul/msm"_pair_coul.html - long-range MSM Coulombics
|
||||
"pair_style coul/msm"_pair_coul_streitz.html - Coulombics via Streitz/Mintmire Slater orbitals
|
||||
"pair_style coul/streitz"_pair_coul.html - Coulombics via Streitz/Mintmire Slater orbitals
|
||||
"pair_style coul/wolf"_pair_coul.html - Coulombics via Wolf potential
|
||||
"pair_style dpd"_pair_dpd.html - dissipative particle dynamics (DPD)
|
||||
"pair_style dpd/tstat"_pair_dpd.html - DPD thermostatting
|
||||
|
@ -202,7 +202,7 @@ in the pair section of "this page"_Section_commands.html#cmd_5.
|
|||
"pair_style tip4p/cut"_pair_coul.html - Coulomb for TIP4P water w/out LJ
|
||||
"pair_style tip4p/long"_pair_coul.html - long-range Coulombics for TIP4P water w/out LJ
|
||||
"pair_style tri/lj"_pair_tri_lj.html - LJ potential between triangles
|
||||
"pair_style vashishta"_pair_vahishta.html - Vashishta 2-body and 3-body potential
|
||||
"pair_style vashishta"_pair_vashishta.html - Vashishta 2-body and 3-body potential
|
||||
"pair_style yukawa"_pair_yukawa.html - Yukawa potential
|
||||
"pair_style yukawa/colloid"_pair_yukawa_colloid.html - screened Yukawa potential for finite-size particles
|
||||
"pair_style zbl"_pair_zbl.html - Ziegler-Biersack-Littmark potential :ul
|
||||
|
|
|
@ -160,28 +160,36 @@ pair_coeff * 3 morse.table ENTRY1 7.0
|
|||
</div>
|
||||
<div class="section" id="description">
|
||||
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Style <em>table</em> creates interpolation tables of length <em>N</em> from pair
|
||||
potential and force values listed in a file(s) as a function of
|
||||
distance. The files are read by the <a class="reference internal" href="pair_coeff.html"><em>pair_coeff</em></a>
|
||||
command.</p>
|
||||
<p>The interpolation tables are created by fitting cubic splines to the
|
||||
file values and interpolating energy and force values at each of <em>N</em>
|
||||
distances. During a simulation, these tables are used to interpolate
|
||||
energy and force values as needed. The interpolation is done in one
|
||||
of 4 styles: <em>lookup</em>, <em>linear</em>, <em>spline</em>, or <em>bitmap</em>.</p>
|
||||
<p>For the <em>lookup</em> style, the distance between 2 atoms is used to find
|
||||
the nearest table entry, which is the energy or force.</p>
|
||||
<p>For the <em>linear</em> style, the pair distance is used to find 2
|
||||
<p>Style <em>table</em> creates interpolation tables from potential energy and
|
||||
force values listed in a file(s) as a function of distance. When
|
||||
performing dynamics or minimation, the interpolation tables are used
|
||||
to evaluate energy and forces for pairwise interactions between
|
||||
particles, similar to how analytic formulas are used for other pair
|
||||
styles.</p>
|
||||
<p>The interpolation tables are created as a pre-computation by fitting
|
||||
cubic splines to the file values and interpolating energy and force
|
||||
values at each of <em>N</em> distances. During a simulation, the tables are
|
||||
used to interpolate energy and force values as needed for each pair of
|
||||
particles separated by a distance <em>R</em>. The interpolation is done in
|
||||
one of 4 styles: <em>lookup</em>, <em>linear</em>, <em>spline</em>, or <em>bitmap</em>.</p>
|
||||
<p>For the <em>lookup</em> style, the distance <em>R</em> is used to find the nearest
|
||||
table entry, which is the energy or force.</p>
|
||||
<p>For the <em>linear</em> style, the distance <em>R</em> is used to find the 2
|
||||
surrounding table values from which an energy or force is computed by
|
||||
linear interpolation.</p>
|
||||
<p>For the <em>spline</em> style, a cubic spline coefficients are computed and
|
||||
stored at each of the <em>N</em> values in the table. The pair distance is
|
||||
used to find the appropriate set of coefficients which are used to
|
||||
evaluate a cubic polynomial which computes the energy or force.</p>
|
||||
<p>For the <em>bitmap</em> style, the N means to create interpolation tables
|
||||
that are 2^N in length. The pair distance is used to index into the
|
||||
table via a fast bit-mapping technique due to <a class="reference internal" href="#wolff"><span>(Wolff)</span></a>, and a
|
||||
linear interpolation is performed between adjacent table values.</p>
|
||||
stored for each of the <em>N</em> values in the table, one set of splines for
|
||||
energy, another for force. Note that these splines are different than
|
||||
the ones used to pre-compute the <em>N</em> values. Those splines were fit
|
||||
to the <em>Nfile</em> values in the tabulated file, where often <em>Nfile</em> <
|
||||
<em>N</em>. The distance <em>R</em> is used to find the appropriate set of spline
|
||||
coefficients which are used to evaluate a cubic polynomial which
|
||||
computes the energy or force.</p>
|
||||
<p>For the <em>bitmap</em> style, the specified <em>N</em> is used to create
|
||||
interpolation tables that are 2^N in length. The distance <em>R</em> is used
|
||||
to index into the table via a fast bit-mapping technique due to
|
||||
<a class="reference internal" href="#wolff"><span>(Wolff)</span></a>, and a linear interpolation is performed between
|
||||
adjacent table values.</p>
|
||||
<p>The following coefficients must be defined for each pair of atoms
|
||||
types via the <a class="reference internal" href="pair_coeff.html"><em>pair_coeff</em></a> command as in the examples
|
||||
above.</p>
|
||||
|
@ -220,8 +228,9 @@ interpolation “features” you may not like.</li>
|
|||
<li>Use <em>N</em> in the pair_style command equal to the “N” in the tabulation
|
||||
file, and use the “RSQ” or “BITMAP” parameter, so additional interpolation
|
||||
is not needed. See discussion below.</li>
|
||||
<li>Make sure that your tabulated forces and tabulated energies are consistent
|
||||
(dE/dr = -F) along the entire range of r values.</li>
|
||||
<li>Make sure that your tabulated forces and tabulated energies are
|
||||
consistent (dE/dr = -F) over the entire range of r values. LAMMPS
|
||||
will warn if this is not the case.</li>
|
||||
<li>Use as large an inner cutoff as possible. This avoids fitting splines
|
||||
to very steep parts of the potential.</li>
|
||||
</ul>
|
||||
|
@ -254,14 +263,15 @@ specified in the <a class="reference internal" href="pair_style.html"><em>pair_s
|
|||
Ntable = <em>N</em> in the pair_style command, and Nfile = “N” in the
|
||||
tabulated file. What LAMMPS does is a preliminary interpolation by
|
||||
creating splines using the Nfile tabulated values as nodal points. It
|
||||
uses these to interpolate as needed to generate energy and force
|
||||
values at Ntable different points. The resulting tables of length
|
||||
Ntable are then used as described above, when computing energy and
|
||||
force for individual pair distances. This means that if you want the
|
||||
interpolation tables of length Ntable to match exactly what is in the
|
||||
tabulated file (with effectively no preliminary interpolation), you
|
||||
should set Ntable = Nfile, and use the “RSQ” or “BITMAP” parameter.
|
||||
The internal table abscissa is RSQ (separation distance squared).</p>
|
||||
uses these to interpolate energy and force values at Ntable different
|
||||
points. The resulting tables of length Ntable are then used as
|
||||
described above, when computing energy and force for individual pair
|
||||
distances. This means that if you want the interpolation tables of
|
||||
length Ntable to match exactly what is in the tabulated file (with
|
||||
effectively no preliminary interpolation), you should set Ntable =
|
||||
Nfile, and use the “RSQ” or “BITMAP” parameter. This is because the
|
||||
internal table abscissa is always RSQ (separation distance squared),
|
||||
for efficient lookup.</p>
|
||||
<p>All other parameters are optional. If “R” or “RSQ” or “BITMAP” does
|
||||
not appear, then the distances in each line of the table are used
|
||||
as-is to perform spline interpolation. In this case, the table values
|
||||
|
@ -275,6 +285,15 @@ The distance values in the table file are ignored in this case.
|
|||
For “R”, distances uniformly spaced between <em>rlo</em> and <em>rhi</em> are
|
||||
computed; for “RSQ”, squared distances uniformly spaced between
|
||||
<em>rlo*rlo</em> and <em>rhi*rhi</em> are computed.</p>
|
||||
<div class="admonition note">
|
||||
<p class="first admonition-title">Note</p>
|
||||
<p class="last">If you use “R” or “RSQ”, the tabulated distance values in the
|
||||
file are effectively ignored, and replaced by new values as described
|
||||
in the previous paragraph. If the distance value in the table is not
|
||||
very close to the new value (i.e. round-off difference), then you will
|
||||
be assingning energy/force values to a different distance, which is
|
||||
probably not what you want. LAMMPS will warn if this is occurring.</p>
|
||||
</div>
|
||||
<p>If used, the parameter “BITMAP” is also followed by 2 values <em>rlo</em> and
|
||||
<em>rhi</em>. These values, along with the “N” value determine the ordering
|
||||
of the N lines that follow and what distance is associated with each.
|
||||
|
|
|
@ -31,33 +31,41 @@ pair_coeff * 3 morse.table ENTRY1 7.0 :pre
|
|||
|
||||
[Description:]
|
||||
|
||||
Style {table} creates interpolation tables of length {N} from pair
|
||||
potential and force values listed in a file(s) as a function of
|
||||
distance. The files are read by the "pair_coeff"_pair_coeff.html
|
||||
command.
|
||||
Style {table} creates interpolation tables from potential energy and
|
||||
force values listed in a file(s) as a function of distance. When
|
||||
performing dynamics or minimation, the interpolation tables are used
|
||||
to evaluate energy and forces for pairwise interactions between
|
||||
particles, similar to how analytic formulas are used for other pair
|
||||
styles.
|
||||
|
||||
The interpolation tables are created by fitting cubic splines to the
|
||||
file values and interpolating energy and force values at each of {N}
|
||||
distances. During a simulation, these tables are used to interpolate
|
||||
energy and force values as needed. The interpolation is done in one
|
||||
of 4 styles: {lookup}, {linear}, {spline}, or {bitmap}.
|
||||
The interpolation tables are created as a pre-computation by fitting
|
||||
cubic splines to the file values and interpolating energy and force
|
||||
values at each of {N} distances. During a simulation, the tables are
|
||||
used to interpolate energy and force values as needed for each pair of
|
||||
particles separated by a distance {R}. The interpolation is done in
|
||||
one of 4 styles: {lookup}, {linear}, {spline}, or {bitmap}.
|
||||
|
||||
For the {lookup} style, the distance between 2 atoms is used to find
|
||||
the nearest table entry, which is the energy or force.
|
||||
For the {lookup} style, the distance {R} is used to find the nearest
|
||||
table entry, which is the energy or force.
|
||||
|
||||
For the {linear} style, the pair distance is used to find 2
|
||||
For the {linear} style, the distance {R} is used to find the 2
|
||||
surrounding table values from which an energy or force is computed by
|
||||
linear interpolation.
|
||||
|
||||
For the {spline} style, a cubic spline coefficients are computed and
|
||||
stored at each of the {N} values in the table. The pair distance is
|
||||
used to find the appropriate set of coefficients which are used to
|
||||
evaluate a cubic polynomial which computes the energy or force.
|
||||
stored for each of the {N} values in the table, one set of splines for
|
||||
energy, another for force. Note that these splines are different than
|
||||
the ones used to pre-compute the {N} values. Those splines were fit
|
||||
to the {Nfile} values in the tabulated file, where often {Nfile} <
|
||||
{N}. The distance {R} is used to find the appropriate set of spline
|
||||
coefficients which are used to evaluate a cubic polynomial which
|
||||
computes the energy or force.
|
||||
|
||||
For the {bitmap} style, the N means to create interpolation tables
|
||||
that are 2^N in length. The pair distance is used to index into the
|
||||
table via a fast bit-mapping technique due to "(Wolff)"_#Wolff, and a
|
||||
linear interpolation is performed between adjacent table values.
|
||||
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
|
||||
adjacent table values.
|
||||
|
||||
The following coefficients must be defined for each pair of atoms
|
||||
types via the "pair_coeff"_pair_coeff.html command as in the examples
|
||||
|
@ -105,8 +113,9 @@ Use {N} in the pair_style command equal to the "N" in the tabulation
|
|||
file, and use the "RSQ" or "BITMAP" parameter, so additional interpolation
|
||||
is not needed. See discussion below. :l
|
||||
|
||||
Make sure that your tabulated forces and tabulated energies are consistent
|
||||
(dE/dr = -F) along the entire range of r values. :l
|
||||
Make sure that your tabulated forces and tabulated energies are
|
||||
consistent (dE/dr = -F) over the entire range of r values. LAMMPS
|
||||
will warn if this is not the case. :l
|
||||
|
||||
Use as large an inner cutoff as possible. This avoids fitting splines
|
||||
to very steep parts of the potential. :l,ule
|
||||
|
@ -141,14 +150,15 @@ specified in the "pair_style table"_pair_style.html command. Let
|
|||
Ntable = {N} in the pair_style command, and Nfile = "N" in the
|
||||
tabulated file. What LAMMPS does is a preliminary interpolation by
|
||||
creating splines using the Nfile tabulated values as nodal points. It
|
||||
uses these to interpolate as needed to generate energy and force
|
||||
values at Ntable different points. The resulting tables of length
|
||||
Ntable are then used as described above, when computing energy and
|
||||
force for individual pair distances. This means that if you want the
|
||||
interpolation tables of length Ntable to match exactly what is in the
|
||||
tabulated file (with effectively no preliminary interpolation), you
|
||||
should set Ntable = Nfile, and use the "RSQ" or "BITMAP" parameter.
|
||||
The internal table abscissa is RSQ (separation distance squared).
|
||||
uses these to interpolate energy and force values at Ntable different
|
||||
points. The resulting tables of length Ntable are then used as
|
||||
described above, when computing energy and force for individual pair
|
||||
distances. This means that if you want the interpolation tables of
|
||||
length Ntable to match exactly what is in the tabulated file (with
|
||||
effectively no preliminary interpolation), you should set Ntable =
|
||||
Nfile, and use the "RSQ" or "BITMAP" parameter. This is because the
|
||||
internal table abscissa is always RSQ (separation distance squared),
|
||||
for efficient lookup.
|
||||
|
||||
All other parameters are optional. If "R" or "RSQ" or "BITMAP" does
|
||||
not appear, then the distances in each line of the table are used
|
||||
|
@ -165,6 +175,13 @@ For "R", distances uniformly spaced between {rlo} and {rhi} are
|
|||
computed; for "RSQ", squared distances uniformly spaced between
|
||||
{rlo*rlo} and {rhi*rhi} are computed.
|
||||
|
||||
NOTE: If you use "R" or "RSQ", the tabulated distance values in the
|
||||
file are effectively ignored, and replaced by new values as described
|
||||
in the previous paragraph. If the distance value in the table is not
|
||||
very close to the new value (i.e. round-off difference), then you will
|
||||
be assingning energy/force values to a different distance, which is
|
||||
probably not what you want. LAMMPS will warn if this is occurring.
|
||||
|
||||
If used, the parameter "BITMAP" is also followed by 2 values {rlo} and
|
||||
{rhi}. These values, along with the "N" value determine the ordering
|
||||
of the N lines that follow and what distance is associated with each.
|
||||
|
|
|
@ -811,6 +811,13 @@ that will unwrap atom coordinates, it may be important that a
|
|||
continued run (restarted from a data file) begins with image flags
|
||||
that are consistent with the previous run.</li>
|
||||
</ul>
|
||||
<div class="admonition note">
|
||||
<p class="first admonition-title">Note</p>
|
||||
<p class="last">If your system is an infinite periodic crystal with bonds then
|
||||
it is impossible to have fully consistent image flags. This is because
|
||||
some bonds will cross periodic boundaries and connect two atoms with the
|
||||
same image flag.</p>
|
||||
</div>
|
||||
<p>Atom velocities and other atom quantities not defined above are set to
|
||||
0.0 when the <em>Atoms</em> section is read. Velocities can be set later by
|
||||
a <em>Velocities</em> section in the data file or by a
|
||||
|
|
|
@ -693,6 +693,11 @@ that will unwrap atom coordinates, it may be important that a
|
|||
continued run (restarted from a data file) begins with image flags
|
||||
that are consistent with the previous run. :l,ule
|
||||
|
||||
NOTE: If your system is an infinite periodic crystal with bonds then
|
||||
it is impossible to have fully consistent image flags. This is because
|
||||
some bonds will cross periodic boundaries and connect two atoms with the
|
||||
same image flag.
|
||||
|
||||
Atom velocities and other atom quantities not defined above are set to
|
||||
0.0 when the {Atoms} section is read. Velocities can be set later by
|
||||
a {Velocities} section in the data file or by a
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue