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

This commit is contained in:
sjplimp 2015-12-23 17:07:47 +00:00
parent 29b4d60141
commit 57dc7d32d4
6 changed files with 119 additions and 64 deletions

View File

@ -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> g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT.</p>
<table border="1" class="docutils"> <table border="1" class="docutils">
<colgroup> <colgroup>
<col width="16%" />
<col width="11%" /> <col width="11%" />
<col width="12%" /> <col width="15%" />
<col width="11%" />
<col width="11%" />
<col width="13%" /> <col width="13%" />
<col width="10%" /> <col width="11%" />
<col width="12%" />
<col width="15%" /> <col width="15%" />
<col width="12%" /> <col width="12%" />
</colgroup> </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> <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_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/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/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/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_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_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>
<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 (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/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/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/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/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 (o)</em></a></td>
<td><a class="reference internal" href="fix_rigid.html"><em>rigid/small/nph</em></a></td>
</tr> </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/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_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_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_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.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_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>
<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_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_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_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/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_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_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>
<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_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_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_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_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_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_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>
<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/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/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/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.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_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_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>
<tr class="row-odd"><td><a class="reference internal" href="fix_wall_srd.html"><em>wall/srd</em></a></td> <tr class="row-odd"><td><a class="reference internal" href="fix_wall_region.html"><em>wall/region</em></a></td>
<td>&nbsp;</td> <td><a class="reference internal" href="fix_wall_srd.html"><em>wall/srd</em></a></td>
<td>&nbsp;</td> <td>&nbsp;</td>
<td>&nbsp;</td> <td>&nbsp;</td>
<td>&nbsp;</td> <td>&nbsp;</td>

View File

@ -548,6 +548,7 @@ g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = OPT.
"property/atom"_fix_property_atom.html, "property/atom"_fix_property_atom.html,
"qeq/comb (o)"_fix_qeq_comb.html, "qeq/comb (o)"_fix_qeq_comb.html,
"qeq/dynamic"_fix_qeq.html, "qeq/dynamic"_fix_qeq.html,
"qeq/fire"_fix_qeq.html,
"qeq/point"_fix_qeq.html, "qeq/point"_fix_qeq.html,
"qeq/shielded"_fix_qeq.html, "qeq/shielded"_fix_qeq.html,
"qeq/slater"_fix_qeq.html, "qeq/slater"_fix_qeq.html,

View File

@ -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 particles will match the target values specified by Tstart/Tstop and
Pstart/Pstop.</p> Pstart/Pstop.</p>
<p>The equations of motion used are those of Shinoda et al in <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 <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="fix_rigid.html#martyna"><span>(Martyna)</span></a> with the strain 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 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 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" /> <hr class="docutils" />
<p>The thermostat parameters for fix styles <em>nvt</em> and <em>npt</em> is specified <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 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> barostat variables.</p>
<p>The <em>mtk</em> keyword controls whether or not the correction terms due to <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 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 Hoover barostat, whose volume probability distribution function
differs from the true NPT and NPH ensembles by a factor of 1/V. Hence 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 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 scheme at little extra cost. The initial and final updates of the
thermostat variables are broken up into <em>tloop</em> substeps, each of 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 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> does the same thing for the barostat thermostat.</p>
<p>The keyword <em>nreset</em> controls how often the reference dimensions used <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, 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 limiting factor for numerical stability. Both factorizations are
time-reversible and can be shown to preserve the phase space measure time-reversible and can be shown to preserve the phase space measure
of the underlying non-Hamiltonian equations of motion.</p> 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" /> <hr class="docutils" />
<p>The fix npt and fix nph commands can be used with rigid bodies or <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 mixtures of rigid bodies and non-rigid particles (e.g. solvent). But

View File

@ -135,42 +135,53 @@
</div> </div>
<div class="section" id="fix-qeq-dynamic-command"> <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> <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"> <div class="section" id="syntax">
<h2>Syntax<a class="headerlink" href="#syntax" title="Permalink to this headline"></a></h2> <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> </pre></div>
</div> </div>
<ul class="simple"> <ul class="simple">
<li>ID, group-ID are documented in <a class="reference internal" href="fix.html"><em>fix</em></a> command</li> <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>Nevery = perform charge equilibration every this many steps</li>
<li>cutoff = global cutoff for charge-charge interactions (distance unit)</li> <li>cutoff = global cutoff for charge-charge interactions (distance unit)</li>
<li>tolerance = precision to which charges will be equilibrated</li> <li>tolerance = precision to which charges will be equilibrated</li>
<li>maxiter = maximum iterations to perform charge equilibration</li> <li>maxiter = maximum iterations to perform charge equilibration</li>
<li>qfile = a filename with QEq parameters</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> </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>
<div class="section" id="examples"> <div class="section" id="examples">
<h2>Examples<a class="headerlink" href="#examples" title="Permalink to this headline"></a></h2> <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 <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 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 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> </pre></div>
</div> </div>
</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>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 <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="pair_smtbq.html#rick"><span>(Rick and Stuart)</span></a> (also 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 known as the extended Lagrangian method) based on the
electronegativity equilization principle.</p> 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 <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 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 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 performs charge equilibration periodically (e.g. every timestep), such
as the ReaxFF or Streitz-Mintmire potential (the latter is not yet as the ReaxFF or Streitz-Mintmire potential.
implemented in LAMMPS). But these fixes can also be used with But these fixes can also be used with
potentials that normally assume per-atom charges are fixed, e.g. a 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> <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 <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>chi</em> = electronegativity in energy units</li>
<li><em>eta</em> = self-Coulomb potential 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>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>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="pair_coul.html#streitz"><span>Streitz-Mintmire potential</span></a> potential in charge 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> </ul>
<p>The <em>qeq/point</em> style describes partial charges on atoms as point <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, 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 that the interaction between a pair of charged particles is the
product of two Slater 1*s* orbitals. The expression for the Slater product of two Slater 1*s* orbitals. The expression for the Slater
1*s* orbital is given under equation (6) of the 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 <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 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 <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 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> 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 parameters from the <em>qfile</em> file are used. Note that Coulomb
catastrophe can occur if repulsion between the pair of charged catastrophe can occur if repulsion between the pair of charged
particles is too weak. A tolerance of 1.0e-3 is usually a good 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 <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 different charge models, whereas the matrix inversion method and the
extended Lagrangian method (<em>qeq/dynamic</em>) are different solvers.</p> extended Lagrangian method (<em>qeq/dynamic</em> and <em>qeq/fire</em>) are
<p>Note that the <em>qeq/point</em> and the <em>qeq/dynamic</em> styles both describe 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 charges as point charges that interact through 1/r relationship, but
solve partial charges on atoms using different solvers. Styles solve partial charges on atoms using different solvers. These three
<em>qeq/point</em> and the <em>qeq/dynamic</em> should yield comparable results if styles should yield comparable results if
the QEq parameters and <em>Nevery</em>, <em>cutoff</em>, and <em>tolerance</em> are the 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 same. Style <em>qeq/point</em> is typically faster, <em>qeq/dynamic</em> scales
better on larger sizes.</p> better on larger sizes, and <em>qeq/fire</em> is faster than <em>qeq/dynamic</em>.</p>
<div class="admonition note"> <div class="admonition note">
<p class="first admonition-title">Note</p> <p class="first admonition-title">Note</p>
<p class="last">To avoid the evaluation of the derivative of charge with respect <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"> <div class="admonition note">
<p class="first admonition-title">Note</p> <p class="first admonition-title">Note</p>
<p class="last">Developing QEq parameters (chi, eta, gamma, zeta, and qcore) is <p class="last">Developing QEq parameters (chi, eta, gamma, zeta, and qcore) is
an &#8220;art&#8221;. 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 arbitrary choices of these parameters. We do not develop these QEq
paramters. See the examples/qeq directory for some examples.</p> paramters. See the examples/qeq directory for some examples.</p>
</div> </div>
@ -301,6 +320,7 @@ Chemistry, 95, 3358-3363 (1991).</p>
16, 11996 (1994)</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 <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> 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>
</div> </div>

View File

@ -10,25 +10,35 @@ fix qeq/point command :h3
fix qeq/shielded command :h3 fix qeq/shielded command :h3
fix qeq/slater command :h3 fix qeq/slater command :h3
fix qeq/dynamic command :h3 fix qeq/dynamic command :h3
fix qeq/fire command :h3
[Syntax:] [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 ID, group-ID are documented in "fix"_fix.html command :ulb,l
style = {qeq/point} or {qeq/shielded} or {qeq/slater} or {qeq/dynamic} style = {qeq/point} or {qeq/shielded} or {qeq/slater} or {qeq/dynamic} or {qeq/fire} :l
Nevery = perform charge equilibration every this many steps Nevery = perform charge equilibration every this many steps :l
cutoff = global cutoff for charge-charge interactions (distance unit) cutoff = global cutoff for charge-charge interactions (distance unit) :l
tolerance = precision to which charges will be equilibrated tolerance = precision to which charges will be equilibrated :l
maxiter = maximum iterations to perform charge equilibration maxiter = maximum iterations to perform charge equilibration :l
qfile = a filename with QEq parameters :ul 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:] [Examples:]
fix 1 all qeq/point 1 10 1.0e-6 200 param.qeq1 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 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 :pre 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:] [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 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 use-case is in conjunction with a "pair style"_pair_style.html that
performs charge equilibration periodically (e.g. every timestep), such performs charge equilibration periodically (e.g. every timestep), such
as the ReaxFF or Streitz-Mintmire potential (the latter is not yet as the ReaxFF or Streitz-Mintmire potential.
implemented in LAMMPS). But these fixes can also be used with But these fixes can also be used with
potentials that normally assume per-atom charges are fixed, e.g. a potentials that normally assume per-atom charges are fixed, e.g. a
"Buckingham"_pair_buck.html or "LJ/Coulombic"_pair_lj.html potential. "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 "Streitz-Mintmire"_#Streitz paper. Only the {chi}, {eta}, {zeta}, and
{qcore} parameters from the {qfile} file are used. This style solves {qcore} parameters from the {qfile} file are used. This style solves
partial charges on atoms via the matrix inversion method. A tolerance 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 The {qeq/dynamic} style describes partial charges on atoms as point
charges that interact through 1/r, but the extended Lagrangian method 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 parameters from the {qfile} file are used. Note that Coulomb
catastrophe can occur if repulsion between the pair of charged catastrophe can occur if repulsion between the pair of charged
particles is too weak. A tolerance of 1.0e-3 is usually a good 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 Note that {qeq/point}, {qeq/shielded}, and {qeq/slater} describe
different charge models, whereas the matrix inversion method and the 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 charges as point charges that interact through 1/r relationship, but
solve partial charges on atoms using different solvers. Styles solve partial charges on atoms using different solvers. These three
{qeq/point} and the {qeq/dynamic} should yield comparable results if styles should yield comparable results if
the QEq parameters and {Nevery}, {cutoff}, and {tolerance} are the the QEq parameters and {Nevery}, {cutoff}, and {tolerance} are the
same. Style {qeq/point} is typically faster, but {qeq/dynamic} scales same. Style {qeq/point} is typically faster, {qeq/dynamic} scales
better on larger sizes. better on larger sizes, and {qeq/fire} is faster than {qeq/dynamic}.
NOTE: To avoid the evaluation of the derivative of charge with respect NOTE: To avoid the evaluation of the derivative of charge with respect
to position, which is typically ill-defined, the system should have a to position, which is typically ill-defined, the system should have a
zero net charge. zero net charge.
NOTE: Developing QEq parameters (chi, eta, gamma, zeta, and qcore) is 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 arbitrary choices of these parameters. We do not develop these QEq
paramters. See the examples/qeq directory for some examples. paramters. See the examples/qeq directory for some examples.
@ -193,3 +212,6 @@ Chemistry, 95, 3358-3363 (1991).
:link(vanDuin) :link(vanDuin)
[(ReaxFF)] A. C. T. van Duin, S. Dasgupta, F. Lorant, W. A. Goddard III, J [(ReaxFF)] A. C. T. van Duin, S. Dasgupta, F. Lorant, W. A. Goddard III, J
Physical Chemistry, 105, 9396-9049 (2001) 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