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

This commit is contained in:
sjplimp 2015-07-27 18:05:31 +00:00
parent 218bd7cec7
commit 059f719d62
10 changed files with 184 additions and 157 deletions

View File

@ -145,10 +145,12 @@ commands)
<UL><LI> pairwise potentials: Lennard-Jones, Buckingham, Morse, Born-Mayer-Huggins, Yukawa, soft, class 2 (COMPASS), hydrogen bond, tabulated
<LI> charged pairwise potentials: Coulombic, point-dipole
<LI> manybody potentials: EAM, Finnis/Sinclair EAM, modified EAM (MEAM), embedded ion method (EIM), EDIP, ADP, Stillinger-Weber, Tersoff, REBO, AIREBO, ReaxFF, COMB, SNAP, Streitz-Mintmire
<LI> long-range interactions for charge, point-dipoles, and LJ dispersion: Ewald, Wolf, PPPM (similar to particle-mesh Ewald)
<LI> polarization models: <A HREF = "fix_qeq.html">QEq</A>, <A HREF = "Section_howto.html#howto_26">core/shell model</A>, <A HREF = "Section_howto.html#howto_27">Drude dipole model</A>
<LI> charge equilibration (QEq via dynamic, point, shielded, Slater methods)
<LI> electron force field (eFF, AWPMD)
<LI> coarse-grained potentials: DPD, GayBerne, REsquared, colloidal, DLVO
<LI> mesoscopic potentials: granular, Peridynamics, SPH
<LI> electron force field (eFF, AWPMD)
<LI> bond potentials: harmonic, FENE, Morse, nonlinear, class 2, quartic (breakable)
<LI> angle potentials: harmonic, CHARMM, cosine, cosine/squared, cosine/periodic, class 2 (COMPASS)
<LI> dihedral potentials: harmonic, CHARMM, multi-harmonic, helix, class 2 (COMPASS), OPLS
@ -156,10 +158,8 @@ commands)
<LI> polymer potentials: all-atom, united-atom, bead-spring, breakable
<LI> water potentials: TIP3P, TIP4P, SPC
<LI> implicit solvent potentials: hydrodynamic lubrication, Debye
<LI> <A HREF = "http://openkim.org">KIM archive</A> of potentials
<LI> long-range interactions for charge, point-dipoles, and LJ dispersion: Ewald, Wolf, PPPM (similar to particle-mesh Ewald)
<LI> force-field compatibility with common CHARMM, AMBER, DREIDING, OPLS, GROMACS, COMPASS options
<LI> handful of GPU-enabled pair styles
<LI> access to <A HREF = "http://openkim.org">KIM archive</A> of potentials via <A HREF = "pair_kim.html">pair kim</A>
<LI> hybrid potentials: multiple pair, bond, angle, dihedral, improper potentials can be used in one simulation
<LI> overlaid potentials: superposition of multiple pair potentials
</UL>

View File

@ -142,10 +142,15 @@ commands)
manybody potentials: EAM, Finnis/Sinclair EAM, modified EAM (MEAM), \
embedded ion method (EIM), EDIP, ADP, Stillinger-Weber, Tersoff, \
REBO, AIREBO, ReaxFF, COMB, SNAP, Streitz-Mintmire
long-range interactions for charge, point-dipoles, and LJ dispersion: \
Ewald, Wolf, PPPM (similar to particle-mesh Ewald)
polarization models: "QEq"_fix_qeq.html, \
"core/shell model"_Section_howto.html#howto_26, \
"Drude dipole model"_Section_howto.html#howto_27
charge equilibration (QEq via dynamic, point, shielded, Slater methods)
electron force field (eFF, AWPMD)
coarse-grained potentials: DPD, GayBerne, REsquared, colloidal, DLVO
mesoscopic potentials: granular, Peridynamics, SPH
electron force field (eFF, AWPMD)
bond potentials: harmonic, FENE, Morse, nonlinear, class 2, \
quartic (breakable)
angle potentials: harmonic, CHARMM, cosine, cosine/squared, cosine/periodic, \
@ -156,12 +161,10 @@ commands)
polymer potentials: all-atom, united-atom, bead-spring, breakable
water potentials: TIP3P, TIP4P, SPC
implicit solvent potentials: hydrodynamic lubrication, Debye
"KIM archive"_http://openkim.org of potentials
long-range interactions for charge, point-dipoles, and LJ dispersion: \
Ewald, Wolf, PPPM (similar to particle-mesh Ewald)
force-field compatibility with common CHARMM, AMBER, DREIDING, \
OPLS, GROMACS, COMPASS options
handful of GPU-enabled pair styles
access to "KIM archive"_http://openkim.org of potentials via \
"pair kim"_pair_kim.html
hybrid potentials: multiple pair, bond, angle, dihedral, improper \
potentials can be used in one simulation
overlaid potentials: superposition of multiple pair potentials :ul

View File

@ -368,13 +368,13 @@ in LAMMPS using thermalized Drude oscillators.
</P>
<P>See these doc pages and their related commands to get started:
</P>
<P><A HREF = "tutorial_drude.html">Drude tutorial</A>
<A HREF = "fix_drude.html">fix drude</A>
<A HREF = "compute_temp_drude.html">compute temp/drude</A>
<A HREF = "fix_langevin_drude.html">fix langevin/drude</A>
<A HREF = "fix_drude_transform.html">fix drude/transform/...</A>
<A HREF = "pair_thole.html">pair thole</A>
</P>
<UL><LI><A HREF = "tutorial_drude.html">Drude tutorial</A>
<LI><A HREF = "fix_drude.html">fix drude</A>
<LI><A HREF = "compute_temp_drude.html">compute temp/drude</A>
<LI><A HREF = "fix_langevin_drude.html">fix langevin/drude</A>
<LI><A HREF = "fix_drude_transform.html">fix drude/transform/...</A>
<LI><A HREF = "pair_thole.html">pair thole</A>
</UL>
<P>There are auxiliary tools for using this package in tools/drude.
</P>
<P>The person who created this package is Alain Dequidt at Universite

View File

@ -360,7 +360,7 @@ See these doc pages and their related commands to get started:
"compute temp/drude"_compute_temp_drude.html
"fix langevin/drude"_fix_langevin_drude.html
"fix drude/transform/..."_fix_drude_transform.html
"pair thole"_pair_thole.html
"pair thole"_pair_thole.html :ul
There are auxiliary tools for using this package in tools/drude.

View File

