forked from lijiext/lammps
233 lines
11 KiB
HTML
233 lines
11 KiB
HTML
<HTML>
|
|
<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A>
|
|
</CENTER>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<HR>
|
|
|
|
<H3>fix qbmsst command
|
|
</H3>
|
|
<P><B>Syntax:</B>
|
|
</P>
|
|
<PRE>fix ID group-ID qbmsst dir shockvel keyword value ...
|
|
</PRE>
|
|
<UL><LI>ID, group-ID are documented in <A HREF = "fix.html">fix</A> command
|
|
|
|
<LI>qbmsst = style name of this fix
|
|
|
|
<LI>dir = <I>x</I> or <I>y</I> or <I>z</I>
|
|
|
|
<LI>shockvel = shock velocity (strictly positive, velocity units)
|
|
|
|
<LI>zero or more keyword/value pairs may be appended
|
|
|
|
<LI>keyword = <I>q</I> or <I>mu</I> or <I>p0</I> or <I>v0</I> or <I>e0</I> or <I>tscale</I> or <I>damp</I> or <I>seed</I>or <I>f_max</I> or <I>N_f</I> or <I>eta</I> or <I>beta</I> or <I>T_init</I>
|
|
|
|
<PRE> <I>q</I> value = cell mass-like parameter (mass^2/distance^4 units)
|
|
<I>mu</I> value = artificial viscosity (mass/distance/time units)
|
|
<I>p0</I> value = initial pressure in the shock equations (pressure units)
|
|
<I>v0</I> value = initial simulation cell volume in the shock equations (distance^3 units)
|
|
<I>e0</I> value = initial total energy (energy units)
|
|
<I>tscale</I> value = reduction in initial temperature (unitless fraction between 0.0 and 1.0)
|
|
<I>damp</I> value = damping parameter (time units) inverse of friction <i>γ</i>
|
|
<I>seed</I> value = random number seed (positive integer)
|
|
<I>f_max</I> value = upper cutoff frequency of the vibration spectrum (1/time units)
|
|
<I>N_f</I> value = number of frequency bins (positive integer)
|
|
<I>eta</I> value = coupling constant between the shock system and the quantum thermal bath (positive unitless)
|
|
<I>beta</I> value = the quantum temperature is updated every beta time steps (positive integer)
|
|
<I>T_init</I> value = quantum temperature for the initial state (temperature units)
|
|
</PRE>
|
|
|
|
</UL>
|
|
<P><B>Examples:</B>
|
|
</P>
|
|
<PRE>fix 1 all qbmsst z 0.122 q 25 mu 0.9 tscale 0.01 damp 200 seed 35082 f_max 0.3 N_f 100 eta 1 beta 400 T_init 110 (liquid methane modeled with the REAX force field, real units)
|
|
fix 2 all qbmsst z 72 q 40 tscale 0.05 damp 1 seed 47508 f_max 120.0 N_f 100 eta 1.0 beta 500 T_init 300 (quartz modeled with the BKS force field, metal units)
|
|
</PRE>
|
|
<P>Two example input scripts are given, including shocked alpha quartz
|
|
and shocked liquid methane. The input script first equilibrate an
|
|
initial state with the quantum thermal bath at the target temperature
|
|
and then apply the qbmsst to simulate shock compression with quantum
|
|
nuclear correction. The following two figures plot related quantities
|
|
for shocked alpha quartz.
|
|
</P>
|
|
<CENTER><IMG SRC = "JPG/qbmsst_init.jpg">
|
|
</CENTER>
|
|
<P>Figure 1. Classical temperature <i>T</i><sup>cl</sup> = ∑
|
|
<i>m<sub>i</sub>v<sub>i</sub><sup>2</sup>/3Nk</i><sub>B</sub> vs. time
|
|
for coupling the alpha quartz initial state with the quantum thermal
|
|
bath at target quantum temperature <i>T</i><sup>qm</sup> = 300 K. The
|
|
NpH ensemble is used for time integration while QTB provides the
|
|
colored random force. <i>T</i><sup>cl</sup> converges at the timescale
|
|
of <I>damp</I> which is set to be 1 ps.
|
|
</P>
|
|
<CENTER><IMG SRC = "JPG/qbmsst_shock.jpg">
|
|
</CENTER>
|
|
<P>Figure 2. Quantum temperature and pressure vs. time for simulating
|
|
shocked alpha quartz with the QBMSST. The shock propagates along the z
|
|
direction. Restart of the QBMSST command is demonstrated in the
|
|
example input script. Thermodynamic quantities stay continuous before
|
|
and after the restart.
|
|
</P>
|
|
<P><B>Description:</B>
|
|
</P>
|
|
<P>This command performs the Quantum-Bath coupled Multi-Scale Shock
|
|
Technique (QBMSST) integration. See <A HREF = "#Qi">(Qi)</A> for a detailed
|
|
description of this method. The QBMSST provides description of the
|
|
thermodynamics and kinetics of shock processes while incorporating
|
|
quantum nuclear effects. The <I>shockvel</I> setting determines the steady
|
|
shock velocity that will be simulated along direction <I>dir</I>.
|
|
</P>
|
|
<P>Quantum nuclear effects <A HREF = "fix_qtb.html">(fix qtb)</A> can be crucial
|
|
especially when the temperature of the initial state is below the
|
|
classical limit or there is a great change in the zero point energies
|
|
between the initial and final states. Theoretical post processing
|
|
quantum corrections of shock compressed water and methane have been
|
|
reported as much as 30% of the temperatures <A HREF = "#Goldman">(Goldman)</A>. A
|
|
self-consistent method that couples the shock to a quantum thermal
|
|
bath described by a colored noise Langevin thermostat has been
|
|
developed by Qi et al <A HREF = "#Qi">(Qi)</A> and applied to shocked methane. The
|
|
onset of chemistry is reported to be at a pressure on the shock
|
|
Hugoniot that is 40% lower than observed with classical molecular
|
|
dynamics.
|
|
</P>
|
|
<P>It is highly recommended that the system be already in an equilibrium
|
|
state with a quantum thermal bath at temperature of <I>T_init</I>. The fix
|
|
command <A HREF = "fix_qtb.html">fix qtb</A> at constant temperature <I>T_init</I> could
|
|
be used before applying this command to introduce self-consistent
|
|
quantum nuclear effects into the initial state.
|
|
</P>
|
|
<P>The parameters <I>q</I>, <I>mu</I>, <I>e0</I>, <I>p0</I>, <I>v0</I> and <I>tscale</I> are described
|
|
in the command <A HREF = "fix_msst.html">fix msst</A>. The values of <I>e0</I>, <I>p0</I>, or
|
|
<I>v0</I> will be calculated on the first step if not specified. The
|
|
parameter of <I>damp</I>, <I>f_max</I>, and <I>N_f</I> are described in the command
|
|
<A HREF = "fix_qtb.html">fix qtb</A>.
|
|
</P>
|
|
<P>The fix qbmsst command couples the shock system to a quantum thermal
|
|
bath with a rate that is proportional to the change of the total
|
|
energy of the shock system, <i>etot</i> - <i>etot</i><sub>0</sub>.
|
|
Here <i>etot</i> consists of both the system energy and a thermal
|
|
term, see <A HREF = "#Qi">(Qi)</A>, and <i>etot</i><sub>0</sub> = <I>e0</I> is the
|
|
initial total energy.
|
|
</P>
|
|
<P>The <I>eta</I> (<i>η</i>) parameter is a unitless coupling constant
|
|
between the shock system and the quantum thermal bath. A small <I>eta</I>
|
|
value cannot adjust the quantum temperature fast enough during the
|
|
temperature ramping period of shock compression while large <I>eta</I>
|
|
leads to big temperature oscillation. A value of <I>eta</I> between 0.3 and
|
|
1 is usually appropriate for simulating most systems under shock
|
|
compression. We observe that different values of <I>eta</I> lead to almost
|
|
the same final thermodynamic state behind the shock, as expected.
|
|
</P>
|
|
<P>The quantum temperature is updated every <I>beta</I> (<i>β</i>) steps
|
|
with an integration time interval <I>beta</I> times longer than the
|
|
simulation time step. In that case, <i>etot</i> is taken as its
|
|
average over the past <I>beta</I> steps. The temperature of the quantum
|
|
thermal bath <i>T</i><sup>qm</sup> changes dynamically according to
|
|
the following equation where Δ<i>t</i> is the MD time step and
|
|
<i>γ</i> is the friction constant which is equal to the inverse
|
|
of the <I>damp</I> parameter.
|
|
</P>
|
|
<center><font size="4"> <i>dT</i><sup>qm</sup>/<i>dt =
|
|
γη</i>∑<i><sup>β</sup><sub>l =
|
|
1</sub></i>[<i>etot</i>(<i>t-l</i>Δ<i>t</i>)-<i>etot</i><sub>0</sub>]/<i>3βNk</i><sub>B</sub>
|
|
</font></center>
|
|
|
|
<P>The parameter <I>T_init</I> is the initial temperature of the quantum
|
|
thermal bath and the system before shock loading.
|
|
</P>
|
|
<P>For all pressure styles, the simulation box stays orthorhombic in
|
|
shape. Parrinello-Rahman boundary conditions (tilted box) are
|
|
supported by LAMMPS, but are not implemented for QBMSST.
|
|
</P>
|
|
<HR>
|
|
|
|
<P><B>Restart, fix_modify, output, run start/stop, minimize info:</B>
|
|
</P>
|
|
<P>Because the state of the random number generator is not written to
|
|
<A HREF = "restart.html">binary restart files</A>, this fix cannot be restarted
|
|
"exactly" in an uninterrupted fashion. However, in a statistical
|
|
sense, a restarted simulation should produce similar behaviors of the
|
|
system as if it is not interrupted. To achieve such a restart, one
|
|
should write explicitly the same value for <I>q</I>, <I>mu</I>, <I>damp</I>, <I>f_max</I>,
|
|
<I>N_f</I>, <I>eta</I>, and <I>beta</I> and set <I>tscale</I> = 0 if the system is
|
|
compressed during the first run.
|
|
</P>
|
|
<P>The progress of the QBMSST can be monitored by printing the global
|
|
scalar and global vector quantities computed by the fix. The global
|
|
vector contains five values in this order:
|
|
</P>
|
|
<P>[<I>dhugoniot</I>, <I>drayleigh</I>, <I>lagrangian_speed</I>, <I>lagrangian_position</I>,
|
|
<I>quantum_temperature</I>]
|
|
</P>
|
|
<OL><LI><I>dhugoniot</I> is the departure from the Hugoniot (temperature units).
|
|
<LI><I>drayleigh</I> is the departure from the Rayleigh line (pressure units).
|
|
<LI><I>lagrangian_speed</I> is the laboratory-frame Lagrangian speed (particle velocity) of the computational cell (velocity units).
|
|
<LI><I>lagrangian_position</I> is the computational cell position in the reference frame moving at the shock speed. This is the distance of the computational cell behind the shock front.
|
|
<LI><I>quantum_temperature</I> is the temperature of the quantum thermal bath <i>T</i><sup>qm</sup>.
|
|
</OL>
|
|
<P>To print these quantities to the log file with descriptive column
|
|
headers, the following LAMMPS commands are suggested. Here the
|
|
<A HREF = "fix_modify.html">fix_modify</A> energy command is also enabled to allow
|
|
the thermo keyword <I>etotal</I> to print the quantity <i>etot</i>. See
|
|
also the <A HREF = "thermo_style.html">thermo_style</A> command.
|
|
</P>
|
|
<PRE>fix fix_id all msst z
|
|
fix_modify fix_id energy yes
|
|
variable dhug equal f_fix_id[1]
|
|
variable dray equal f_fix_id[2]
|
|
variable lgr_vel equal f_fix_id[3]
|
|
variable lgr_pos equal f_fix_id[4]
|
|
variable T_qm equal f_fix_id[5]
|
|
thermo_style custom step temp ke pe lz pzz etotal v_dhug v_dray v_lgr_vel v_lgr_pos v_T_qm f_fix_id
|
|
</PRE>
|
|
<P>The global scalar under the entry f_fix_id is the quantity of thermo
|
|
energy as an extra part of <i>etot</i>. This global scalar and the
|
|
vector of 5 quantities can be accessed by various <A HREF = "Section_howto.html#howto_15">output
|
|
commands</A>. It is worth noting that the
|
|
temp keyword under the <A HREF = "thermo_style.html">thermo_style</A> command print
|
|
the instantaneous classical temperature <i>T</i><sup>cl</sup> as
|
|
described in the command <A HREF = "fix_qtb.html">fix qtb</A>.
|
|
</P>
|
|
<HR>
|
|
|
|
<P><B>Restrictions:</B>
|
|
</P>
|
|
<P>This fix style is part of the USER-QTB package. It is only enabled if
|
|
LAMMPS was built with that package. See the <A HREF = "Section_start.html#start_3">Making
|
|
LAMMPS</A> section for more info.
|
|
</P>
|
|
<P>All cell dimensions must be periodic. This fix can not be used with a
|
|
triclinic cell. The QBMSST fix has been tested only for the group-ID
|
|
all.
|
|
</P>
|
|
<HR>
|
|
|
|
<P><B>Related commands:</B>
|
|
</P>
|
|
<P><A HREF = "fix_qtb.html">fix qtb</A>, <A HREF = "fix_msst.html">fix msst</A>
|
|
</P>
|
|
<HR>
|
|
|
|
<P><B>Default:</B>
|
|
</P>
|
|
<P>The keyword defaults are q = 10, mu = 0, tscale = 0.01, damp = 1, seed
|
|
= 880302, f_max = 200.0, N_f = 100, eta = 1.0, beta = 100, and
|
|
T_init=300.0. e0, p0, and v0 are calculated on the first step.
|
|
</P>
|
|
<HR>
|
|
|
|
<A NAME = "Goldman"></A>
|
|
|
|
<P><B>(Goldman)</B> Goldman, Reed and Fried, J. Chem. Phys. 131, 204103 (2009)
|
|
</P>
|
|
<A NAME = "Qi"></A>
|
|
|
|
<P><B>(Qi)</B> Qi and Reed, J. Phys. Chem. A 116, 10451 (2012).
|
|
</P>
|
|
</HTML>
|