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

This commit is contained in:
sjplimp 2016-02-18 22:32:24 +00:00
parent 08b53bb709
commit f705ef5600
13 changed files with 183 additions and 97 deletions

View File

@ -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 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 inconsistent image flags will not cause problems for dynamics or most
LAMMPS simulations. However they can cause problems when such atoms 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&#8217;; Potential energy will be zero</em></dt> <dt><em>KIM Model does not provide `energy&#8217;; Potential energy will be zero</em></dt>
<dd>Self-explanatory.</dd> <dd>Self-explanatory.</dd>
<dt><em>KIM Model does not provide `forces&#8217;; Forces will be zero</em></dt> <dt><em>KIM Model does not provide `forces&#8217;; Forces will be zero</em></dt>

View File

@ -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 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 inconsistent image flags will not cause problems for dynamics or most
LAMMPS simulations. However they can cause problems when such atoms 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 {KIM Model does not provide `energy'; Potential energy will be zero} :dt

View File

@ -8804,7 +8804,11 @@ Warnings:
They should be different by 1 in that case. This is a warning because 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 inconsistent image flags will not cause problems for dynamics or most
LAMMPS simulations. However they can cause problems when such atoms 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* *KIM Model does not provide `energy'; Potential energy will be zero*
Self-explanatory. Self-explanatory.

View File

@ -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 <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/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>` - 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 coul/wolf <pair_coul>` - Coulombics via Wolf potential
* :doc:`pair_style dpd <pair_dpd>` - dissipative particle dynamics (DPD) * :doc:`pair_style dpd <pair_dpd>` - dissipative particle dynamics (DPD)
* :doc:`pair_style dpd/tstat <pair_dpd>` - DPD thermostatting * :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/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 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 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 <pair_yukawa>` - Yukawa potential
* :doc:`pair_style yukawa/colloid <pair_yukawa_colloid>` - screened Yukawa potential for finite-size particles * :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 * :doc:`pair_style zbl <pair_zbl>` - Ziegler-Biersack-Littmark potential

View File

@ -39,33 +39,41 @@ Examples
Description Description
""""""""""" """""""""""
Style *table* creates interpolation tables of length *N* from pair Style *table* creates interpolation tables from potential energy and
potential and force values listed in a file(s) as a function of force values listed in a file(s) as a function of distance. When
distance. The files are read by the :doc:`pair_coeff <pair_coeff>` performing dynamics or minimation, the interpolation tables are used
command. 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 The interpolation tables are created as a pre-computation by fitting
file values and interpolating energy and force values at each of *N* cubic splines to the file values and interpolating energy and force
distances. During a simulation, these tables are used to interpolate values at each of *N* distances. During a simulation, the tables are
energy and force values as needed. The interpolation is done in one used to interpolate energy and force values as needed for each pair of
of 4 styles: *lookup*, *linear*, *spline*, or *bitmap*. 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 For the *lookup* style, the distance *R* is used to find the nearest
the nearest table entry, which is the energy or force. 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 surrounding table values from which an energy or force is computed by
linear interpolation. linear interpolation.
For the *spline* style, a cubic spline coefficients are computed and 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 stored for each of the *N* values in the table, one set of splines for
used to find the appropriate set of coefficients which are used to energy, another for force. Note that these splines are different than
evaluate a cubic polynomial which computes the energy or force. 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 For the *bitmap* style, the specified *N* is used to create
that are 2^N in length. The pair distance is used to index into the interpolation tables that are 2^N in length. The distance *R* is used
table via a fast bit-mapping technique due to :ref:`(Wolff) <Wolff>`, and a to index into the table via a fast bit-mapping technique due to
linear interpolation is performed between adjacent table values. :ref:`(Wolff) <Wolff>`, and a linear interpolation is performed between
adjacent table values.
The following coefficients must be defined for each pair of atoms The following coefficients must be defined for each pair of atoms
types via the :doc:`pair_coeff <pair_coeff>` command as in the examples 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 * 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 file, and use the "RSQ" or "BITMAP" parameter, so additional interpolation
is not needed. See discussion below. is not needed. See discussion below.
* Make sure that your tabulated forces and tabulated energies are consistent * Make sure that your tabulated forces and tabulated energies are
(dE/dr = -F) along the entire range of r values. 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 * Use as large an inner cutoff as possible. This avoids fitting splines
to very steep parts of the potential. 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 Ntable = *N* in the pair_style command, and Nfile = "N" in the
tabulated file. What LAMMPS does is a preliminary interpolation by tabulated file. What LAMMPS does is a preliminary interpolation by
creating splines using the Nfile tabulated values as nodal points. It creating splines using the Nfile tabulated values as nodal points. It
uses these to interpolate as needed to generate energy and force uses these to interpolate energy and force values at Ntable different
values at Ntable different points. The resulting tables of length points. The resulting tables of length Ntable are then used as
Ntable are then used as described above, when computing energy and described above, when computing energy and force for individual pair
force for individual pair distances. This means that if you want the distances. This means that if you want the interpolation tables of
interpolation tables of length Ntable to match exactly what is in the length Ntable to match exactly what is in the tabulated file (with
tabulated file (with effectively no preliminary interpolation), you effectively no preliminary interpolation), you should set Ntable =
should set Ntable = Nfile, and use the "RSQ" or "BITMAP" parameter. Nfile, and use the "RSQ" or "BITMAP" parameter. This is because the
The internal table abscissa is RSQ (separation distance squared). internal table abscissa is always RSQ (separation distance squared),
for efficient lookup.
All other parameters are optional. If "R" or "RSQ" or "BITMAP" does 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 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 computed; for "RSQ", squared distances uniformly spaced between
*rlo*rlo* and *rhi*rhi* are computed. *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 If used, the parameter "BITMAP" is also followed by 2 values *rlo* and
*rhi*. These values, along with the "N" value determine the ordering *rhi*. These values, along with the "N" value determine the ordering
of the N lines that follow and what distance is associated with each. of the N lines that follow and what distance is associated with each.

View File

@ -764,6 +764,13 @@ that use unwrapped coordinates internally are as follows:
that will unwrap atom coordinates, it may be important that a that will unwrap atom coordinates, it may be important that a
continued run (restarted from a data file) begins with image flags continued run (restarted from a data file) begins with image flags
that are consistent with the previous run. 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 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 0.0 when the *Atoms* section is read. Velocities can be set later by
a *Velocities* section in the data file or by a a *Velocities* section in the data file or by a

View File

@ -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</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/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><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_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</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> <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/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_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><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.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_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> <li><a class="reference internal" href="pair_zbl.html"><em>pair_style zbl</em></a> - Ziegler-Biersack-Littmark potential</li>

View File

@ -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"_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/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.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 coul/wolf"_pair_coul.html - Coulombics via Wolf potential
"pair_style dpd"_pair_dpd.html - dissipative particle dynamics (DPD) "pair_style dpd"_pair_dpd.html - dissipative particle dynamics (DPD)
"pair_style dpd/tstat"_pair_dpd.html - DPD thermostatting "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/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 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 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"_pair_yukawa.html - Yukawa potential
"pair_style yukawa/colloid"_pair_yukawa_colloid.html - screened Yukawa potential for finite-size particles "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 "pair_style zbl"_pair_zbl.html - Ziegler-Biersack-Littmark potential :ul

View File

@ -160,28 +160,36 @@ pair_coeff * 3 morse.table ENTRY1 7.0
</div> </div>
<div class="section" id="description"> <div class="section" id="description">
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2> <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 <p>Style <em>table</em> creates interpolation tables from potential energy and
potential and force values listed in a file(s) as a function of force values listed in a file(s) as a function of distance. When
distance. The files are read by the <a class="reference internal" href="pair_coeff.html"><em>pair_coeff</em></a> performing dynamics or minimation, the interpolation tables are used
command.</p> to evaluate energy and forces for pairwise interactions between
<p>The interpolation tables are created by fitting cubic splines to the particles, similar to how analytic formulas are used for other pair
file values and interpolating energy and force values at each of <em>N</em> styles.</p>
distances. During a simulation, these tables are used to interpolate <p>The interpolation tables are created as a pre-computation by fitting
energy and force values as needed. The interpolation is done in one cubic splines to the file values and interpolating energy and force
of 4 styles: <em>lookup</em>, <em>linear</em>, <em>spline</em>, or <em>bitmap</em>.</p> values at each of <em>N</em> distances. During a simulation, the tables are
<p>For the <em>lookup</em> style, the distance between 2 atoms is used to find used to interpolate energy and force values as needed for each pair of
the nearest table entry, which is the energy or force.</p> particles separated by a distance <em>R</em>. The interpolation is done in
<p>For the <em>linear</em> style, the pair distance is used to find 2 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 surrounding table values from which an energy or force is computed by
linear interpolation.</p> linear interpolation.</p>
<p>For the <em>spline</em> style, a cubic spline coefficients are computed and <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 stored for each of the <em>N</em> values in the table, one set of splines for
used to find the appropriate set of coefficients which are used to energy, another for force. Note that these splines are different than
evaluate a cubic polynomial which computes the energy or force.</p> the ones used to pre-compute the <em>N</em> values. Those splines were fit
<p>For the <em>bitmap</em> style, the N means to create interpolation tables to the <em>Nfile</em> values in the tabulated file, where often <em>Nfile</em> &lt;
that are 2^N in length. The pair distance is used to index into the <em>N</em>. The distance <em>R</em> is used to find the appropriate set of spline
table via a fast bit-mapping technique due to <a class="reference internal" href="#wolff"><span>(Wolff)</span></a>, and a coefficients which are used to evaluate a cubic polynomial which
linear interpolation is performed between adjacent table values.</p> 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 <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 types via the <a class="reference internal" href="pair_coeff.html"><em>pair_coeff</em></a> command as in the examples
above.</p> above.</p>
@ -220,8 +228,9 @@ interpolation &#8220;features&#8221; you may not like.</li>
<li>Use <em>N</em> in the pair_style command equal to the &#8220;N&#8221; in the tabulation <li>Use <em>N</em> in the pair_style command equal to the &#8220;N&#8221; in the tabulation
file, and use the &#8220;RSQ&#8221; or &#8220;BITMAP&#8221; parameter, so additional interpolation file, and use the &#8220;RSQ&#8221; or &#8220;BITMAP&#8221; parameter, so additional interpolation
is not needed. See discussion below.</li> is not needed. See discussion below.</li>
<li>Make sure that your tabulated forces and tabulated energies are consistent <li>Make sure that your tabulated forces and tabulated energies are
(dE/dr = -F) along the entire range of r values.</li> 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 <li>Use as large an inner cutoff as possible. This avoids fitting splines
to very steep parts of the potential.</li> to very steep parts of the potential.</li>
</ul> </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 = &#8220;N&#8221; in the Ntable = <em>N</em> in the pair_style command, and Nfile = &#8220;N&#8221; in the
tabulated file. What LAMMPS does is a preliminary interpolation by tabulated file. What LAMMPS does is a preliminary interpolation by
creating splines using the Nfile tabulated values as nodal points. It creating splines using the Nfile tabulated values as nodal points. It
uses these to interpolate as needed to generate energy and force uses these to interpolate energy and force values at Ntable different
values at Ntable different points. The resulting tables of length points. The resulting tables of length Ntable are then used as
Ntable are then used as described above, when computing energy and described above, when computing energy and force for individual pair
force for individual pair distances. This means that if you want the distances. This means that if you want the interpolation tables of
interpolation tables of length Ntable to match exactly what is in the length Ntable to match exactly what is in the tabulated file (with
tabulated file (with effectively no preliminary interpolation), you effectively no preliminary interpolation), you should set Ntable =
should set Ntable = Nfile, and use the &#8220;RSQ&#8221; or &#8220;BITMAP&#8221; parameter. Nfile, and use the &#8220;RSQ&#8221; or &#8220;BITMAP&#8221; parameter. This is because the
The internal table abscissa is RSQ (separation distance squared).</p> internal table abscissa is always RSQ (separation distance squared),
for efficient lookup.</p>
<p>All other parameters are optional. If &#8220;R&#8221; or &#8220;RSQ&#8221; or &#8220;BITMAP&#8221; does <p>All other parameters are optional. If &#8220;R&#8221; or &#8220;RSQ&#8221; or &#8220;BITMAP&#8221; does
not appear, then the distances in each line of the table are used 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 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 &#8220;R&#8221;, distances uniformly spaced between <em>rlo</em> and <em>rhi</em> are For &#8220;R&#8221;, distances uniformly spaced between <em>rlo</em> and <em>rhi</em> are
computed; for &#8220;RSQ&#8221;, squared distances uniformly spaced between computed; for &#8220;RSQ&#8221;, squared distances uniformly spaced between
<em>rlo*rlo</em> and <em>rhi*rhi</em> are computed.</p> <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 &#8220;R&#8221; or &#8220;RSQ&#8221;, 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 &#8220;BITMAP&#8221; is also followed by 2 values <em>rlo</em> and <p>If used, the parameter &#8220;BITMAP&#8221; is also followed by 2 values <em>rlo</em> and
<em>rhi</em>. These values, along with the &#8220;N&#8221; value determine the ordering <em>rhi</em>. These values, along with the &#8220;N&#8221; value determine the ordering
of the N lines that follow and what distance is associated with each. of the N lines that follow and what distance is associated with each.

View File

@ -31,33 +31,41 @@ pair_coeff * 3 morse.table ENTRY1 7.0 :pre
[Description:] [Description:]
Style {table} creates interpolation tables of length {N} from pair Style {table} creates interpolation tables from potential energy and
potential and force values listed in a file(s) as a function of force values listed in a file(s) as a function of distance. When
distance. The files are read by the "pair_coeff"_pair_coeff.html performing dynamics or minimation, the interpolation tables are used
command. 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 The interpolation tables are created as a pre-computation by fitting
file values and interpolating energy and force values at each of {N} cubic splines to the file values and interpolating energy and force
distances. During a simulation, these tables are used to interpolate values at each of {N} distances. During a simulation, the tables are
energy and force values as needed. The interpolation is done in one used to interpolate energy and force values as needed for each pair of
of 4 styles: {lookup}, {linear}, {spline}, or {bitmap}. 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 For the {lookup} style, the distance {R} is used to find the nearest
the nearest table entry, which is the energy or force. 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 surrounding table values from which an energy or force is computed by
linear interpolation. linear interpolation.
For the {spline} style, a cubic spline coefficients are computed and 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 stored for each of the {N} values in the table, one set of splines for
used to find the appropriate set of coefficients which are used to energy, another for force. Note that these splines are different than
evaluate a cubic polynomial which computes the energy or force. 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 For the {bitmap} style, the specified {N} is used to create
that are 2^N in length. The pair distance is used to index into the interpolation tables that are 2^N in length. The distance {R} is used
table via a fast bit-mapping technique due to "(Wolff)"_#Wolff, and a to index into the table via a fast bit-mapping technique due to
linear interpolation is performed between adjacent table values. "(Wolff)"_#Wolff, and a linear interpolation is performed between
adjacent table values.
The following coefficients must be defined for each pair of atoms The following coefficients must be defined for each pair of atoms
types via the "pair_coeff"_pair_coeff.html command as in the examples 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 file, and use the "RSQ" or "BITMAP" parameter, so additional interpolation
is not needed. See discussion below. :l is not needed. See discussion below. :l
Make sure that your tabulated forces and tabulated energies are consistent Make sure that your tabulated forces and tabulated energies are
(dE/dr = -F) along the entire range of r values. :l 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 Use as large an inner cutoff as possible. This avoids fitting splines
to very steep parts of the potential. :l,ule 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 Ntable = {N} in the pair_style command, and Nfile = "N" in the
tabulated file. What LAMMPS does is a preliminary interpolation by tabulated file. What LAMMPS does is a preliminary interpolation by
creating splines using the Nfile tabulated values as nodal points. It creating splines using the Nfile tabulated values as nodal points. It
uses these to interpolate as needed to generate energy and force uses these to interpolate energy and force values at Ntable different
values at Ntable different points. The resulting tables of length points. The resulting tables of length Ntable are then used as
Ntable are then used as described above, when computing energy and described above, when computing energy and force for individual pair
force for individual pair distances. This means that if you want the distances. This means that if you want the interpolation tables of
interpolation tables of length Ntable to match exactly what is in the length Ntable to match exactly what is in the tabulated file (with
tabulated file (with effectively no preliminary interpolation), you effectively no preliminary interpolation), you should set Ntable =
should set Ntable = Nfile, and use the "RSQ" or "BITMAP" parameter. Nfile, and use the "RSQ" or "BITMAP" parameter. This is because the
The internal table abscissa is RSQ (separation distance squared). internal table abscissa is always RSQ (separation distance squared),
for efficient lookup.
All other parameters are optional. If "R" or "RSQ" or "BITMAP" does 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 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 computed; for "RSQ", squared distances uniformly spaced between
{rlo*rlo} and {rhi*rhi} are computed. {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 If used, the parameter "BITMAP" is also followed by 2 values {rlo} and
{rhi}. These values, along with the "N" value determine the ordering {rhi}. These values, along with the "N" value determine the ordering
of the N lines that follow and what distance is associated with each. of the N lines that follow and what distance is associated with each.

View File

@ -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 continued run (restarted from a data file) begins with image flags
that are consistent with the previous run.</li> that are consistent with the previous run.</li>
</ul> </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 <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 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 a <em>Velocities</em> section in the data file or by a

View File

@ -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 continued run (restarted from a data file) begins with image flags
that are consistent with the previous run. :l,ule 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 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 0.0 when the {Atoms} section is read. Velocities can be set later by
a {Velocities} section in the data file or by a a {Velocities} section in the data file or by a

File diff suppressed because one or more lines are too long