@ -24,38 +24,63 @@
</PRE>
<P><B>Description:</B>
</P>
<P>Define a computation that calculates the temperature based on the
center-of-mass velocities of pairs of Drude cores and Drude particles,
bonded by springs. This compute is designed to be used with the
<P>Define a computation that calculates the temperatures of core-Drude
pairs. This compute is designed to be used with the thermalized Drude
oscillator model. This compute is designed to be used with the
<A HREF = "tutorial_drude.html">thermalized Drude oscillator model</A>. Polarizable
models in LAMMPS are described in <A HREF = "Section_howto.html#howto_25">this
Section</A>.
</P>
<P>Specifically, this compute enables calculation of the temperature of
the Drude particles in relative coordinates with respect to their
cores.
<P>Drude oscillators consist of a core particle and a Drude particle
connected by a harmonic bond, and the relative motion of these Drude
oscillators is usually maintained cold by a specific thermostat that
acts on the relative motion of the core-Drude particle
pairs. Therefore, because LAMMPS considers Drude particles as normal
atoms in its default temperature compute (<A HREF = "compute_temp.html">compute
temp</A> command), the reduced temperature of the
core-Drude particle pairs is not calculated correctly.
</P>
<P>By contrast, this compute calculates the temperature of the cores
using center-of-mass velocities of the core-Drude pairs, and the
reduced temperature of the Drude particles using the relative
velocities of the Drude particles with respect to their cores.
Non-polarizable atoms are considered as cores. Their velocities
contribute to the temperature of the cores.
</P>
<P><B>Output info:</B>
</P>
<P>This compute calculates a global scalar (the temperature) and a global
vector of length 6 (KE tensor), which can be accessed by indices 1-6.
These values can be used by any command that uses global scalar or
vector of length 6, which can be accessed by indices 1-6, whose components
are
</P>
<OL><LI>temperature of the centers of mass (temperature units)
<LI>temperature of the dipoles (temperature units)
<LI>number of degrees of freedom of the centers of mass
<LI>number of degrees of freedom of the dipoles
<LI>kinetic energy of the centers of mass (energy units)
<LI>kinetic energy of the dipoles (energy units)
</OL>
<P>These values can be used by any command that uses global scalar or
vector values from a compute as input. See <A HREF = "Section_howto.html#howto_15">this
section</A> for an overview of LAMMPS output
options.
</P>
<P>The scalar value calculated by this compute is "intensive". The
vector are "extensive".
</P>
<P>The scalar value will be in temperature <A HREF = "units.html">units</A>. The
vector values will be in energy <A HREF = "units.html">units</A>.
<P>Both the scalar value and the first two values of the vector
calculated by this compute are "intensive". The other 4 vector values
are "extensive".
</P>
<P><B>Restrictions:</B>
</P>
<P>The number of core-Drude pairs contributing to the temperature is
assumed to be constant for the duration of the run.
<P>The number of degrees of freedom contributing to the temperature is
assumed to be constant for the duration of the run unless the
<I>fix_modify</I> command sets the option <I>dynamic yes</I>.
</P>
<P><B>Related commands:</B> none
<P><B>Related commands:</B>
</P>
<P><A HREF = "fix_drude.html">fix drude</A>, <A HREF = "fix_langevin_drude.html">fix
langevin_drude</A>, <A HREF = "fix_drude_transform.html">fix
drude/transform</A>, <A HREF = "pair_thole.html">pair_style
thole</A>, <A HREF = "compute_temp.html">compute temp</A>
</P>
<P><B>Default:</B> none
</P>

View File

@ -21,37 +21,62 @@ compute TDRUDE all temp/drude :pre
[Description:]
Define a computation that calculates the temperature based on the
center-of-mass velocities of pairs of Drude cores and Drude particles,
bonded by springs. This compute is designed to be used with the
Define a computation that calculates the temperatures of core-Drude
pairs. This compute is designed to be used with the thermalized Drude
oscillator model. This compute is designed to be used with the
"thermalized Drude oscillator model"_tutorial_drude.html. Polarizable
models in LAMMPS are described in "this
Section"_Section_howto.html#howto_25.
Specifically, this compute enables calculation of the temperature of
the Drude particles in relative coordinates with respect to their
cores.
Drude oscillators consist of a core particle and a Drude particle
connected by a harmonic bond, and the relative motion of these Drude
oscillators is usually maintained cold by a specific thermostat that
acts on the relative motion of the core-Drude particle
pairs. Therefore, because LAMMPS considers Drude particles as normal
atoms in its default temperature compute ("compute
temp"_compute_temp.html command), the reduced temperature of the
core-Drude particle pairs is not calculated correctly.
By contrast, this compute calculates the temperature of the cores
using center-of-mass velocities of the core-Drude pairs, and the
reduced temperature of the Drude particles using the relative
velocities of the Drude particles with respect to their cores.
Non-polarizable atoms are considered as cores. Their velocities
contribute to the temperature of the cores.
[Output info:]
This compute calculates a global scalar (the temperature) and a global
vector of length 6 (KE tensor), which can be accessed by indices 1-6.
vector of length 6, which can be accessed by indices 1-6, whose components
are
temperature of the centers of mass (temperature units)
temperature of the dipoles (temperature units)
number of degrees of freedom of the centers of mass
number of degrees of freedom of the dipoles
kinetic energy of the centers of mass (energy units)
kinetic energy of the dipoles (energy units) :ol
These values can be used by any command that uses global scalar or
vector values from a compute as input. See "this
section"_Section_howto.html#howto_15 for an overview of LAMMPS output
options.
The scalar value calculated by this compute is "intensive". The
vector are "extensive".
The scalar value will be in temperature "units"_units.html. The
vector values will be in energy "units"_units.html.
Both the scalar value and the first two values of the vector
calculated by this compute are "intensive". The other 4 vector values
are "extensive".
[Restrictions:]
The number of core-Drude pairs contributing to the temperature is
assumed to be constant for the duration of the run.
The number of degrees of freedom contributing to the temperature is
assumed to be constant for the duration of the run unless the
{fix_modify} command sets the option {dynamic yes}.
[Related commands:] none
[Related commands:]
"fix drude"_fix_drude.html, "fix
langevin_drude"_fix_langevin_drude.html, "fix
drude/transform"_fix_drude_transform.html, "pair_style
thole"_pair_thole.html, "compute temp"_compute_temp.html
[Default:] none

View File

@ -24,22 +24,13 @@
</P>
<PRE>fix ID group-ID style keyword value ...
</PRE>
<UL><LI>ID, group-ID are documented in <A HREF = "fix.html">fix</A> command
<UL><LI>ID, group-ID are documented in <A HREF = "fix.html">fix</A> command
<LI>style = <I>drude/transform/direct</I> or <I>drude/transform/inverse</I>
<LI>zero or more keywords may be appended to drude/transform/inverse
<LI>keyword = <I>temp</I>
<PRE> <I>temp</I> value = <I>yes</I> or <I>no</I> = do or do not calculate reduced temperatures of core and Drude particles
</PRE>
</UL>
<P><B>Examples:</B>
</P>
<PRE>fix 3 all drude/transform/direct
fix 1 all drude/transform/inverse temp yes
fix 1 all drude/transform/inverse
</PRE>
<P><B>Description:</B>
</P>
@ -81,12 +72,6 @@ Forces: \begin{equation} F' = F + f \end{equation}
and the virial defined with absolute positions
\begin{equation} X\, F + x\, f = X'\, F' + x'\, f' \end{equation}
</P>
<P>The <I>temp</I> keyword specifies wheterh temperatures in reduced units for
cores and Drude particles are calculated. If the <I>temp</I> option is set
to <I>yes</I> the reduced temperatures, degrees of freedom, and kinetic
energies are calculated and can be accessed as explained below;
otherwise the reduced values are not calculated.
</P>
<HR>
<P>This fix requires each atom know whether it is a Drude particle or
@ -119,12 +104,17 @@ thermostating fixes.
<PRE>fix fDIRECT all drude/transform/direct
fix fNVT gCORES nvt temp 300.0 300.0 100.0
fix fNVT gDRUDES nvt temp 1.0 1.0 100.0
fix fINVERSE all drude/transform/inverse
fix fINVERSE all drude/transform/inverse
compute TDRUDE all temp/drude
thermo_style custom step cpu etotal ke pe ebond ecoul elong press vol temp c_TDRUDE[1] c_TDRUDE[2]
</PRE>
<P>In this example, <I>gCORES</I> is the group of the atom cores and <I>gDRUDES</I>
is the group of the Drude particles (electrons). The centers of mass
of the Drude oscillators will be thermostated at 300.0 and the
internal degrees of freedom will be thermostated at 1.0.
internal degrees of freedom will be thermostated at 1.0. The
temperatures of cores and Drude particles, in center-of-mass and
relatice coordinates, are calculated using <A HREF = "compute_temp_drude.html">compute
temp/drude</A>
</P>
<P>In addition, if you want to use a barostat to simulate a system at
constant pressure, only one of the Nose-Hoover fixes must be <I>npt</I>,
@ -133,8 +123,8 @@ the other one should be <I>nvt</I>. You must add a <I>compute temp/com</I> and a
that of its group but the pressure be the overall pressure
<I>thermo_press</I>.
</P>
Example:
<BR>
<P>Example:
</P>
<PRE>compute cTEMP_CORE gCORES temp/com
fix fDIRECT all drude/transform/direct
fix fNPT gCORES npt temp 298.0 298.0 100.0 iso 1.0 1.0 500.0
@ -158,18 +148,6 @@ to add a <I>fix momentum</I> command like such as
<P><B>Restart, fix_modify, output, run start/stop, minimize info:</B>
</P>
<P>If the <I>temp yes</I> keyword is used in <I>fix drude/transform/inverse</I>
this fix computes a global vector with 6 components which can be
accessed by various <A HREF = "Section_howto.html#howto_15">output commands</A>. The
meaning of the components are
</P>
<OL><LI>temperature of the centers of mass (temperature units)
<LI>temperature of the dipoles (temperature units)
<LI>number of degrees of freedom of the centers of mass
<LI>number of degrees of freedom of the dipoles
<LI>kinetic energy of the centers of mass (energy units)
<LI>kinetic energy of the dipoles (energy units)
</OL>
<P>No information about this fix is written to <A HREF = "restart.html">binary restart
files</A>.
</P>
@ -182,9 +160,7 @@ files</A>.
<A HREF = "compute_temp_drude.html">compute temp/drude</A>,
<A HREF = "pair_thole.html">pair_style thole</A>
</P>
<P><B>Default:</B>
</P>
<P>The option defaults are temp = no.
<P><B>Default:</B> none
</P>
<HR>

View File

@ -20,17 +20,13 @@ fix drude/transform/inverse command :h3
fix ID group-ID style keyword value ... :pre
ID, group-ID are documented in "fix"_fix.html command :ulb,l
style = {drude/transform/direct} or {drude/transform/inverse} :l
zero or more keywords may be appended to drude/transform/inverse :l
keyword = {temp} :l
{temp} value = {yes} or {no} = do or do not calculate reduced temperatures of core and Drude particles :pre
:ule
ID, group-ID are documented in "fix"_fix.html command
style = {drude/transform/direct} or {drude/transform/inverse} :ul
[Examples:]
fix 3 all drude/transform/direct
fix 1 all drude/transform/inverse temp yes :pre
fix 1 all drude/transform/inverse :pre
[Description:]
@ -72,12 +68,6 @@ This transform conserves the total kinetic energy
and the virial defined with absolute positions
\begin\{equation\} X\, F + x\, f = X'\, F' + x'\, f' \end\{equation\}
The {temp} keyword specifies wheterh temperatures in reduced units for
cores and Drude particles are calculated. If the {temp} option is set
to {yes} the reduced temperatures, degrees of freedom, and kinetic
energies are calculated and can be accessed as explained below;
otherwise the reduced values are not calculated.
:line
This fix requires each atom know whether it is a Drude particle or
@ -110,12 +100,18 @@ Example:
fix fDIRECT all drude/transform/direct
fix fNVT gCORES nvt temp 300.0 300.0 100.0
fix fNVT gDRUDES nvt temp 1.0 1.0 100.0
fix fINVERSE all drude/transform/inverse :pre
fix fINVERSE all drude/transform/inverse
compute TDRUDE all temp/drude
thermo_style custom step cpu etotal ke pe ebond ecoul elong press vol temp c_TDRUDE\[1\] c_TDRUDE\[2\] :pre
In this example, {gCORES} is the group of the atom cores and {gDRUDES}
is the group of the Drude particles (electrons). The centers of mass
of the Drude oscillators will be thermostated at 300.0 and the
internal degrees of freedom will be thermostated at 1.0.
internal degrees of freedom will be thermostated at 1.0. The
temperatures of cores and Drude particles, in center-of-mass and
relatice coordinates, are calculated using "compute
temp/drude"_compute_temp_drude.html
In addition, if you want to use a barostat to simulate a system at
constant pressure, only one of the Nose-Hoover fixes must be {npt},
@ -124,7 +120,7 @@ the other one should be {nvt}. You must add a {compute temp/com} and a
that of its group but the pressure be the overall pressure
{thermo_press}.
Example: :b
Example:
compute cTEMP_CORE gCORES temp/com
fix fDIRECT all drude/transform/direct
@ -149,18 +145,6 @@ fix fMOMENTUM all momentum 100 linear 1 1 1 :pre
[Restart, fix_modify, output, run start/stop, minimize info:]
If the {temp yes} keyword is used in {fix drude/transform/inverse}
this fix computes a global vector with 6 components which can be
accessed by various "output commands"_Section_howto.html#howto_15. The
meaning of the components are
temperature of the centers of mass (temperature units)
temperature of the dipoles (temperature units)
number of degrees of freedom of the centers of mass
number of degrees of freedom of the dipoles
kinetic energy of the centers of mass (energy units)
kinetic energy of the dipoles (energy units) :ol
No information about this fix is written to "binary restart
files"_restart.html.
@ -173,9 +157,7 @@ files"_restart.html.
"compute temp/drude"_compute_temp_drude.html,
"pair_style thole"_pair_thole.html
[Default:]
The option defaults are temp = no.
[Default:] none
:line

View File

@ -93,8 +93,10 @@ transform:
\begin{equation} F = \frac M {M'}\, F' - f' \end{equation}
\begin{equation} f = \frac m {M'}\, F' + f' \end{equation}
</P>
<P>For Drude pairs (core + electron), the center of mass and the dipole
are thermostated if (and only if) the core atom is in the specified
<P>This fix also thermostates non-polarizable atoms in the group at
temperature <I>Tcom</I>, as if they had a massless Drude partner. The
Drude particles themselves need not be in the group. The center of
mass and the dipole are thermostated iff the core atom is in the
group.
</P>
<P>Note that the thermostat effect of this fix is applied to only the
@ -198,9 +200,14 @@ subtracting off an equal part of it from each center of mass in the
group. As a result, the total center of mass of a system with zero
initial momentum will not drift over time.
</P>
<P>The actual temperatures of cores and Drude particles, in
center-of-mass and relatice coordinates, respectively, can be
calculated using the <A HREF = "compute_temp_drude.html">compute temp/drude</A>
command.
</P>
<HR>
<P>Example for rigid bodies in the NPT ensemble:
<P>Usage example for rigid bodies in the NPT ensemble:
</P>
<PRE>comm_modify vel yes
fix TEMP all langevin/drude 300. 100. 1256 1. 20. 13977 zero yes
@ -210,14 +217,25 @@ thermo_style custom step cpu etotal ke pe ebond ecoul elong press vol temp c_TAT
</PRE>
<P>Comments:
</P>
<UL><LI>Drude particles should not be in the rigid group, otherwise the Drude oscillators will be frozen and the system will lose its polarizability.
<LI><I>zero yes</I> avoids a drift of the center of mass of the system, but is a bit slower.
<LI>use two different random seeds to avoid unphysical correlations.
<LI>temperature is controlled by the fix <I>langevin/drude</I>, so the time-integration fixes do not thermostate.
<UL><LI>Drude particles should not be in the rigid group, otherwise the Drude
<LI>oscillators will be frozen and the system will lose its
<LI>polarizability. <I>zero yes</I> avoids a drift of the center of mass of
<LI>the system, but is a bit slower. use two different random seeds to
<LI>avoid unphysical correlations. temperature is controlled by the fix
<LI><I>langevin/drude</I>, so the time-integration fixes do not thermostate.
<LI>don't forget to time-integrate both cores and Drude particles.
<LI>pressure is time-integrated only once by using <I>nve</I> for Drude particles and <I>nph</I> for atoms/cores (or vice versa). Do not use <I>nph</I> for both.
<LI>contrary to the alternative thermostating using Nose-Hoover thermostat fix <I>npt</I> and fix <I>drude/transform</I>, the <I>fix_modify</I> command is not required here, because the fix <I>nph</I> computes the global pressure even if its group is <I>ATOMS</I>. This is what we want. If we thermostated <I>ATOMS</I> using <I>npt</I>, the pressure should be the global one, but the temperature should be only that of the cores. That's why the command <I>fix_modify</I> should be called in that case.
<LI>f_TEMP[1] and f_TEMP[2] contain the reduced temperatures of the cores/atoms and of the Drude particles (see below). They should be 300. and 1. on average here.
<LI>pressure is time-integrated only once by using <I>nve</I> for Drude
<LI>particles and <I>nph</I> for atoms/cores (or vice versa). Do not use <I>nph</I>
<LI>for both. contrary to the alternative thermostating using Nose-Hoover
<LI>thermostat fix <I>npt</I> and fix <I>drude/transform</I>, the <I>fix_modify</I>
<LI>command is not required here, because the fix <I>nph</I> computes the
<LI>global pressure even if its group is <I>ATOMS</I>. This is what we want. If
<LI>we thermostated <I>ATOMS</I> using <I>npt</I>, the pressure should be the global
<LI>one, but the temperature should be only that of the cores. That's why
<LI>the command <I>fix_modify</I> should be called in that case. f_TEMP[1]
<LI>and f_TEMP[2] contain the reduced temperatures of the cores/atoms
<LI>and of the Drude particles (see below). They should be 300. and 1. on
<LI>average here.
</UL>
<HR>
@ -236,17 +254,6 @@ you have defined to this fix which will be used in its thermostating
procedure, as described above. For consistency, the group used by the
compute should include the group of this fix and the Drude particles.
</P>
<P>This fix computes a global vector with 6 components which can be
accessed by various <A HREF = "Section_howto.html#howto_15">output commands</A>. The
meaning of the components are as follows:
</P>
<OL><LI>temperature of the centers of mass (temperature units)
<LI>temperature of the dipoles (temperature units)
<LI>number of degrees of freedom of the centers of mass
<LI>number of degrees of freedom of the dipoles
<LI>kinetic energy of the centers of mass (energy units)
<LI>kinetic energy of the dipoles (energy units)
</OL>
<P>This fix is not invoked during <A HREF = "minimize.html">energy minimization</A>.
</P>
<P><B>Restrictions:</B> none
@ -254,6 +261,7 @@ meaning of the components are as follows:
<P><B>Related commands:</B>
</P>
<P><A HREF = "fix_langevin.html">fix langevin</A>,
<A HREF = "fix_drude.html">fix drude</A>,
<A HREF = "fix_drude_transform.html">fix drude/transform</A>,
<A HREF = "compute_temp_drude.html">compute temp/drude</A>,
<A HREF = "pair_thole.html">pair_style thole</A>

View File

@ -77,8 +77,10 @@ transform:
\begin\{equation\} F = \frac M \{M'\}\, F' - f' \end\{equation\}
\begin\{equation\} f = \frac m \{M'\}\, F' + f' \end\{equation\}
For Drude pairs (core + electron), the center of mass and the dipole
are thermostated if (and only if) the core atom is in the specified
This fix also thermostates non-polarizable atoms in the group at
temperature {Tcom}, as if they had a massless Drude partner. The
Drude particles themselves need not be in the group. The center of
mass and the dipole are thermostated iff the core atom is in the
group.
Note that the thermostat effect of this fix is applied to only the
@ -182,9 +184,14 @@ subtracting off an equal part of it from each center of mass in the
group. As a result, the total center of mass of a system with zero
initial momentum will not drift over time.
The actual temperatures of cores and Drude particles, in
center-of-mass and relatice coordinates, respectively, can be
calculated using the "compute temp/drude"_compute_temp_drude.html
command.
:line
Example for rigid bodies in the NPT ensemble:
Usage example for rigid bodies in the NPT ensemble:
comm_modify vel yes
fix TEMP all langevin/drude 300. 100. 1256 1. 20. 13977 zero yes
@ -194,14 +201,25 @@ thermo_style custom step cpu etotal ke pe ebond ecoul elong press vol temp c_TAT
Comments:
Drude particles should not be in the rigid group, otherwise the Drude oscillators will be frozen and the system will lose its polarizability.
{zero yes} avoids a drift of the center of mass of the system, but is a bit slower.
use two different random seeds to avoid unphysical correlations.
temperature is controlled by the fix {langevin/drude}, so the time-integration fixes do not thermostate.
Drude particles should not be in the rigid group, otherwise the Drude
oscillators will be frozen and the system will lose its
polarizability. {zero yes} avoids a drift of the center of mass of
the system, but is a bit slower. use two different random seeds to
avoid unphysical correlations. temperature is controlled by the fix
{langevin/drude}, so the time-integration fixes do not thermostate.
don't forget to time-integrate both cores and Drude particles.
pressure is time-integrated only once by using {nve} for Drude particles and {nph} for atoms/cores (or vice versa). Do not use {nph} for both.
contrary to the alternative thermostating using Nose-Hoover thermostat fix {npt} and fix {drude/transform}, the {fix_modify} command is not required here, because the fix {nph} computes the global pressure even if its group is {ATOMS}. This is what we want. If we thermostated {ATOMS} using {npt}, the pressure should be the global one, but the temperature should be only that of the cores. That's why the command {fix_modify} should be called in that case.
f_TEMP\[1\] and f_TEMP\[2\] contain the reduced temperatures of the cores/atoms and of the Drude particles (see below). They should be 300. and 1. on average here. :ul
pressure is time-integrated only once by using {nve} for Drude
particles and {nph} for atoms/cores (or vice versa). Do not use {nph}
for both. contrary to the alternative thermostating using Nose-Hoover
thermostat fix {npt} and fix {drude/transform}, the {fix_modify}
command is not required here, because the fix {nph} computes the
global pressure even if its group is {ATOMS}. This is what we want. If
we thermostated {ATOMS} using {npt}, the pressure should be the global
one, but the temperature should be only that of the cores. That's why
the command {fix_modify} should be called in that case. f_TEMP\[1\]
and f_TEMP\[2\] contain the reduced temperatures of the cores/atoms
and of the Drude particles (see below). They should be 300. and 1. on
average here. :ul
:line
@ -220,17 +238,6 @@ you have defined to this fix which will be used in its thermostating
procedure, as described above. For consistency, the group used by the
compute should include the group of this fix and the Drude particles.
This fix computes a global vector with 6 components which can be
accessed by various "output commands"_Section_howto.html#howto_15. The
meaning of the components are as follows:
temperature of the centers of mass (temperature units)
temperature of the dipoles (temperature units)
number of degrees of freedom of the centers of mass
number of degrees of freedom of the dipoles
kinetic energy of the centers of mass (energy units)
kinetic energy of the dipoles (energy units) :ol
This fix is not invoked during "energy minimization"_minimize.html.
[Restrictions:] none
@ -238,6 +245,7 @@ This fix is not invoked during "energy minimization"_minimize.html.
[Related commands:]
"fix langevin"_fix_langevin.html,
"fix drude"_fix_drude.html,
"fix drude/transform"_fix_drude_transform.html,
"compute temp/drude"_compute_temp_drude.html,
"pair_style thole"_pair_thole.html