forked from lijiext/lammps
git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@14399 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
parent
29b4d60141
commit
57dc7d32d4
|
@ -607,12 +607,12 @@ This is indicated by additional letters in parenthesis: c = USER-CUDA,
|
|||
g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT.</p>
|
||||
<table border="1" class="docutils">
|
||||
<colgroup>
|
||||
<col width="16%" />
|
||||
<col width="11%" />
|
||||
<col width="12%" />
|
||||
<col width="15%" />
|
||||
<col width="11%" />
|
||||
<col width="11%" />
|
||||
<col width="13%" />
|
||||
<col width="10%" />
|
||||
<col width="12%" />
|
||||
<col width="11%" />
|
||||
<col width="15%" />
|
||||
<col width="12%" />
|
||||
</colgroup>
|
||||
|
@ -692,59 +692,59 @@ g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT.</p>
|
|||
<tr class="row-odd"><td><a class="reference internal" href="fix_property_atom.html"><em>property/atom</em></a></td>
|
||||
<td><a class="reference internal" href="fix_qeq_comb.html"><em>qeq/comb (o)</em></a></td>
|
||||
<td><a class="reference internal" href="fix_qeq.html"><em>qeq/dynamic</em></a></td>
|
||||
<td><a class="reference internal" href="fix_qeq.html"><em>qeq/fire</em></a></td>
|
||||
<td><a class="reference internal" href="fix_qeq.html"><em>qeq/point</em></a></td>
|
||||
<td><a class="reference internal" href="fix_qeq.html"><em>qeq/shielded</em></a></td>
|
||||
<td><a class="reference internal" href="fix_qeq.html"><em>qeq/slater</em></a></td>
|
||||
<td><a class="reference internal" href="fix_reax_bonds.html"><em>reax/bonds</em></a></td>
|
||||
<td><a class="reference internal" href="fix_recenter.html"><em>recenter</em></a></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><a class="reference internal" href="fix_restrain.html"><em>restrain</em></a></td>
|
||||
<tr class="row-even"><td><a class="reference internal" href="fix_recenter.html"><em>recenter</em></a></td>
|
||||
<td><a class="reference internal" href="fix_restrain.html"><em>restrain</em></a></td>
|
||||
<td><a class="reference internal" href="fix_rigid.html"><em>rigid (o)</em></a></td>
|
||||
<td><a class="reference internal" href="fix_rigid.html"><em>rigid/nph (o)</em></a></td>
|
||||
<td><a class="reference internal" href="fix_rigid.html"><em>rigid/npt (o)</em></a></td>
|
||||
<td><a class="reference internal" href="fix_rigid.html"><em>rigid/nve (o)</em></a></td>
|
||||
<td><a class="reference internal" href="fix_rigid.html"><em>rigid/nvt (o)</em></a></td>
|
||||
<td><a class="reference internal" href="fix_rigid.html"><em>rigid/small (o)</em></a></td>
|
||||
<td><a class="reference internal" href="fix_rigid.html"><em>rigid/small/nph</em></a></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><a class="reference internal" href="fix_rigid.html"><em>rigid/small/npt</em></a></td>
|
||||
<tr class="row-odd"><td><a class="reference internal" href="fix_rigid.html"><em>rigid/small/nph</em></a></td>
|
||||
<td><a class="reference internal" href="fix_rigid.html"><em>rigid/small/npt</em></a></td>
|
||||
<td><a class="reference internal" href="fix_rigid.html"><em>rigid/small/nve</em></a></td>
|
||||
<td><a class="reference internal" href="fix_rigid.html"><em>rigid/small/nvt</em></a></td>
|
||||
<td><a class="reference internal" href="fix_setforce.html"><em>setforce (ck)</em></a></td>
|
||||
<td><a class="reference internal" href="fix_shake.html"><em>shake (c)</em></a></td>
|
||||
<td><a class="reference internal" href="fix_spring.html"><em>spring</em></a></td>
|
||||
<td><a class="reference internal" href="fix_spring_rg.html"><em>spring/rg</em></a></td>
|
||||
<td><a class="reference internal" href="fix_spring_self.html"><em>spring/self</em></a></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><a class="reference internal" href="fix_srd.html"><em>srd</em></a></td>
|
||||
<tr class="row-even"><td><a class="reference internal" href="fix_spring_self.html"><em>spring/self</em></a></td>
|
||||
<td><a class="reference internal" href="fix_srd.html"><em>srd</em></a></td>
|
||||
<td><a class="reference internal" href="fix_store_force.html"><em>store/force</em></a></td>
|
||||
<td><a class="reference internal" href="fix_store_state.html"><em>store/state</em></a></td>
|
||||
<td><a class="reference internal" href="fix_temp_berendsen.html"><em>temp/berendsen (c)</em></a></td>
|
||||
<td><a class="reference internal" href="fix_temp_csvr.html"><em>temp/csld</em></a></td>
|
||||
<td><a class="reference internal" href="fix_temp_csvr.html"><em>temp/csvr</em></a></td>
|
||||
<td><a class="reference internal" href="fix_temp_rescale.html"><em>temp/rescale (c)</em></a></td>
|
||||
<td><a class="reference internal" href="fix_tfmc.html"><em>tfmc</em></a></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><a class="reference internal" href="fix_thermal_conductivity.html"><em>thermal/conductivity</em></a></td>
|
||||
<tr class="row-odd"><td><a class="reference internal" href="fix_tfmc.html"><em>tfmc</em></a></td>
|
||||
<td><a class="reference internal" href="fix_thermal_conductivity.html"><em>thermal/conductivity</em></a></td>
|
||||
<td><a class="reference internal" href="fix_tmd.html"><em>tmd</em></a></td>
|
||||
<td><a class="reference internal" href="fix_ttm.html"><em>ttm</em></a></td>
|
||||
<td><a class="reference internal" href="fix_tune_kspace.html"><em>tune/kspace</em></a></td>
|
||||
<td><a class="reference internal" href="fix_vector.html"><em>vector</em></a></td>
|
||||
<td><a class="reference internal" href="fix_viscosity.html"><em>viscosity</em></a></td>
|
||||
<td><a class="reference internal" href="fix_viscous.html"><em>viscous (c)</em></a></td>
|
||||
<td><a class="reference internal" href="fix_wall.html"><em>wall/colloid</em></a></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><a class="reference internal" href="fix_wall_gran.html"><em>wall/gran</em></a></td>
|
||||
<tr class="row-even"><td><a class="reference internal" href="fix_wall.html"><em>wall/colloid</em></a></td>
|
||||
<td><a class="reference internal" href="fix_wall_gran.html"><em>wall/gran</em></a></td>
|
||||
<td><a class="reference internal" href="fix_wall.html"><em>wall/harmonic</em></a></td>
|
||||
<td><a class="reference internal" href="fix_wall.html"><em>wall/lj1043</em></a></td>
|
||||
<td><a class="reference internal" href="fix_wall.html"><em>wall/lj126</em></a></td>
|
||||
<td><a class="reference internal" href="fix_wall.html"><em>wall/lj93</em></a></td>
|
||||
<td><a class="reference internal" href="fix_wall_piston.html"><em>wall/piston</em></a></td>
|
||||
<td><a class="reference internal" href="fix_wall_reflect.html"><em>wall/reflect (k)</em></a></td>
|
||||
<td><a class="reference internal" href="fix_wall_region.html"><em>wall/region</em></a></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><a class="reference internal" href="fix_wall_srd.html"><em>wall/srd</em></a></td>
|
||||
<td> </td>
|
||||
<tr class="row-odd"><td><a class="reference internal" href="fix_wall_region.html"><em>wall/region</em></a></td>
|
||||
<td><a class="reference internal" href="fix_wall_srd.html"><em>wall/srd</em></a></td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
|
|
|
@ -548,6 +548,7 @@ g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT.
|
|||
"property/atom"_fix_property_atom.html,
|
||||
"qeq/comb (o)"_fix_qeq_comb.html,
|
||||
"qeq/dynamic"_fix_qeq.html,
|
||||
"qeq/fire"_fix_qeq.html,
|
||||
"qeq/point"_fix_qeq.html,
|
||||
"qeq/shielded"_fix_qeq.html,
|
||||
"qeq/slater"_fix_qeq.html,
|
||||
|
|
|
@ -235,12 +235,12 @@ correctly, the time-averaged temperature and stress tensor of the
|
|||
particles will match the target values specified by Tstart/Tstop and
|
||||
Pstart/Pstop.</p>
|
||||
<p>The equations of motion used are those of Shinoda et al in
|
||||
<a class="reference internal" href="pair_sdk.html#shinoda"><span>(Shinoda)</span></a>, which combine the hydrostatic equations of
|
||||
Martyna, Tobias and Klein in <a class="reference internal" href="fix_rigid.html#martyna"><span>(Martyna)</span></a> with the strain
|
||||
<a class="reference internal" href="#shinoda"><span>(Shinoda)</span></a>, which combine the hydrostatic equations of
|
||||
Martyna, Tobias and Klein in <a class="reference internal" href="#martyna"><span>(Martyna)</span></a> with the strain
|
||||
energy proposed by Parrinello and Rahman in
|
||||
<a class="reference internal" href="fix_nh_eff.html#parrinello"><span>(Parrinello)</span></a>. The time integration schemes closely
|
||||
<a class="reference internal" href="#parrinello"><span>(Parrinello)</span></a>. The time integration schemes closely
|
||||
follow the time-reversible measure-preserving Verlet and rRESPA
|
||||
integrators derived by Tuckerman et al in <a class="reference internal" href="run_style.html#tuckerman"><span>(Tuckerman)</span></a>.</p>
|
||||
integrators derived by Tuckerman et al in <a class="reference internal" href="#tuckerman"><span>(Tuckerman)</span></a>.</p>
|
||||
<hr class="docutils" />
|
||||
<p>The thermostat parameters for fix styles <em>nvt</em> and <em>npt</em> is specified
|
||||
using the <em>temp</em> keyword. Other thermostat-related keywords are
|
||||
|
@ -397,7 +397,7 @@ freedom. A value of 0 corresponds to no thermostatting of the
|
|||
barostat variables.</p>
|
||||
<p>The <em>mtk</em> keyword controls whether or not the correction terms due to
|
||||
Martyna, Tuckerman, and Klein are included in the equations of motion
|
||||
<a class="reference internal" href="fix_rigid.html#martyna"><span>(Martyna)</span></a>. Specifying <em>no</em> reproduces the original
|
||||
<a class="reference internal" href="#martyna"><span>(Martyna)</span></a>. Specifying <em>no</em> reproduces the original
|
||||
Hoover barostat, whose volume probability distribution function
|
||||
differs from the true NPT and NPH ensembles by a factor of 1/V. Hence
|
||||
using <em>yes</em> is more correct, but in many cases the difference is
|
||||
|
@ -406,7 +406,7 @@ negligible.</p>
|
|||
scheme at little extra cost. The initial and final updates of the
|
||||
thermostat variables are broken up into <em>tloop</em> substeps, each of
|
||||
length <em>dt</em>/<em>tloop</em>. This corresponds to using a first-order
|
||||
Suzuki-Yoshida scheme <a class="reference internal" href="run_style.html#tuckerman"><span>(Tuckerman)</span></a>. The keyword <em>ploop</em>
|
||||
Suzuki-Yoshida scheme <a class="reference internal" href="#tuckerman"><span>(Tuckerman)</span></a>. The keyword <em>ploop</em>
|
||||
does the same thing for the barostat thermostat.</p>
|
||||
<p>The keyword <em>nreset</em> controls how often the reference dimensions used
|
||||
to define the strain energy are reset. If this keyword is not used,
|
||||
|
@ -548,6 +548,18 @@ the outermost rRESPA timestep, the barostat dynamics are not the
|
|||
limiting factor for numerical stability. Both factorizations are
|
||||
time-reversible and can be shown to preserve the phase space measure
|
||||
of the underlying non-Hamiltonian equations of motion.</p>
|
||||
<div class="admonition note">
|
||||
<p class="first admonition-title">Note</p>
|
||||
<p class="last">This implementation has been shown to conserve linear momentum
|
||||
up to machine precision under NVT dynamics. Under NPT dynamics,
|
||||
for a system with zero initial total linear momentum, the total
|
||||
momentum fluctuates close to zero. It may occasionally undergo brief
|
||||
excursions to non-negligible values, before returning close to zero.
|
||||
Over long simulations, this has the effect of causing the center-of-mass
|
||||
to undergo a slow random walk. This can be mitigated by resetting
|
||||
the momentum at infrequent intervals using the
|
||||
<a class="reference internal" href="fix_momentum.html"><em>fix momentum</em></a> command.</p>
|
||||
</div>
|
||||
<hr class="docutils" />
|
||||
<p>The fix npt and fix nph commands can be used with rigid bodies or
|
||||
mixtures of rigid bodies and non-rigid particles (e.g. solvent). But
|
||||
|
|
|
@ -135,42 +135,53 @@
|
|||
</div>
|
||||
<div class="section" id="fix-qeq-dynamic-command">
|
||||
<h1>fix qeq/dynamic command<a class="headerlink" href="#fix-qeq-dynamic-command" title="Permalink to this headline">¶</a></h1>
|
||||
</div>
|
||||
<div class="section" id="fix-qeq-fire-command">
|
||||
<h1>fix qeq/fire command<a class="headerlink" href="#fix-qeq-fire-command" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="section" id="syntax">
|
||||
<h2>Syntax<a class="headerlink" href="#syntax" title="Permalink to this headline">¶</a></h2>
|
||||
<div class="highlight-python"><div class="highlight"><pre>fix ID group-ID style Nevery cutoff tolerance maxiter qfile
|
||||
<div class="highlight-python"><div class="highlight"><pre>fix ID group-ID style Nevery cutoff tolerance maxiter qfile keyword ...
|
||||
</pre></div>
|
||||
</div>
|
||||
<ul class="simple">
|
||||
<li>ID, group-ID are documented in <a class="reference internal" href="fix.html"><em>fix</em></a> command</li>
|
||||
<li>style = <em>qeq/point</em> or <em>qeq/shielded</em> or <em>qeq/slater</em> or <em>qeq/dynamic</em></li>
|
||||
<li>style = <em>qeq/point</em> or <em>qeq/shielded</em> or <em>qeq/slater</em> or <em>qeq/dynamic</em> or <em>qeq/fire</em></li>
|
||||
<li>Nevery = perform charge equilibration every this many steps</li>
|
||||
<li>cutoff = global cutoff for charge-charge interactions (distance unit)</li>
|
||||
<li>tolerance = precision to which charges will be equilibrated</li>
|
||||
<li>maxiter = maximum iterations to perform charge equilibration</li>
|
||||
<li>qfile = a filename with QEq parameters</li>
|
||||
<li>zero or more keyword/value pairs may be appended</li>
|
||||
<li>keyword = <em>alpha</em> or <em>qdamp</em> or <em>qstep</em></li>
|
||||
</ul>
|
||||
<pre class="literal-block">
|
||||
<em>alpha</em> value = Slater type orbital exponent (qeq/slater only)
|
||||
<em>qdamp</em> value = damping factor for damped dynamics charge solver (qeq/dynamic and qeq/fire only)
|
||||
<em>qstep</em> value = time step size for damped dynamics charge solver (qeq/dynamic and qeq/fire only)
|
||||
</pre>
|
||||
</div>
|
||||
<div class="section" id="examples">
|
||||
<h2>Examples<a class="headerlink" href="#examples" title="Permalink to this headline">¶</a></h2>
|
||||
<div class="highlight-python"><div class="highlight"><pre>fix 1 all qeq/point 1 10 1.0e-6 200 param.qeq1
|
||||
fix 1 qeq qeq/shielded 1 8 1.0e-6 100 param.qeq2
|
||||
fix 1 all qeq/slater 5 10 1.0e-6 100 params
|
||||
fix 1 all qeq/slater 5 10 1.0e-6 100 params alpha 0.2
|
||||
fix 1 qeq qeq/dynamic 1 12 1.0e-3 100 my_qeq
|
||||
fix 1 all qeq/fire 1 10 1.0e-3 100 my_qeq qdamp 0.2 qstep 0.1
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="description">
|
||||
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Perform the charge equilibration (QEq) method as described in <a class="reference internal" href="fix_qeq_reax.html#rappe"><span>(Rappe and Goddard)</span></a> and formulated in <a class="reference internal" href="neb.html#nakano"><span>(Nakano)</span></a> (also known
|
||||
as the matrix inversion method) and in <a class="reference internal" href="pair_smtbq.html#rick"><span>(Rick and Stuart)</span></a> (also
|
||||
<p>Perform the charge equilibration (QEq) method as described in <a class="reference internal" href="#rappe"><span>(Rappe and Goddard)</span></a> and formulated in <a class="reference internal" href="#nakano"><span>(Nakano)</span></a> (also known
|
||||
as the matrix inversion method) and in <a class="reference internal" href="#rick"><span>(Rick and Stuart)</span></a> (also
|
||||
known as the extended Lagrangian method) based on the
|
||||
electronegativity equilization principle.</p>
|
||||
<p>These fixes can be used with any <a class="reference internal" href="pair_style.html"><em>pair style</em></a> in
|
||||
LAMMPS, so long as per-atom charges are defined. The most typical
|
||||
use-case is in conjunction with a <a class="reference internal" href="pair_style.html"><em>pair style</em></a> that
|
||||
performs charge equilibration periodically (e.g. every timestep), such
|
||||
as the ReaxFF or Streitz-Mintmire potential (the latter is not yet
|
||||
implemented in LAMMPS). But these fixes can also be used with
|
||||
as the ReaxFF or Streitz-Mintmire potential.
|
||||
But these fixes can also be used with
|
||||
potentials that normally assume per-atom charges are fixed, e.g. a
|
||||
<a class="reference internal" href="pair_buck.html"><em>Buckingham</em></a> or <a class="reference internal" href="pair_lj.html"><em>LJ/Coulombic</em></a> potential.</p>
|
||||
<p>Because the charge equilibration calculation is effectively
|
||||
|
@ -214,8 +225,8 @@ below, thus the others can be set to 0.0 if desired.</p>
|
|||
<li><em>chi</em> = electronegativity in energy units</li>
|
||||
<li><em>eta</em> = self-Coulomb potential in energy units</li>
|
||||
<li><em>gamma</em> = shielded Coulomb constant defined by <a class="reference internal" href="#vanduin"><span>ReaxFF force field</span></a> in distance units</li>
|
||||
<li><em>zeta</em> = Slater type orbital exponent defined by the <a class="reference internal" href="pair_coul.html#streitz"><span>Streitz-Mintmire</span></a> potential in reverse distance units</li>
|
||||
<li><em>qcore</em> = charge of the nucleus defined by the <a class="reference internal" href="pair_coul.html#streitz"><span>Streitz-Mintmire potential</span></a> potential in charge units</li>
|
||||
<li><em>zeta</em> = Slater type orbital exponent defined by the <a class="reference internal" href="#streitz"><span>Streitz-Mintmire</span></a> potential in reverse distance units</li>
|
||||
<li><em>qcore</em> = charge of the nucleus defined by the <a class="reference internal" href="#streitz"><span>Streitz-Mintmire potential</span></a> potential in charge units</li>
|
||||
</ul>
|
||||
<p>The <em>qeq/point</em> style describes partial charges on atoms as point
|
||||
charges. Interaction between a pair of charged particles is 1/r,
|
||||
|
@ -239,27 +250,35 @@ charge densities centered around atoms via the Slater 1*s* orbital, so
|
|||
that the interaction between a pair of charged particles is the
|
||||
product of two Slater 1*s* orbitals. The expression for the Slater
|
||||
1*s* orbital is given under equation (6) of the
|
||||
<a class="reference internal" href="pair_coul.html#streitz"><span>Streitz-Mintmire</span></a> paper. Only the <em>chi</em>, <em>eta</em>, <em>zeta</em>, and
|
||||
<a class="reference internal" href="#streitz"><span>Streitz-Mintmire</span></a> paper. Only the <em>chi</em>, <em>eta</em>, <em>zeta</em>, and
|
||||
<em>qcore</em> parameters from the <em>qfile</em> file are used. This style solves
|
||||
partial charges on atoms via the matrix inversion method. A tolerance
|
||||
of 1.0e-6 is usually a good number.</p>
|
||||
of 1.0e-6 is usually a good number. Keyword <em>alpha</em> can be used to
|
||||
change the Slater type orbital exponent.</p>
|
||||
<p>The <em>qeq/dynamic</em> style describes partial charges on atoms as point
|
||||
charges that interact through 1/r, but the extended Lagrangian method
|
||||
is used to solve partial charges on atoms. Only the <em>chi</em> and <em>eta</em>
|
||||
parameters from the <em>qfile</em> file are used. Note that Coulomb
|
||||
catastrophe can occur if repulsion between the pair of charged
|
||||
particles is too weak. A tolerance of 1.0e-3 is usually a good
|
||||
number.</p>
|
||||
number. Keyword <em>qdamp</em> can be used to change the damping factor, while
|
||||
keyword <em>qstep</em> can be used to change the time step size.</p>
|
||||
<p>The <a class="reference internal" href="#shan"><span>*qeq/fire*</span></a> style describes the same charge model and charge
|
||||
solver as the <em>qeq/dynamic</em> style, but employs a FIRE minimization
|
||||
algorithm to solve for equilibrium charges.
|
||||
Keyword <em>qdamp</em> can be used to change the damping factor, while
|
||||
keyword <em>qstep</em> can be used to change the time step size.</p>
|
||||
<p>Note that <em>qeq/point</em>, <em>qeq/shielded</em>, and <em>qeq/slater</em> describe
|
||||
different charge models, whereas the matrix inversion method and the
|
||||
extended Lagrangian method (<em>qeq/dynamic</em>) are different solvers.</p>
|
||||
<p>Note that the <em>qeq/point</em> and the <em>qeq/dynamic</em> styles both describe
|
||||
extended Lagrangian method (<em>qeq/dynamic</em> and <em>qeq/fire</em>) are
|
||||
different solvers.</p>
|
||||
<p>Note that <em>qeq/point</em>, <em>qeq/dynamic</em> and <em>qeq/fire</em> styles all describe
|
||||
charges as point charges that interact through 1/r relationship, but
|
||||
solve partial charges on atoms using different solvers. Styles
|
||||
<em>qeq/point</em> and the <em>qeq/dynamic</em> should yield comparable results if
|
||||
solve partial charges on atoms using different solvers. These three
|
||||
styles should yield comparable results if
|
||||
the QEq parameters and <em>Nevery</em>, <em>cutoff</em>, and <em>tolerance</em> are the
|
||||
same. Style <em>qeq/point</em> is typically faster, but <em>qeq/dynamic</em> scales
|
||||
better on larger sizes.</p>
|
||||
same. Style <em>qeq/point</em> is typically faster, <em>qeq/dynamic</em> scales
|
||||
better on larger sizes, and <em>qeq/fire</em> is faster than <em>qeq/dynamic</em>.</p>
|
||||
<div class="admonition note">
|
||||
<p class="first admonition-title">Note</p>
|
||||
<p class="last">To avoid the evaluation of the derivative of charge with respect
|
||||
|
@ -269,7 +288,7 @@ zero net charge.</p>
|
|||
<div class="admonition note">
|
||||
<p class="first admonition-title">Note</p>
|
||||
<p class="last">Developing QEq parameters (chi, eta, gamma, zeta, and qcore) is
|
||||
an “art”. Charges on atoms are not guaranteed to equilibrate with
|
||||
non-trivial. Charges on atoms are not guaranteed to equilibrate with
|
||||
arbitrary choices of these parameters. We do not develop these QEq
|
||||
paramters. See the examples/qeq directory for some examples.</p>
|
||||
</div>
|
||||
|
@ -301,6 +320,7 @@ Chemistry, 95, 3358-3363 (1991).</p>
|
|||
16, 11996 (1994)</p>
|
||||
<p id="vanduin"><strong>(ReaxFF)</strong> A. C. T. van Duin, S. Dasgupta, F. Lorant, W. A. Goddard III, J
|
||||
Physical Chemistry, 105, 9396-9049 (2001)</p>
|
||||
<p id="shan"><strong>(QEq/Fire)</strong> T.-R. Shan, A. P. Thompson, S. J. Plimpton, in preparation</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -10,25 +10,35 @@ fix qeq/point command :h3
|
|||
fix qeq/shielded command :h3
|
||||
fix qeq/slater command :h3
|
||||
fix qeq/dynamic command :h3
|
||||
fix qeq/fire command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
fix ID group-ID style Nevery cutoff tolerance maxiter qfile :pre
|
||||
fix ID group-ID style Nevery cutoff tolerance maxiter qfile keyword ... :pre
|
||||
|
||||
ID, group-ID are documented in "fix"_fix.html command
|
||||
style = {qeq/point} or {qeq/shielded} or {qeq/slater} or {qeq/dynamic}
|
||||
Nevery = perform charge equilibration every this many steps
|
||||
cutoff = global cutoff for charge-charge interactions (distance unit)
|
||||
tolerance = precision to which charges will be equilibrated
|
||||
maxiter = maximum iterations to perform charge equilibration
|
||||
qfile = a filename with QEq parameters :ul
|
||||
ID, group-ID are documented in "fix"_fix.html command :ulb,l
|
||||
style = {qeq/point} or {qeq/shielded} or {qeq/slater} or {qeq/dynamic} or {qeq/fire} :l
|
||||
Nevery = perform charge equilibration every this many steps :l
|
||||
cutoff = global cutoff for charge-charge interactions (distance unit) :l
|
||||
tolerance = precision to which charges will be equilibrated :l
|
||||
maxiter = maximum iterations to perform charge equilibration :l
|
||||
qfile = a filename with QEq parameters :l
|
||||
|
||||
zero or more keyword/value pairs may be appended :l
|
||||
keyword = {alpha} or {qdamp} or {qstep} :l
|
||||
{alpha} value = Slater type orbital exponent (qeq/slater only)
|
||||
{qdamp} value = damping factor for damped dynamics charge solver (qeq/dynamic and qeq/fire only)
|
||||
{qstep} value = time step size for damped dynamics charge solver (qeq/dynamic and qeq/fire only) :pre
|
||||
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
fix 1 all qeq/point 1 10 1.0e-6 200 param.qeq1
|
||||
fix 1 qeq qeq/shielded 1 8 1.0e-6 100 param.qeq2
|
||||
fix 1 all qeq/slater 5 10 1.0e-6 100 params
|
||||
fix 1 qeq qeq/dynamic 1 12 1.0e-3 100 my_qeq :pre
|
||||
fix 1 all qeq/slater 5 10 1.0e-6 100 params alpha 0.2
|
||||
fix 1 qeq qeq/dynamic 1 12 1.0e-3 100 my_qeq
|
||||
fix 1 all qeq/fire 1 10 1.0e-3 100 my_qeq qdamp 0.2 qstep 0.1 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
|
@ -42,8 +52,8 @@ These fixes can be used with any "pair style"_pair_style.html in
|
|||
LAMMPS, so long as per-atom charges are defined. The most typical
|
||||
use-case is in conjunction with a "pair style"_pair_style.html that
|
||||
performs charge equilibration periodically (e.g. every timestep), such
|
||||
as the ReaxFF or Streitz-Mintmire potential (the latter is not yet
|
||||
implemented in LAMMPS). But these fixes can also be used with
|
||||
as the ReaxFF or Streitz-Mintmire potential.
|
||||
But these fixes can also be used with
|
||||
potentials that normally assume per-atom charges are fixed, e.g. a
|
||||
"Buckingham"_pair_buck.html or "LJ/Coulombic"_pair_lj.html potential.
|
||||
|
||||
|
@ -119,7 +129,8 @@ product of two Slater 1{s} orbitals. The expression for the Slater
|
|||
"Streitz-Mintmire"_#Streitz paper. Only the {chi}, {eta}, {zeta}, and
|
||||
{qcore} parameters from the {qfile} file are used. This style solves
|
||||
partial charges on atoms via the matrix inversion method. A tolerance
|
||||
of 1.0e-6 is usually a good number.
|
||||
of 1.0e-6 is usually a good number. Keyword {alpha} can be used to
|
||||
change the Slater type orbital exponent.
|
||||
|
||||
The {qeq/dynamic} style describes partial charges on atoms as point
|
||||
charges that interact through 1/r, but the extended Lagrangian method
|
||||
|
@ -127,26 +138,34 @@ is used to solve partial charges on atoms. Only the {chi} and {eta}
|
|||
parameters from the {qfile} file are used. Note that Coulomb
|
||||
catastrophe can occur if repulsion between the pair of charged
|
||||
particles is too weak. A tolerance of 1.0e-3 is usually a good
|
||||
number.
|
||||
number. Keyword {qdamp} can be used to change the damping factor, while
|
||||
keyword {qstep} can be used to change the time step size.
|
||||
|
||||
The "{qeq/fire}"_#Shan style describes the same charge model and charge
|
||||
solver as the {qeq/dynamic} style, but employs a FIRE minimization
|
||||
algorithm to solve for equilibrium charges.
|
||||
Keyword {qdamp} can be used to change the damping factor, while
|
||||
keyword {qstep} can be used to change the time step size.
|
||||
|
||||
Note that {qeq/point}, {qeq/shielded}, and {qeq/slater} describe
|
||||
different charge models, whereas the matrix inversion method and the
|
||||
extended Lagrangian method ({qeq/dynamic}) are different solvers.
|
||||
extended Lagrangian method ({qeq/dynamic} and {qeq/fire}) are
|
||||
different solvers.
|
||||
|
||||
Note that the {qeq/point} and the {qeq/dynamic} styles both describe
|
||||
Note that {qeq/point}, {qeq/dynamic} and {qeq/fire} styles all describe
|
||||
charges as point charges that interact through 1/r relationship, but
|
||||
solve partial charges on atoms using different solvers. Styles
|
||||
{qeq/point} and the {qeq/dynamic} should yield comparable results if
|
||||
solve partial charges on atoms using different solvers. These three
|
||||
styles should yield comparable results if
|
||||
the QEq parameters and {Nevery}, {cutoff}, and {tolerance} are the
|
||||
same. Style {qeq/point} is typically faster, but {qeq/dynamic} scales
|
||||
better on larger sizes.
|
||||
same. Style {qeq/point} is typically faster, {qeq/dynamic} scales
|
||||
better on larger sizes, and {qeq/fire} is faster than {qeq/dynamic}.
|
||||
|
||||
NOTE: To avoid the evaluation of the derivative of charge with respect
|
||||
to position, which is typically ill-defined, the system should have a
|
||||
zero net charge.
|
||||
|
||||
NOTE: Developing QEq parameters (chi, eta, gamma, zeta, and qcore) is
|
||||
an "art". Charges on atoms are not guaranteed to equilibrate with
|
||||
non-trivial. Charges on atoms are not guaranteed to equilibrate with
|
||||
arbitrary choices of these parameters. We do not develop these QEq
|
||||
paramters. See the examples/qeq directory for some examples.
|
||||
|
||||
|
@ -193,3 +212,6 @@ Chemistry, 95, 3358-3363 (1991).
|
|||
:link(vanDuin)
|
||||
[(ReaxFF)] A. C. T. van Duin, S. Dasgupta, F. Lorant, W. A. Goddard III, J
|
||||
Physical Chemistry, 105, 9396-9049 (2001)
|
||||
|
||||
:link(Shan)
|
||||
[(QEq/Fire)] T.-R. Shan, A. P. Thompson, S. J. Plimpton, in preparation
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue