mirror of https://github.com/lammps/lammps.git
git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@4649 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
parent
6ce7d46695
commit
73573bf237
|
@ -339,7 +339,8 @@ of each style or click on the style itself for a full description:
|
|||
<A HREF = "Section_start.html#2_3">LAMMPS is built with the appropriate package</A>.
|
||||
</P>
|
||||
<DIV ALIGN=center><TABLE BORDER=1 >
|
||||
<TR ALIGN="center"><TD ><A HREF = "fix_atc.html">atc</A></TD><TD ><A HREF = "fix_imd.html">imd</A></TD><TD ><A HREF = "fix_smd.html">smd</A>
|
||||
<TR ALIGN="center"><TD ><A HREF = "fix_atc.html">atc</A></TD><TD ><A HREF = "fix_imd.html">imd</A></TD><TD ><A HREF = "fix_langevin_eff.html">langevin/eff</A></TD><TD ><A HREF = "fix_nh_eff.html">nph/eff</A></TD><TD ><A HREF = "fix_nh_eff.html">npt/eff</A></TD><TD ><A HREF = "fix_nve_eff.html">nve/eff</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "fix_nh_eff.html">nvt/eff</A></TD><TD ><A HREF = "fix_nvt_sllod_eff.html">nvt/sllod/eff</A></TD><TD ><A HREF = "fix_smd.html">smd</A></TD><TD ><A HREF = "fix_temp_rescale_eff.html">temp/rescale</A>
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
<HR>
|
||||
|
@ -363,7 +364,7 @@ each style or click on the style itself for a full description:
|
|||
<A HREF = "Section_start.html#2_3">LAMMPS is built with the appropriate package</A>.
|
||||
</P>
|
||||
<DIV ALIGN=center><TABLE BORDER=1 >
|
||||
<TR ALIGN="center"><TD ><A HREF = "compute_ackland_atom.html">ackland/atom</A>
|
||||
<TR ALIGN="center"><TD ><A HREF = "compute_ackland_atom.html">ackland/atom</A></TD><TD ><A HREF = "compute_ke_eff.html">ke/eff</A></TD><TD ><A HREF = "compute_ke_atom_eff.html">ke/atom/eff</A></TD><TD ><A HREF = "compute_temp_eff.html">temp/eff</A></TD><TD ><A HREF = "compute_temp_deform_eff.html">temp/deform/eff</A></TD><TD ><A HREF = "compute_temp_region_eff.html">temp/region/eff</A>
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
<HR>
|
||||
|
@ -397,7 +398,7 @@ potentials. Click on the style itself for a full description:
|
|||
</P>
|
||||
<DIV ALIGN=center><TABLE BORDER=1 >
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_buck_coul.html">buck/coul</A></TD><TD ><A HREF = "pair_cmm.html">cg/cmm</A></TD><TD ><A HREF = "pair_cmm.html">cg/cmm/coul/cut</A></TD><TD ><A HREF = "pair_cmm.html">cg/cmm/coul/long</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_eam.html">eam/cd</A></TD><TD ><A HREF = "pair_lj_coul.html">lj/coul</A>
|
||||
<TR ALIGN="center"><TD ><A HREF = "pair_eam.html">eam/cd</A></TD><TD ><A HREF = "pair_eff.html">eff/cut</A></TD><TD ><A HREF = "pair_lj_coul.html">lj/coul</A>
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
<HR>
|
||||
|
|
|
@ -464,7 +464,14 @@ These are fix styles contributed by users, which can be used if
|
|||
|
||||
"atc"_fix_atc.html,
|
||||
"imd"_fix_imd.html,
|
||||
"smd"_fix_smd.html :tb(c=4,ea=c)
|
||||
"langevin/eff"_fix_langevin_eff.html,
|
||||
"nph/eff"_fix_nh_eff.html,
|
||||
"npt/eff"_fix_nh_eff.html,
|
||||
"nve/eff"_fix_nve_eff.html,
|
||||
"nvt/eff"_fix_nh_eff.html,
|
||||
"nvt/sllod/eff"_fix_nvt_sllod_eff.html,
|
||||
"smd"_fix_smd.html,
|
||||
"temp/rescale"_fix_temp_rescale_eff.html :tb(c=6,ea=c)
|
||||
|
||||
:line
|
||||
|
||||
|
@ -519,7 +526,12 @@ each style or click on the style itself for a full description:
|
|||
These are compute styles contributed by users, which can be used if
|
||||
"LAMMPS is built with the appropriate package"_Section_start.html#2_3.
|
||||
|
||||
"ackland/atom"_compute_ackland_atom.html :tb(c=6,ea=c)
|
||||
"ackland/atom"_compute_ackland_atom.html,
|
||||
"ke/eff"_compute_ke_eff.html,
|
||||
"ke/atom/eff"_compute_ke_atom_eff.html,
|
||||
"temp/eff"_compute_temp_eff.html,
|
||||
"temp/deform/eff"_compute_temp_deform_eff.html,
|
||||
"temp/region/eff"_compute_temp_region_eff.html :tb(c=6,ea=c)
|
||||
|
||||
:line
|
||||
|
||||
|
@ -600,6 +612,7 @@ These are pair styles contributed by users, which can be used if
|
|||
"cg/cmm/coul/cut"_pair_cmm.html,
|
||||
"cg/cmm/coul/long"_pair_cmm.html,
|
||||
"eam/cd"_pair_eam.html,
|
||||
"eff/cut"_pair_eff.html,
|
||||
"lj/coul"_pair_lj_coul.html :tb(c=4,ea=c)
|
||||
|
||||
:line
|
||||
|
|
|
@ -45,8 +45,8 @@ above.
|
|||
</P>
|
||||
<P><B>Restrictions:</B>
|
||||
</P>
|
||||
<P>The <I>damage/atom</I> style is part of the "peri" package. It is only
|
||||
enabled if LAMMPS was built with that package. See the <A HREF = "Section_start.html#2_3">Making
|
||||
<P>This compute is part of the "peri" package. It is only enabled if
|
||||
LAMMPS was built with that package. See the <A HREF = "Section_start.html#2_3">Making
|
||||
LAMMPS</A> section for more info.
|
||||
</P>
|
||||
<P><B>Related commands:</B>
|
||||
|
|
|
@ -42,8 +42,8 @@ above.
|
|||
|
||||
[Restrictions:]
|
||||
|
||||
The {damage/atom} style is part of the "peri" package. It is only
|
||||
enabled if LAMMPS was built with that package. See the "Making
|
||||
This compute is part of the "peri" package. It is only enabled if
|
||||
LAMMPS was built with that package. See the "Making
|
||||
LAMMPS"_Section_start.html#2_3 section for more info.
|
||||
|
||||
[Related commands:]
|
||||
|
|
|
@ -0,0 +1,82 @@
|
|||
<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>compute ke/atom/eff command
|
||||
</H3>
|
||||
<P><B>Syntax:</B>
|
||||
</P>
|
||||
<PRE>compute ID group-ID ke/atom/eff
|
||||
</PRE>
|
||||
<UL><LI>ID, group-ID are documented in <A HREF = "compute.html">compute</A> command
|
||||
<LI>ke/atom/eff = style name of this compute command
|
||||
</UL>
|
||||
<P><B>Examples:</B>
|
||||
</P>
|
||||
<PRE>compute 1 all ke/atom/eff
|
||||
</PRE>
|
||||
<P><B>Description:</B>
|
||||
</P>
|
||||
<P>Define a computation that calculates the per-atom translational
|
||||
(nuclei and electrons) and radial kinetic energy (electron only) in a
|
||||
group. The particles are assumed to be nuclei and electrons modeled
|
||||
with the <A HREF = "pair_eff.html">electronic force field</A>.
|
||||
</P>
|
||||
<P>The kinetic energy for each nucleus is computed as 1/2 m v^2, where m
|
||||
corresponds to the corresponding nuclear mass, and the kinetic energy
|
||||
for each electron is computed as 1/2 (me v^2 + 3/4 me s^2), where me
|
||||
and v correspond to the mass and translational velocity of each
|
||||
electron, and s to its radial velocity, respectively.
|
||||
</P>
|
||||
<P>There is a subtle difference between the quantity calculated by this
|
||||
compute and the kinetic energy calculated by the <I>ke</I> or <I>etotal</I>
|
||||
keyword used in thermodynamic output, as specified by the
|
||||
<A HREF = "thermo_style.html">thermo_style</A> command. For this compute, kinetic
|
||||
energy is "translational" plus electronic "radial" kinetic energy,
|
||||
calculated by the simple formula above. For thermodynamic output, the
|
||||
<I>ke</I> keyword infers kinetic energy from the temperature of the system
|
||||
with 1/2 Kb T of energy for each (nuclear-only) degree of freedom in
|
||||
eFF.
|
||||
</P>
|
||||
<P>IMPORTANT NOTE: The temperature in eFF should be monitored via the
|
||||
<A HREF = "compute_temp_eff.html">compute temp/eff</A> command, which can be printed
|
||||
with thermodynamic output by using the
|
||||
<A HREF = "thermo_modify.html">thermo_modify</A> command, as shown in the following
|
||||
example:
|
||||
</P>
|
||||
<PRE>compute effTemp all temp/eff
|
||||
thermo_style custom step etotal pe ke temp press
|
||||
thermo_modify temp effTemp
|
||||
</PRE>
|
||||
<P>The value of the kinetic energy will be 0.0 for atoms (nuclei or
|
||||
electrons) not in the specified compute group.
|
||||
</P>
|
||||
<P><B>Output info:</B>
|
||||
</P>
|
||||
<P>This compute calculates a scalar quantity for each atom, which can be
|
||||
accessed by any command that uses per-atom computes as input. See
|
||||
<A HREF = "Section_howto.html#4_15">this section</A> for an overview of LAMMPS
|
||||
output options.
|
||||
</P>
|
||||
<P>The per-atom vector values will be in energy <A HREF = "units.html">units</A>.
|
||||
</P>
|
||||
<P><B>Restrictions:</B>
|
||||
</P>
|
||||
<P>This compute is part of the "user-eff" package. It is only enabled if
|
||||
LAMMPS was built with that package. See the <A HREF = "Section_start.html#2_3">Making
|
||||
LAMMPS</A> section for more info.
|
||||
</P>
|
||||
<P><B>Related commands:</B>
|
||||
</P>
|
||||
<P><A HREF = "dump.html">dump custom</A>
|
||||
</P>
|
||||
<P><B>Default:</B> none
|
||||
</P>
|
||||
</HTML>
|
|
@ -0,0 +1,77 @@
|
|||
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Section_commands.html#comm)
|
||||
|
||||
:line
|
||||
|
||||
compute ke/atom/eff command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
compute ID group-ID ke/atom/eff :pre
|
||||
|
||||
ID, group-ID are documented in "compute"_compute.html command
|
||||
ke/atom/eff = style name of this compute command :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
compute 1 all ke/atom/eff :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Define a computation that calculates the per-atom translational
|
||||
(nuclei and electrons) and radial kinetic energy (electron only) in a
|
||||
group. The particles are assumed to be nuclei and electrons modeled
|
||||
with the "electronic force field"_pair_eff.html.
|
||||
|
||||
The kinetic energy for each nucleus is computed as 1/2 m v^2, where m
|
||||
corresponds to the corresponding nuclear mass, and the kinetic energy
|
||||
for each electron is computed as 1/2 (me v^2 + 3/4 me s^2), where me
|
||||
and v correspond to the mass and translational velocity of each
|
||||
electron, and s to its radial velocity, respectively.
|
||||
|
||||
There is a subtle difference between the quantity calculated by this
|
||||
compute and the kinetic energy calculated by the {ke} or {etotal}
|
||||
keyword used in thermodynamic output, as specified by the
|
||||
"thermo_style"_thermo_style.html command. For this compute, kinetic
|
||||
energy is "translational" plus electronic "radial" kinetic energy,
|
||||
calculated by the simple formula above. For thermodynamic output, the
|
||||
{ke} keyword infers kinetic energy from the temperature of the system
|
||||
with 1/2 Kb T of energy for each (nuclear-only) degree of freedom in
|
||||
eFF.
|
||||
|
||||
IMPORTANT NOTE: The temperature in eFF should be monitored via the
|
||||
"compute temp/eff"_compute_temp_eff.html command, which can be printed
|
||||
with thermodynamic output by using the
|
||||
"thermo_modify"_thermo_modify.html command, as shown in the following
|
||||
example:
|
||||
|
||||
compute effTemp all temp/eff
|
||||
thermo_style custom step etotal pe ke temp press
|
||||
thermo_modify temp effTemp :pre
|
||||
|
||||
The value of the kinetic energy will be 0.0 for atoms (nuclei or
|
||||
electrons) not in the specified compute group.
|
||||
|
||||
[Output info:]
|
||||
|
||||
This compute calculates a scalar quantity for each atom, which can be
|
||||
accessed by any command that uses per-atom computes as input. See
|
||||
"this section"_Section_howto.html#4_15 for an overview of LAMMPS
|
||||
output options.
|
||||
|
||||
The per-atom vector values will be in energy "units"_units.html.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This compute is part of the "user-eff" package. It is only enabled if
|
||||
LAMMPS was built with that package. See the "Making
|
||||
LAMMPS"_Section_start.html#2_3 section for more info.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"dump custom"_dump.html
|
||||
|
||||
[Default:] none
|
|
@ -0,0 +1,83 @@
|
|||
<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>compute ke/eff command
|
||||
</H3>
|
||||
<P><B>Syntax:</B>
|
||||
</P>
|
||||
<PRE>compute ID group-ID ke/eff
|
||||
</PRE>
|
||||
<UL><LI>ID, group-ID are documented in <A HREF = "compute.html">compute</A> command
|
||||
<LI>ke/eff = style name of this compute command
|
||||
</UL>
|
||||
<P><B>Examples:</B>
|
||||
</P>
|
||||
<PRE>compute 1 all ke/eff
|
||||
</PRE>
|
||||
<P><B>Description:</B>
|
||||
</P>
|
||||
<P>Define a computation that calculates the kinetic energy of motion of a
|
||||
group of eFF particles (nuclei and electrons), as modeled with the
|
||||
<A HREF = "pair_eff.html">electronic force field</A>.
|
||||
</P>
|
||||
<P>The kinetic energy for each nucleus is computed as 1/2 m v^2 and the
|
||||
kinetic energy for each electron is computed as 1/2(me v^2 + 3/4 me
|
||||
s^2), where m corresponds to the nuclear mass, me to the electron
|
||||
mass, v to the translational velocity of each particle, and s to the
|
||||
radial velocity of the electron, respectively.
|
||||
</P>
|
||||
<P>There is a subtle difference between the quantity calculated by this
|
||||
compute and the kinetic energy calculated by the <I>ke</I> or <I>etotal</I>
|
||||
keyword used in thermodynamic output, as specified by the
|
||||
<A HREF = "thermo_style.html">thermo_style</A> command. For this compute, kinetic
|
||||
energy is "translational" and "radial" (only for electrons) kinetic
|
||||
energy, calculated by the simple formula above. For thermodynamic
|
||||
output, the <I>ke</I> keyword infers kinetic energy from the temperature of
|
||||
the system with 1/2 Kb T of energy for each degree of freedom. For
|
||||
the eFF temperature computation via the <A HREF = "compute_temp_eff.html">compute
|
||||
temp_eff</A> command, these are the same. But
|
||||
different computes that calculate temperature can subtract out
|
||||
different non-thermal components of velocity and/or include other
|
||||
degrees of freedom.
|
||||
</P>
|
||||
<P>IMPRORTANT NOTE: The temperature in eFF models should be monitored via
|
||||
the <A HREF = "compute_temp_eff.html">compute temp/eff</A> command, which can be
|
||||
printed with thermodynamic output by using the
|
||||
<A HREF = "thermo_modify.html">thermo_modify</A> command, as shown in the following
|
||||
example:
|
||||
</P>
|
||||
<PRE>compute effTemp all temp/eff
|
||||
thermo_style custom step etotal pe ke temp press
|
||||
thermo_modify temp effTemp
|
||||
</PRE>
|
||||
<P>See <A HREF = "compute_temp_eff.html">compute temp/eff</A>.
|
||||
</P>
|
||||
<P><B>Output info:</B>
|
||||
</P>
|
||||
<P>This compute calculates a global scalar (the KE). This value can be
|
||||
used by any command that uses a global scalar value from a compute as
|
||||
input. See <A HREF = "Section_howto.html#4_15">this section</A> for an overview of
|
||||
LAMMPS output options.
|
||||
</P>
|
||||
<P>The scalar value calculated by this compute is "extensive". The
|
||||
scalar value will be in energy <A HREF = "units.html">units</A>.
|
||||
</P>
|
||||
<P><B>Restrictions:</B>
|
||||
</P>
|
||||
<P>This compute is part of the "user-eff" package. It is only enabled if
|
||||
LAMMPS was built with that package. See the <A HREF = "Section_start.html#2_3">Making
|
||||
LAMMPS</A> section for more info.
|
||||
</P>
|
||||
<P><B>Related commands:</B> none
|
||||
</P>
|
||||
<P><B>Default:</B> none
|
||||
</P>
|
||||
</HTML>
|
|
@ -0,0 +1,78 @@
|
|||
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Section_commands.html#comm)
|
||||
|
||||
:line
|
||||
|
||||
compute ke/eff command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
compute ID group-ID ke/eff :pre
|
||||
|
||||
ID, group-ID are documented in "compute"_compute.html command
|
||||
ke/eff = style name of this compute command :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
compute 1 all ke/eff :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Define a computation that calculates the kinetic energy of motion of a
|
||||
group of eFF particles (nuclei and electrons), as modeled with the
|
||||
"electronic force field"_pair_eff.html.
|
||||
|
||||
The kinetic energy for each nucleus is computed as 1/2 m v^2 and the
|
||||
kinetic energy for each electron is computed as 1/2(me v^2 + 3/4 me
|
||||
s^2), where m corresponds to the nuclear mass, me to the electron
|
||||
mass, v to the translational velocity of each particle, and s to the
|
||||
radial velocity of the electron, respectively.
|
||||
|
||||
There is a subtle difference between the quantity calculated by this
|
||||
compute and the kinetic energy calculated by the {ke} or {etotal}
|
||||
keyword used in thermodynamic output, as specified by the
|
||||
"thermo_style"_thermo_style.html command. For this compute, kinetic
|
||||
energy is "translational" and "radial" (only for electrons) kinetic
|
||||
energy, calculated by the simple formula above. For thermodynamic
|
||||
output, the {ke} keyword infers kinetic energy from the temperature of
|
||||
the system with 1/2 Kb T of energy for each degree of freedom. For
|
||||
the eFF temperature computation via the "compute
|
||||
temp_eff"_compute_temp_eff.html command, these are the same. But
|
||||
different computes that calculate temperature can subtract out
|
||||
different non-thermal components of velocity and/or include other
|
||||
degrees of freedom.
|
||||
|
||||
IMPRORTANT NOTE: The temperature in eFF models should be monitored via
|
||||
the "compute temp/eff"_compute_temp_eff.html command, which can be
|
||||
printed with thermodynamic output by using the
|
||||
"thermo_modify"_thermo_modify.html command, as shown in the following
|
||||
example:
|
||||
|
||||
compute effTemp all temp/eff
|
||||
thermo_style custom step etotal pe ke temp press
|
||||
thermo_modify temp effTemp :pre
|
||||
|
||||
See "compute temp/eff"_compute_temp_eff.html.
|
||||
|
||||
[Output info:]
|
||||
|
||||
This compute calculates a global scalar (the KE). This value can be
|
||||
used by any command that uses a global scalar value from a compute as
|
||||
input. See "this section"_Section_howto.html#4_15 for an overview of
|
||||
LAMMPS output options.
|
||||
|
||||
The scalar value calculated by this compute is "extensive". The
|
||||
scalar value will be in energy "units"_units.html.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This compute is part of the "user-eff" package. It is only enabled if
|
||||
LAMMPS was built with that package. See the "Making
|
||||
LAMMPS"_Section_start.html#2_3 section for more info.
|
||||
|
||||
[Related commands:] none
|
||||
|
||||
[Default:] none
|
|
@ -0,0 +1,77 @@
|
|||
<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>compute temp/deform/eff command
|
||||
</H3>
|
||||
<P><B>Syntax:</B>
|
||||
</P>
|
||||
<PRE>compute ID group-ID temp/deform/eff
|
||||
</PRE>
|
||||
<UL><LI>ID, group-ID are documented in <A HREF = "compute.html">compute</A> command
|
||||
<LI>temp/deform/eff = style name of this compute command
|
||||
</UL>
|
||||
<P><B>Examples:</B>
|
||||
</P>
|
||||
<PRE>compute myTemp all temp/deform/eff
|
||||
</PRE>
|
||||
<P><B>Description:</B>
|
||||
</P>
|
||||
<P>Define a computation that calculates the temperature of a group of
|
||||
nuclei and electrons using the electron force field, after subtracting
|
||||
out a streaming velocity induced by the simulation box changing size
|
||||
and/or shape, for example in a non-equilibrium MD (NEMD) simulation.
|
||||
The size/shape change is induced by use of the <A HREF = "fix_deform_eff.html">fix
|
||||
deform/eff</A> command. A compute of this style is
|
||||
created by the <A HREF = "fix_nvt_sllod_eff.html">fix nvt/sllod/eff</A> command to
|
||||
compute the thermal temperature of atoms for thermostatting purposes.
|
||||
A compute of this style can also be used by any command that computes
|
||||
a temperature, e.g. <A HREF = "thermo_modify.html">thermo_modify</A>, <A HREF = "fix_nh.html">fix
|
||||
npt/eff</A>, etc.
|
||||
</P>
|
||||
<P>The calculation performed by this compute is exactly like that
|
||||
described by the <A HREF = "compute_temp_deform.html">compute temp/deform</A>
|
||||
command, except that the formula for the temperature includes the
|
||||
radial electron velocity contributions, as discussed by the <A HREF = "compute_temp_eff.html">compute
|
||||
temp/eff</A> command. Note that only the
|
||||
translational degrees of freedom for each nuclei or electron are
|
||||
affected by the streaming velocity adjustment. The radial velocity
|
||||
component of the electrons is not affected.
|
||||
</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 values from a compute as input. See <A HREF = "Section_howto.html#4_15">this
|
||||
section</A> for an overview of LAMMPS output
|
||||
options.
|
||||
</P>
|
||||
<P>The scalar value calculated by this compute is "intensive". The
|
||||
vector values 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>
|
||||
<P><B>Restrictions:</B>
|
||||
</P>
|
||||
<P>This compute is part of the "user-eff" package. It is only enabled if
|
||||
LAMMPS was built with that package. See the <A HREF = "Section_start.html#2_3">Making
|
||||
LAMMPS</A> section for more info.
|
||||
</P>
|
||||
<P><B>Related commands:</B>
|
||||
</P>
|
||||
<P><A HREF = "compute_temp_ramp.html">compute temp/ramp</A>, <A HREF = "fix_deform_eff.html">fix
|
||||
deform/eff</A>, <A HREF = "fix_nvt_sllod_eff.html">fix
|
||||
nvt/sllod/eff</A>
|
||||
</P>
|
||||
<P><B>Default:</B> none
|
||||
</P>
|
||||
</HTML>
|
|
@ -0,0 +1,72 @@
|
|||
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Section_commands.html#comm)
|
||||
|
||||
:line
|
||||
|
||||
compute temp/deform/eff command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
compute ID group-ID temp/deform/eff :pre
|
||||
|
||||
ID, group-ID are documented in "compute"_compute.html command
|
||||
temp/deform/eff = style name of this compute command :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
compute myTemp all temp/deform/eff :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Define a computation that calculates the temperature of a group of
|
||||
nuclei and electrons using the electron force field, after subtracting
|
||||
out a streaming velocity induced by the simulation box changing size
|
||||
and/or shape, for example in a non-equilibrium MD (NEMD) simulation.
|
||||
The size/shape change is induced by use of the "fix
|
||||
deform/eff"_fix_deform_eff.html command. A compute of this style is
|
||||
created by the "fix nvt/sllod/eff"_fix_nvt_sllod_eff.html command to
|
||||
compute the thermal temperature of atoms for thermostatting purposes.
|
||||
A compute of this style can also be used by any command that computes
|
||||
a temperature, e.g. "thermo_modify"_thermo_modify.html, "fix
|
||||
npt/eff"_fix_nh.html, etc.
|
||||
|
||||
The calculation performed by this compute is exactly like that
|
||||
described by the "compute temp/deform"_compute_temp_deform.html
|
||||
command, except that the formula for the temperature includes the
|
||||
radial electron velocity contributions, as discussed by the "compute
|
||||
temp/eff"_compute_temp_eff.html command. Note that only the
|
||||
translational degrees of freedom for each nuclei or electron are
|
||||
affected by the streaming velocity adjustment. The radial velocity
|
||||
component of the electrons is not affected.
|
||||
|
||||
[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.
|
||||
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#4_15 for an overview of LAMMPS output
|
||||
options.
|
||||
|
||||
The scalar value calculated by this compute is "intensive". The
|
||||
vector values are "extensive".
|
||||
|
||||
The scalar value will be in temperature "units"_units.html. The
|
||||
vector values will be in energy "units"_units.html.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This compute is part of the "user-eff" package. It is only enabled if
|
||||
LAMMPS was built with that package. See the "Making
|
||||
LAMMPS"_Section_start.html#2_3 section for more info.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"compute temp/ramp"_compute_temp_ramp.html, "fix
|
||||
deform/eff"_fix_deform_eff.html, "fix
|
||||
nvt/sllod/eff"_fix_nvt_sllod_eff.html
|
||||
|
||||
[Default:] none
|
|
@ -0,0 +1,100 @@
|
|||
<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>compute temp/eff command
|
||||
</H3>
|
||||
<P><B>Syntax:</B>
|
||||
</P>
|
||||
<PRE>compute ID group-ID temp/eff
|
||||
</PRE>
|
||||
<UL><LI>ID, group-ID are documented in <A HREF = "compute.html">compute</A> command
|
||||
<LI>temp/eff = style name of this compute command
|
||||
</UL>
|
||||
<P><B>Examples:</B>
|
||||
</P>
|
||||
<PRE>compute 1 all temp/eff
|
||||
compute myTemp mobile temp/eff
|
||||
</PRE>
|
||||
<P><B>Description:</B>
|
||||
</P>
|
||||
<P>Define a computation that calculates the temperature of a group of
|
||||
nuclei and electrons using the electron force field. A compute of
|
||||
this style can be used by commands that compute a temperature,
|
||||
e.g. <A HREF = "thermo_modify.html">thermo_modify</A>, <A HREF = "fix_npt_eff.html">fix
|
||||
npt/eff</A>, etc.
|
||||
</P>
|
||||
<P>The temperature is calculated by the formula KE = dim/2 N k T, where
|
||||
KE = total kinetic energy of the group of atoms (sum of 1/2 m v^2 for
|
||||
nuclei and sum of 1/2 (m v^2 + 3/4 m s^2) for electrons, where s
|
||||
includes the radial electron velocity contributions), dim = 2 or 3 =
|
||||
dimensionality of the simulation, N = number of atoms (only total
|
||||
number of nuclei in the eFF (see the <A HREF = "pair_style.html">pair_eff</A>
|
||||
command) in the group, k = Boltzmann constant, and T = temperature.
|
||||
This expression is summed over all nuclear and electronic degrees of
|
||||
freedom, essentially by setting the kinetic contribution to the heat
|
||||
capacity to 3/2k (where only nuclei contribute). This subtlety is
|
||||
valid for temperatures well below the Fermi temperature, which for
|
||||
densities two to five times the density of liquid H2 ranges from
|
||||
86,000 to 170,000 K.
|
||||
</P>
|
||||
<P>IMPORTANT NOTE: For eFF models, in order to override the default
|
||||
temperature reported by LAMMPS in the thermodynamic quantities
|
||||
reported via the <A HREF = "thermo.html">thermo</A> command, the user should apply a
|
||||
<A HREF = "thermo_modify.html">thermo_modify</A> command, as shown in the following
|
||||
example:
|
||||
</P>
|
||||
<PRE>compute effTemp all temp/eff
|
||||
thermo_style custom step etotal pe ke temp press
|
||||
thermo_modify temp effTemp
|
||||
</PRE>
|
||||
<P>A 6-component kinetic energy tensor is also calculated by this compute
|
||||
for use in the computation of a pressure tensor. The formula for the
|
||||
components of the tensor is the same as the above formula, except that
|
||||
v^2 is replaced by vx * vy for the xy component, etc. For the eFF,
|
||||
again, the radial electronic velocities are also considered.
|
||||
</P>
|
||||
<P>The number of atoms contributing to the temperature is assumed to be
|
||||
constant for the duration of the run; use the <I>dynamic</I> option of the
|
||||
<A HREF = "compute_modify.html">compute_modify</A> command if this is not the case.
|
||||
</P>
|
||||
<P>This compute subtracts out degrees-of-freedom due to fixes that
|
||||
constrain molecular motion, such as <A HREF = "fix_shake.html">fix shake</A> and
|
||||
<A HREF = "fix_rigid.html">fix rigid</A>. This means the temperature of groups of
|
||||
atoms that include these constraints will be computed correctly. If
|
||||
needed, the subtracted degrees-of-freedom can be altered using the
|
||||
<I>extra</I> option of the <A HREF = "compute_modify.html">compute_modify</A> command.
|
||||
</P>
|
||||
<P>See <A HREF = "Section_howto.html#4_16">this howto section</A> of the manual for a
|
||||
discussion of different ways to compute temperature and perform
|
||||
thermostatting.
|
||||
</P>
|
||||
<P><B>Output info:</B>
|
||||
</P>
|
||||
<P>The scalar value calculated by this compute is "intensive", meaning it
|
||||
is independent of the number of atoms in the simulation. The vector
|
||||
values are "extensive", meaning they scale with the number of atoms in
|
||||
the simulation.
|
||||
</P>
|
||||
<P><B>Restrictions:</B>
|
||||
</P>
|
||||
<P>This compute is part of the "user-eff" package. It is only enabled if
|
||||
LAMMPS was built with that package. See the <A HREF = "Section_start.html#2_3">Making
|
||||
LAMMPS</A> section for more info.
|
||||
</P>
|
||||
<P><B>Related commands:</B>
|
||||
</P>
|
||||
<P><A HREF = "compute_temp_partial.html">compute temp/partial</A>, <A HREF = "compute_temp_region.html">compute
|
||||
temp/region</A>, <A HREF = "compute_pressure.html">compute
|
||||
pressure</A>
|
||||
</P>
|
||||
<P><B>Default:</B> none
|
||||
</P>
|
||||
</HTML>
|
|
@ -0,0 +1,95 @@
|
|||
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Section_commands.html#comm)
|
||||
|
||||
:line
|
||||
|
||||
compute temp/eff command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
compute ID group-ID temp/eff :pre
|
||||
|
||||
ID, group-ID are documented in "compute"_compute.html command
|
||||
temp/eff = style name of this compute command :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
compute 1 all temp/eff
|
||||
compute myTemp mobile temp/eff :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Define a computation that calculates the temperature of a group of
|
||||
nuclei and electrons using the electron force field. A compute of
|
||||
this style can be used by commands that compute a temperature,
|
||||
e.g. "thermo_modify"_thermo_modify.html, "fix
|
||||
npt/eff"_fix_npt_eff.html, etc.
|
||||
|
||||
The temperature is calculated by the formula KE = dim/2 N k T, where
|
||||
KE = total kinetic energy of the group of atoms (sum of 1/2 m v^2 for
|
||||
nuclei and sum of 1/2 (m v^2 + 3/4 m s^2) for electrons, where s
|
||||
includes the radial electron velocity contributions), dim = 2 or 3 =
|
||||
dimensionality of the simulation, N = number of atoms (only total
|
||||
number of nuclei in the eFF (see the "pair_eff"_pair_style.html
|
||||
command) in the group, k = Boltzmann constant, and T = temperature.
|
||||
This expression is summed over all nuclear and electronic degrees of
|
||||
freedom, essentially by setting the kinetic contribution to the heat
|
||||
capacity to 3/2k (where only nuclei contribute). This subtlety is
|
||||
valid for temperatures well below the Fermi temperature, which for
|
||||
densities two to five times the density of liquid H2 ranges from
|
||||
86,000 to 170,000 K.
|
||||
|
||||
IMPORTANT NOTE: For eFF models, in order to override the default
|
||||
temperature reported by LAMMPS in the thermodynamic quantities
|
||||
reported via the "thermo"_thermo.html command, the user should apply a
|
||||
"thermo_modify"_thermo_modify.html command, as shown in the following
|
||||
example:
|
||||
|
||||
compute effTemp all temp/eff
|
||||
thermo_style custom step etotal pe ke temp press
|
||||
thermo_modify temp effTemp :pre
|
||||
|
||||
A 6-component kinetic energy tensor is also calculated by this compute
|
||||
for use in the computation of a pressure tensor. The formula for the
|
||||
components of the tensor is the same as the above formula, except that
|
||||
v^2 is replaced by vx * vy for the xy component, etc. For the eFF,
|
||||
again, the radial electronic velocities are also considered.
|
||||
|
||||
The number of atoms contributing to the temperature is assumed to be
|
||||
constant for the duration of the run; use the {dynamic} option of the
|
||||
"compute_modify"_compute_modify.html command if this is not the case.
|
||||
|
||||
This compute subtracts out degrees-of-freedom due to fixes that
|
||||
constrain molecular motion, such as "fix shake"_fix_shake.html and
|
||||
"fix rigid"_fix_rigid.html. This means the temperature of groups of
|
||||
atoms that include these constraints will be computed correctly. If
|
||||
needed, the subtracted degrees-of-freedom can be altered using the
|
||||
{extra} option of the "compute_modify"_compute_modify.html command.
|
||||
|
||||
See "this howto section"_Section_howto.html#4_16 of the manual for a
|
||||
discussion of different ways to compute temperature and perform
|
||||
thermostatting.
|
||||
|
||||
[Output info:]
|
||||
|
||||
The scalar value calculated by this compute is "intensive", meaning it
|
||||
is independent of the number of atoms in the simulation. The vector
|
||||
values are "extensive", meaning they scale with the number of atoms in
|
||||
the simulation.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This compute is part of the "user-eff" package. It is only enabled if
|
||||
LAMMPS was built with that package. See the "Making
|
||||
LAMMPS"_Section_start.html#2_3 section for more info.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"compute temp/partial"_compute_temp_partial.html, "compute
|
||||
temp/region"_compute_temp_region.html, "compute
|
||||
pressure"_compute_pressure.html
|
||||
|
||||
[Default:] none
|
|
@ -0,0 +1,68 @@
|
|||
<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>compute temp/region/eff command
|
||||
</H3>
|
||||
<P><B>Syntax:</B>
|
||||
</P>
|
||||
<PRE>compute ID group-ID temp/region/eff region-ID
|
||||
</PRE>
|
||||
<UL><LI>ID, group-ID are documented in <A HREF = "compute.html">compute</A> command
|
||||
<LI>temp/region/eff = style name of this compute command
|
||||
<LI>region-ID = ID of region to use for choosing atoms
|
||||
</UL>
|
||||
<P><B>Examples:</B>
|
||||
</P>
|
||||
<PRE>compute mine flow temp/region/eff boundary
|
||||
</PRE>
|
||||
<P><B>Description:</B>
|
||||
</P>
|
||||
<P>Define a computation that calculates the temperature of a group of
|
||||
nuclei and electrons wihtin a geometric region using the electron
|
||||
force field. A compute of this style can be used by commands that
|
||||
compute a temperature, e.g. <A HREF = "thermo_modify.html">thermo_modify</A>.
|
||||
</P>
|
||||
<P>The operation of this compute is exactly like that described by the
|
||||
<A HREF = "compute_temp_region.html">compute temp/region</A> command, where the
|
||||
formula for the temperature itself includes the radial electron
|
||||
velocity contributions, as discussed by the <A HREF = "compute_temp_eff.html">compute
|
||||
temp/eff</A> command.
|
||||
</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 values from a compute as input. See <A HREF = "Section_howto.html#4_15">this
|
||||
section</A> for an overview of LAMMPS output
|
||||
options.
|
||||
</P>
|
||||
<P>The scalar value calculated by this compute is "intensive". The
|
||||
vector values 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>
|
||||
<P><B>Restrictions:</B>
|
||||
</P>
|
||||
<P>This compute is part of the "user-eff" package. It is only enabled if
|
||||
LAMMPS was built with that package. See the <A HREF = "Section_start.html#2_3">Making
|
||||
LAMMPS</A> section for more info.
|
||||
</P>
|
||||
<P><B>Related commands:</B>
|
||||
</P>
|
||||
<P><A HREF = "compute_temp_region.html">compute temp/region</A>, <A HREF = "compute_temp_eff.html">compute
|
||||
temp/eff</A>, <A HREF = "compute_pressure.html">compute
|
||||
pressure</A>
|
||||
</P>
|
||||
<P><B>Default:</B> none
|
||||
</P>
|
||||
</HTML>
|
|
@ -0,0 +1,63 @@
|
|||
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Section_commands.html#comm)
|
||||
|
||||
:line
|
||||
|
||||
compute temp/region/eff command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
compute ID group-ID temp/region/eff region-ID :pre
|
||||
|
||||
ID, group-ID are documented in "compute"_compute.html command
|
||||
temp/region/eff = style name of this compute command
|
||||
region-ID = ID of region to use for choosing atoms :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
compute mine flow temp/region/eff boundary :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Define a computation that calculates the temperature of a group of
|
||||
nuclei and electrons wihtin a geometric region using the electron
|
||||
force field. A compute of this style can be used by commands that
|
||||
compute a temperature, e.g. "thermo_modify"_thermo_modify.html.
|
||||
|
||||
The operation of this compute is exactly like that described by the
|
||||
"compute temp/region"_compute_temp_region.html command, where the
|
||||
formula for the temperature itself includes the radial electron
|
||||
velocity contributions, as discussed by the "compute
|
||||
temp/eff"_compute_temp_eff.html command.
|
||||
|
||||
[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.
|
||||
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#4_15 for an overview of LAMMPS output
|
||||
options.
|
||||
|
||||
The scalar value calculated by this compute is "intensive". The
|
||||
vector values are "extensive".
|
||||
|
||||
The scalar value will be in temperature "units"_units.html. The
|
||||
vector values will be in energy "units"_units.html.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This compute is part of the "user-eff" package. It is only enabled if
|
||||
LAMMPS was built with that package. See the "Making
|
||||
LAMMPS"_Section_start.html#2_3 section for more info.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"compute temp/region"_compute_temp_region.html, "compute
|
||||
temp/eff"_compute_temp_eff.html, "compute
|
||||
pressure"_compute_pressure.html
|
||||
|
||||
[Default:] none
|
|
@ -0,0 +1,201 @@
|
|||
<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 langevin/eff command
|
||||
</H3>
|
||||
<P><B>Syntax:</B>
|
||||
</P>
|
||||
<PRE>fix ID group-ID langevin/eff Tstart Tstop damp seed keyword values ...
|
||||
</PRE>
|
||||
<UL><LI>ID, group-ID are documented in <A HREF = "fix.html">fix</A> command
|
||||
|
||||
<LI>langevin/eff = style name of this fix command
|
||||
|
||||
<LI>Tstart,Tstop = desired temperature at start/end of run (temperature units)
|
||||
|
||||
<LI>damp = damping parameter (time units)
|
||||
|
||||
<LI>seed = random number seed to use for white noise (positive integer)
|
||||
|
||||
<LI>zero or more keyword/value pairs may be appended
|
||||
|
||||
<PRE>keyword = <I>scale</I> or <I>tally</I>
|
||||
<I>scale</I> values = type ratio
|
||||
type = atom type (1-N)
|
||||
ratio = factor by which to scale the damping coefficient
|
||||
<I>tally</I> values = <I>no</I> or <I>yes</I>
|
||||
<I>no</I> = do not tally the energy added/subtracted to atoms
|
||||
<I>yes</I> = do tally the energy added/subtracted to atoms
|
||||
</PRE>
|
||||
|
||||
</UL>
|
||||
<P><B>Examples:</B>
|
||||
</P>
|
||||
<PRE>fix 3 boundary langevin/eff 1.0 1.0 10.0 699483
|
||||
fix 1 all langevin/eff 1.0 1.1 10.0 48279 scale 3 1.5
|
||||
</PRE>
|
||||
<P><B>Description:</B>
|
||||
</P>
|
||||
<P>Apply a Langevin thermostat as described in <A HREF = "#Schneider">(Schneider)</A>
|
||||
to a group of atoms which models an interaction with a background
|
||||
implicit solvent. Used with <A HREF = "fix_nve_eff.html">fix nve/eff</A>, this command
|
||||
performs Brownian dynamics (BD), since the total force on each atom
|
||||
will have the form:
|
||||
</P>
|
||||
<PRE>F = Fc + Ff + Fr
|
||||
Ff = - (m / damp) v
|
||||
Fr is proportional to sqrt(Kb T m / (dt damp))
|
||||
</PRE>
|
||||
<P>Fc is the conservative force computed via the usual inter-particle
|
||||
interactions (<A HREF = "pair_style.html">pair_style</A>).
|
||||
</P>
|
||||
<P>The Ff and Fr terms are added by this fix on a per-particle basis.
|
||||
</P>
|
||||
<P>Ff is a frictional drag or viscous damping term proportional to the
|
||||
particle's velocity (including the electronic radial degrees of freedom). The proportionality constant for each atom is computed as m/damp, where m is the mass of the particle and damp is the damping factor specified by the user.
|
||||
</P>
|
||||
<P>Fr is a force due to solvent atoms at a temperature T randomly bumping
|
||||
into the particle. As derived from the fluctuation/dissipation
|
||||
theorem, its magnitude as shown above is proportional to sqrt(Kb T m /
|
||||
dt damp), where Kb is the Boltzmann constant, T is the desired
|
||||
temperature, m is the mass of the particle, dt is the timestep size,
|
||||
and damp is the damping factor. Random numbers are used to randomize
|
||||
the direction and magnitude of this force as described in
|
||||
<A HREF = "#Dunweg">(Dunweg)</A>, where a uniform random number is used (instead of
|
||||
a Gaussian random number) for speed.
|
||||
</P>
|
||||
<P>Note that the thermostat effect of this fix is applied to the
|
||||
translational and electronic radial degrees of freedom for the particles in a system. The translational degrees of freedom can also have a bias
|
||||
velocity removed from them before thermostatting takes place; see the
|
||||
description below.
|
||||
</P>
|
||||
<P>IMPORTANT NOTE: Unlike the <A HREF = "fix_nh_eff.html">fix nvt/eff</A> command which
|
||||
performs Nose/Hoover thermostatting AND time integration, this fix
|
||||
does NOT perform time integration. It only modifies forces to effect
|
||||
thermostatting. Thus you must use a separate time integration fix,
|
||||
like <A HREF = "fix_nve_eff.html">fix nve/eff</A> to actually update the velocities (including electronic radial velocities) and positions of atoms (nuclei and electrons) using the modified forces. Likewise, this fix
|
||||
should not normally be used on atoms that also have their temperature
|
||||
controlled by another fix - e.g. by <A HREF = "fix_nh.html">fix nvt/eff</A> command.
|
||||
</P>
|
||||
<P>See <A HREF = "Section_howto.html#4_16">this howto section</A> of the manual for a
|
||||
discussion of different ways to compute temperature and perform
|
||||
thermostatting.
|
||||
</P>
|
||||
<P>The desired temperature at each timestep is a ramped value during the
|
||||
run from <I>Tstart</I> to <I>Tstop</I>.
|
||||
</P>
|
||||
<P>Like other fixes that perform thermostatting, this fix can be used
|
||||
with <A HREF = "compute.html">compute commands</A> that remove a "bias" from the
|
||||
atom velocities. E.g. removing the center-of-mass velocity from a
|
||||
group of atoms or removing the x-component of velocity from the
|
||||
calculation. This is not done by default, but only if the
|
||||
<A HREF = "fix_modify.html">fix_modify</A> command is used to assign a temperature
|
||||
compute to this fix that includes such a bias term. See the doc pages
|
||||
for individual <A HREF = "compute.html">compute commands</A> to determine which ones
|
||||
include a bias. In this case, the thermostat works in the following
|
||||
manner: bias is removed from each atom, thermostatting is performed on
|
||||
the remaining thermal degrees of freedom, and the bias is added back
|
||||
in.
|
||||
</P>
|
||||
<P>The <I>damp</I> parameter is specified in time units and determines how
|
||||
rapidly the temperature is relaxed. For example, a value of 0.1
|
||||
means to relax the temperature in a timespan of 100 timesteps (for the default 0.001 timesteps and fmsec unit used in eFF - see the <A HREF = "units.html">units</A> command).
|
||||
The damp factor can be thought of as inversely related to the
|
||||
viscosity of the solvent. I.e. a small relaxation time implies a
|
||||
hi-viscosity solvent and vice versa. See the discussion about gamma
|
||||
and viscosity in the documentation for the <A HREF = "fix_viscous.html">fix
|
||||
viscous</A> command for more details.
|
||||
</P>
|
||||
<P>The random # <I>seed</I> must be a positive integer. A Marsaglia random
|
||||
number generator is used. Each processor uses the input seed to
|
||||
generate its own unique seed and its own stream of random numbers.
|
||||
Thus the dynamics of the system will not be identical on two runs on
|
||||
different numbers of processors.
|
||||
</P>
|
||||
<P>The keyword <I>scale</I> allows the damp factor to be scaled up or down by
|
||||
the specified factor for atoms of that type. This can be useful when
|
||||
different atom types have different sizes or masses. It can be used
|
||||
multiple times to adjust damp for several atom types. Note that
|
||||
specifying a ratio of 2 increases the relaxation time which is
|
||||
equivalent to the solvent's viscosity acting on particles with 1/2 the
|
||||
diameter. This is the opposite effect of scale factors used by the
|
||||
<A HREF = "fix_viscous.html">fix viscous</A> command, since the damp factor in fix
|
||||
<I>langevin</I> is inversely related to the gamma factor in fix <I>viscous</I>.
|
||||
Also note that the damping factor in fix <I>langevin</I> includes the
|
||||
particle mass in Ff, unlike fix <I>viscous</I>. Thus the mass and size of
|
||||
different atom types should be accounted for in the choice of ratio
|
||||
values.
|
||||
</P>
|
||||
<P>The keyword <I>tally</I> enables the calculation of the cummulative energy
|
||||
added/subtracted to the atoms as they are thermostatted. Effectively
|
||||
it is the energy exchanged between the infinite thermal reservoir and
|
||||
the particles. As described below, this energy can then be printed
|
||||
out or added to the potential energy of the system to monitor energy
|
||||
conservation.
|
||||
</P>
|
||||
<P><B>Restart, fix_modify, output, run start/stop, minimize info:</B>
|
||||
</P>
|
||||
<P>No information about this fix is written to <A HREF = "restart.html">binary restart
|
||||
files</A>. Because the state of the random number generator
|
||||
is not saved in restart files, this means you cannot do "exact"
|
||||
restarts with this fix, where the simulation continues on the same as
|
||||
if no restart had taken place. However, in a statistical sense, a
|
||||
restarted simulation should produce the same behavior.
|
||||
</P>
|
||||
<P>The <A HREF = "fix_modify.html">fix_modify</A> <I>temp</I> option is supported by this
|
||||
fix. You can use it to assign a temperature <A HREF = "compute.html">compute</A>
|
||||
you have defined to this fix which will be used in its thermostatting
|
||||
procedure, as described above. For consistency, the group used by
|
||||
this fix and by the compute should be the same.
|
||||
</P>
|
||||
<P>The <A HREF = "fix_modify.html">fix_modify</A> <I>energy</I> option is supported by this
|
||||
fix to add the energy change induced by Langevin thermostatting to the
|
||||
system's potential energy as part of <A HREF = "thermo_style.html">thermodynamic
|
||||
output</A>. Note that use of this option requires
|
||||
setting the <I>tally</I> keyword to <I>yes</I>.
|
||||
</P>
|
||||
<P>This fix computes a global scalar which can be accessed by various
|
||||
<A HREF = "Section_howto.html#4_15">output commands</A>. The scalar is the
|
||||
cummulative energy change due to this fix. The scalar value
|
||||
calculated by this fix is "extensive". Note that calculation of this
|
||||
quantity requires setting the <I>tally</I> keyword to <I>yes</I>.
|
||||
</P>
|
||||
<P>This fix can ramp its target temperature over multiple runs, using the
|
||||
<I>start</I> and <I>stop</I> keywords of the <A HREF = "run.html">run</A> command. See the
|
||||
<A HREF = "run.html">run</A> command for details of how to do this.
|
||||
</P>
|
||||
<P>This fix is not invoked during <A HREF = "minimize.html">energy minimization</A>.
|
||||
</P>
|
||||
<P><B>Restrictions:</B> none
|
||||
</P>
|
||||
<P>This fix is part of the "user-eff" package. It is only enabled if
|
||||
LAMMPS was built with that package. See the <A HREF = "Section_start.html#2_3">Making
|
||||
LAMMPS</A> section for more info.
|
||||
</P>
|
||||
<P><B>Related commands:</B>
|
||||
</P>
|
||||
<P><A HREF = "fix_nh.html">fix nvt/eff</A>
|
||||
</P>
|
||||
<P><B>Default:</B>
|
||||
</P>
|
||||
<P>The option defaults are scale = 1.0 for all types and tally = no.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<A NAME = "Dunweg"></A>
|
||||
|
||||
<P><B>(Dunweg)</B> Dunweg and Paul, Int J of Modern Physics C, 2, 817-27 (1991).
|
||||
</P>
|
||||
<A NAME = "Schneider"></A>
|
||||
|
||||
<P><B>(Schneider)</B> Schneider and Stoll, Phys Rev B, 17, 1302 (1978).
|
||||
</P>
|
||||
</HTML>
|
|
@ -0,0 +1,194 @@
|
|||
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Section_commands.html#comm)
|
||||
|
||||
:line
|
||||
|
||||
fix langevin/eff command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
fix ID group-ID langevin/eff Tstart Tstop damp seed keyword values ... :pre
|
||||
|
||||
ID, group-ID are documented in "fix"_fix.html command :ulb,l
|
||||
langevin/eff = style name of this fix command :l
|
||||
Tstart,Tstop = desired temperature at start/end of run (temperature units) :l
|
||||
damp = damping parameter (time units) :l
|
||||
seed = random number seed to use for white noise (positive integer) :l
|
||||
zero or more keyword/value pairs may be appended :l
|
||||
keyword = {scale} or {tally}
|
||||
{scale} values = type ratio
|
||||
type = atom type (1-N)
|
||||
ratio = factor by which to scale the damping coefficient
|
||||
{tally} values = {no} or {yes}
|
||||
{no} = do not tally the energy added/subtracted to atoms
|
||||
{yes} = do tally the energy added/subtracted to atoms :pre
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
fix 3 boundary langevin/eff 1.0 1.0 10.0 699483
|
||||
fix 1 all langevin/eff 1.0 1.1 10.0 48279 scale 3 1.5 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Apply a Langevin thermostat as described in "(Schneider)"_#Schneider
|
||||
to a group of atoms which models an interaction with a background
|
||||
implicit solvent. Used with "fix nve/eff"_fix_nve_eff.html, this command
|
||||
performs Brownian dynamics (BD), since the total force on each atom
|
||||
will have the form:
|
||||
|
||||
F = Fc + Ff + Fr
|
||||
Ff = - (m / damp) v
|
||||
Fr is proportional to sqrt(Kb T m / (dt damp)) :pre
|
||||
|
||||
Fc is the conservative force computed via the usual inter-particle
|
||||
interactions ("pair_style"_pair_style.html).
|
||||
|
||||
The Ff and Fr terms are added by this fix on a per-particle basis.
|
||||
|
||||
Ff is a frictional drag or viscous damping term proportional to the
|
||||
particle's velocity (including the electronic radial degrees of
|
||||
freedom). The proportionality constant for each atom is computed as
|
||||
m/damp, where m is the mass of the particle and damp is the damping
|
||||
factor specified by the user.
|
||||
|
||||
Fr is a force due to solvent atoms at a temperature T randomly bumping
|
||||
into the particle. As derived from the fluctuation/dissipation
|
||||
theorem, its magnitude as shown above is proportional to sqrt(Kb T m /
|
||||
dt damp), where Kb is the Boltzmann constant, T is the desired
|
||||
temperature, m is the mass of the particle, dt is the timestep size,
|
||||
and damp is the damping factor. Random numbers are used to randomize
|
||||
the direction and magnitude of this force as described in
|
||||
"(Dunweg)"_#Dunweg, where a uniform random number is used (instead of
|
||||
a Gaussian random number) for speed.
|
||||
|
||||
Note that the thermostat effect of this fix is applied to the
|
||||
translational and electronic radial degrees of freedom for the
|
||||
particles in a system. The translational degrees of freedom can also
|
||||
have a bias velocity removed from them before thermostatting takes
|
||||
place; see the description below.
|
||||
|
||||
IMPORTANT NOTE: Unlike the "fix nvt/eff"_fix_nh_eff.html command which
|
||||
performs Nose/Hoover thermostatting AND time integration, this fix
|
||||
does NOT perform time integration. It only modifies forces to effect
|
||||
thermostatting. Thus you must use a separate time integration fix,
|
||||
like "fix nve/eff"_fix_nve_eff.html to actually update the velocities
|
||||
(including electronic radial velocities) and positions of atoms
|
||||
(nuclei and electrons) using the modified forces. Likewise, this fix
|
||||
should not normally be used on atoms that also have their temperature
|
||||
controlled by another fix - e.g. by "fix nvt/eff"_fix_nh.html command.
|
||||
|
||||
See "this howto section"_Section_howto.html#4_16 of the manual for a
|
||||
discussion of different ways to compute temperature and perform
|
||||
thermostatting.
|
||||
|
||||
The desired temperature at each timestep is a ramped value during the
|
||||
run from {Tstart} to {Tstop}.
|
||||
|
||||
Like other fixes that perform thermostatting, this fix can be used
|
||||
with "compute commands"_compute.html that remove a "bias" from the
|
||||
atom velocities. E.g. removing the center-of-mass velocity from a
|
||||
group of atoms or removing the x-component of velocity from the
|
||||
calculation. This is not done by default, but only if the
|
||||
"fix_modify"_fix_modify.html command is used to assign a temperature
|
||||
compute to this fix that includes such a bias term. See the doc pages
|
||||
for individual "compute commands"_compute.html to determine which ones
|
||||
include a bias. In this case, the thermostat works in the following
|
||||
manner: bias is removed from each atom, thermostatting is performed on
|
||||
the remaining thermal degrees of freedom, and the bias is added back
|
||||
in.
|
||||
|
||||
The {damp} parameter is specified in time units and determines how
|
||||
rapidly the temperature is relaxed. For example, a value of 0.1 means
|
||||
to relax the temperature in a timespan of 100 timesteps (for the
|
||||
default 0.001 timesteps and fmsec unit used in eFF - see the
|
||||
"units"_units.html command). The damp factor can be thought of as
|
||||
inversely related to the viscosity of the solvent. I.e. a small
|
||||
relaxation time implies a hi-viscosity solvent and vice versa. See
|
||||
the discussion about gamma and viscosity in the documentation for the
|
||||
"fix viscous"_fix_viscous.html command for more details.
|
||||
|
||||
The random # {seed} must be a positive integer. A Marsaglia random
|
||||
number generator is used. Each processor uses the input seed to
|
||||
generate its own unique seed and its own stream of random numbers.
|
||||
Thus the dynamics of the system will not be identical on two runs on
|
||||
different numbers of processors.
|
||||
|
||||
The keyword {scale} allows the damp factor to be scaled up or down by
|
||||
the specified factor for atoms of that type. This can be useful when
|
||||
different atom types have different sizes or masses. It can be used
|
||||
multiple times to adjust damp for several atom types. Note that
|
||||
specifying a ratio of 2 increases the relaxation time which is
|
||||
equivalent to the solvent's viscosity acting on particles with 1/2 the
|
||||
diameter. This is the opposite effect of scale factors used by the
|
||||
"fix viscous"_fix_viscous.html command, since the damp factor in fix
|
||||
{langevin} is inversely related to the gamma factor in fix {viscous}.
|
||||
Also note that the damping factor in fix {langevin} includes the
|
||||
particle mass in Ff, unlike fix {viscous}. Thus the mass and size of
|
||||
different atom types should be accounted for in the choice of ratio
|
||||
values.
|
||||
|
||||
The keyword {tally} enables the calculation of the cummulative energy
|
||||
added/subtracted to the atoms as they are thermostatted. Effectively
|
||||
it is the energy exchanged between the infinite thermal reservoir and
|
||||
the particles. As described below, this energy can then be printed
|
||||
out or added to the potential energy of the system to monitor energy
|
||||
conservation.
|
||||
|
||||
[Restart, fix_modify, output, run start/stop, minimize info:]
|
||||
|
||||
No information about this fix is written to "binary restart
|
||||
files"_restart.html. Because the state of the random number generator
|
||||
is not saved in restart files, this means you cannot do "exact"
|
||||
restarts with this fix, where the simulation continues on the same as
|
||||
if no restart had taken place. However, in a statistical sense, a
|
||||
restarted simulation should produce the same behavior.
|
||||
|
||||
The "fix_modify"_fix_modify.html {temp} option is supported by this
|
||||
fix. You can use it to assign a temperature "compute"_compute.html
|
||||
you have defined to this fix which will be used in its thermostatting
|
||||
procedure, as described above. For consistency, the group used by
|
||||
this fix and by the compute should be the same.
|
||||
|
||||
The "fix_modify"_fix_modify.html {energy} option is supported by this
|
||||
fix to add the energy change induced by Langevin thermostatting to the
|
||||
system's potential energy as part of "thermodynamic
|
||||
output"_thermo_style.html. Note that use of this option requires
|
||||
setting the {tally} keyword to {yes}.
|
||||
|
||||
This fix computes a global scalar which can be accessed by various
|
||||
"output commands"_Section_howto.html#4_15. The scalar is the
|
||||
cummulative energy change due to this fix. The scalar value
|
||||
calculated by this fix is "extensive". Note that calculation of this
|
||||
quantity requires setting the {tally} keyword to {yes}.
|
||||
|
||||
This fix can ramp its target temperature over multiple runs, using the
|
||||
{start} and {stop} keywords of the "run"_run.html command. See the
|
||||
"run"_run.html command for details of how to do this.
|
||||
|
||||
This fix is not invoked during "energy minimization"_minimize.html.
|
||||
|
||||
[Restrictions:] none
|
||||
|
||||
This fix is part of the "user-eff" package. It is only enabled if
|
||||
LAMMPS was built with that package. See the "Making
|
||||
LAMMPS"_Section_start.html#2_3 section for more info.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"fix langevin"_fix_langevin.html
|
||||
|
||||
[Default:]
|
||||
|
||||
The option defaults are scale = 1.0 for all types and tally = no.
|
||||
|
||||
:line
|
||||
|
||||
:link(Dunweg)
|
||||
[(Dunweg)] Dunweg and Paul, Int J of Modern Physics C, 2, 817-27 (1991).
|
||||
|
||||
:link(Schneider)
|
||||
[(Schneider)] Schneider and Stoll, Phys Rev B, 17, 1302 (1978).
|
|
@ -0,0 +1,485 @@
|
|||
<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 nvt/eff command
|
||||
</H3>
|
||||
<H3>fix npt/eff command
|
||||
</H3>
|
||||
<H3>fix nph/eff command
|
||||
</H3>
|
||||
<P><B>Syntax:</B>
|
||||
</P>
|
||||
<PRE>fix ID group-ID style_name keyword value ...
|
||||
</PRE>
|
||||
<UL><LI>ID, group-ID are documented in <A HREF = "fix.html">fix</A> command
|
||||
|
||||
<LI>style_name = <I>nvt/eff</I> or <I>npt/eff</I> or <I>nph/eff</I>
|
||||
|
||||
<PRE>one or more keyword value pairs may be appended
|
||||
keyword = <I>temp</I> or <I>iso</I> or <I>aniso</I> or <I>tri</I> or <I>x</I> or <I>y</I> or <I>z</I> or <I>xy</I> or <I>yz</I> or <I>xz</I> or <I>couple</I> or <I>tchain</I> or <I>pchain</I> or <I>mtk</I> or <I>tloop</I> or <I>ploop</I> or <I>nreset</I> or <I>drag</I> or <I>dilate</I>
|
||||
<I>temp</I> values = Tstart Tstop Tdamp
|
||||
Tstart,Tstop = external temperature at start/end of run
|
||||
Tdamp = temperature damping parameter (time units)
|
||||
<I>iso</I> or <I>aniso</I> or <I>tri</I> values = Pstart Pstop Pdamp
|
||||
Pstart,Pstop = scalar external pressure at start/end of run (pressure units)
|
||||
Pdamp = pressure damping parameter (time units)
|
||||
<I>x</I> or <I>y</I> or <I>z</I> or <I>xy</I> or <I>yz</I> or <I>xz</I> values = Pstart Pstop Pdamp
|
||||
Pstart,Pstop = external stress tensor component at start/end of run (pressure units)
|
||||
Pdamp = stress damping parameter (time units)
|
||||
<I>couple</I> = <I>none</I> or <I>xyz</I> or <I>xy</I> or <I>yz</I> or <I>xz</I>
|
||||
<I>tchain</I> value = length of thermostat chain (1 = single thermostat)
|
||||
<I>pchain</I> values = length of thermostat chain on barostat (0 = no thermostat)
|
||||
<I>mtk</I> value = <I>yes</I> or <I>no</I> = add in MTK adjustment term or not
|
||||
<I>tloop</I> value = number of sub-cycles to perform on thermostat
|
||||
<I>ploop</I> value = number of sub-cycles to perform on barostat thermostat
|
||||
<I>nreset</I> value = reset reference cell every this many timesteps
|
||||
<I>drag</I> value = drag factor added to barostat/thermostat (0.0 = no drag)
|
||||
<I>dilate</I> value = <I>all</I> or <I>partial</I>
|
||||
</PRE>
|
||||
|
||||
</UL>
|
||||
<P><B>Examples:</B>
|
||||
</P>
|
||||
<PRE>fix 1 all nvt/eff temp 300.0 300.0 0.1
|
||||
fix 1 part npt/eff temp 300.0 300.0 0.1 iso 0.0 0.0 1.0
|
||||
fix 2 part npt/eff temp 300.0 300.0 0.1 tri 5.0 5.0 1.0
|
||||
fix 2 ice nph/eff x 1.0 1.0 0.5 y 2.0 2.0 0.5 z 3.0 3.0 0.5 yz 0.1 0.1 0.5 xz 0.2 0.2 0.5 xy 0.3 0.3 0.5 nreset 1000
|
||||
</PRE>
|
||||
<P><B>Description:</B>
|
||||
</P>
|
||||
<P>These commands perform time integration on Nose-Hoover style
|
||||
non-Hamiltonian equations of motion which are designed to generate
|
||||
positions and velocities sampled from the canonical (nvt),
|
||||
isothermal-isobaric (npt), and isenthalpic (nph) ensembles. In addition to acting on the nuclear positions and velocities, they generate radius and radial velocities sampled for the electron wave packets in eFF. This is
|
||||
achieved by adding some dynamic variables which are coupled to the
|
||||
particle velocities (thermostatting) and simulation domain dimensions
|
||||
(barostatting). In addition to basic thermostatting and barostatting,
|
||||
these fixes can also create a chain of thermostats coupled to the
|
||||
particle thermostat, and another chain of thermostats coupled to the
|
||||
barostat variables. The barostat can be coupled to the overall box
|
||||
volume, or to individual dimensions, including the <I>xy</I>, <I>xz</I> and <I>yz</I>
|
||||
tilt dimensions. The external pressure of the barostat can be
|
||||
specified as either a scalar pressure (isobaric ensemble) or as
|
||||
components of a symmetric stress tensor (constant stress ensemble).
|
||||
The user must be cautious when using very high anisotropic pressures, since the spherical Gaussians that represent the electrons in eFF will not deform anisotropically. When used 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 HREF = "#Shinoda">(Shinoda)</A>, which combine the hydrostatic equations of
|
||||
Martyna, Tobias and Klein in <A HREF = "#Martyna">(Martyna)</A> with the strain
|
||||
energy proposed by Parrinello and Rahman in
|
||||
<A HREF = "#Parrinello">(Parrinello)</A>. The time integration schemes closely
|
||||
follow the time-reversible measure-preserving Verlet and
|
||||
rRESPA integrators derived by Tuckerman et al. in <A HREF = "#Tuckerman">(Tuckerman)</A>.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<P>The thermostat for fix styles <I>nvt</I> and <I>npt</I> is specified using the
|
||||
<I>temp</I> keyword. Other thermostat-related keywords are <I>tchain</I>,
|
||||
<I>tloop</I> and <I>drag</I>, which are discussed below.
|
||||
</P>
|
||||
<P>The thermostat is applied to the translational degrees of freedom
|
||||
for both nuclei and electrons, and for the radial electronic degrees of freedom. The translational degrees of freedom can also have
|
||||
a bias velocity removed before thermostatting takes place; see the
|
||||
description below. The desired temperature at each timestep is a
|
||||
ramped value during the run from <I>Tstart</I> to <I>Tstop</I>. The <I>Tdamp</I>
|
||||
parameter is specified in time units and determines how rapidly the
|
||||
temperature is relaxed. For example, using the default eFF (electron) units, a value of 1.0 means to relax
|
||||
the temperature in a timespan of (roughly) 100 time steps. This is because the default time unit in eFF is fmsec, while the default timestep is set to 0.001 fmsec (see the <A HREF = "units.html">units</A> command). The atoms in the fix group are the only ones whose velocities (including the radial electronic velocities) and positions are updated
|
||||
by the velocity/position update portion of the integration.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<P>The barostat for fix styles <I>npt/eff</I> and <I>nph/eff</I> is specified using one or
|
||||
more of the <I>iso</I>, <I>aniso</I>, <I>tri</I>, <I>x</I>, <I>y</I>, <I>z</I>, <I>xy</I>, <I>xz</I>, <I>yz</I>,
|
||||
and <I>couple</I> keywords. These keywords give you the ability to specify
|
||||
all 6 components of an external stress tensor, and to couple various
|
||||
of these components together so that the dimensions they represent are
|
||||
varied together during a constant-pressure simulation. Again, results with stress tensors containing large anisotropic character should be read with caution in the current eFF formulation.
|
||||
</P>
|
||||
<P>Other barostat-related keywords are <I>pchain</I>, <I>mtk</I>, <I>ploop</I>,
|
||||
<I>nreset</I>, <I>drag</I>, and <I>dilate</I>, which are discussed below.
|
||||
</P>
|
||||
<P>Orthogonal simulation boxes have 3 adjustable dimensions (x,y,z).
|
||||
Triclinic (non-orthogonal) simulation boxes have 6 adjustable
|
||||
dimensions (x,y,z,xy,xz,yz). The <A HREF = "create_box.html">create_box</A>, <A HREF = "read_data.html">read
|
||||
data</A>, and <A HREF = "read_restart.html">read_restart</A> commands
|
||||
specify whether the simulation box is orthogonal or non-orthogonal
|
||||
(triclinic) and explain the meaning of the xy,xz,yz tilt factors.
|
||||
</P>
|
||||
<P>The target pressures for each of the 6 components of the stress tensor
|
||||
can be specified independently via the <I>x</I>, <I>y</I>, <I>z</I>, <I>xy</I>, <I>xz</I>, <I>yz</I>
|
||||
keywords, which correspond to the 6 simulation box dimensions. For
|
||||
each component, the external pressure or tensor component at each
|
||||
timestep is a ramped value during the run from <I>Pstart</I> to <I>Pstop</I>.
|
||||
If a target pressure is specified for a component, then the
|
||||
corresponding box dimension will change during a simulation. For
|
||||
example, if the <I>y</I> keyword is used, the y-box length will change. If
|
||||
the <I>xy</I> keyword is used, the xy tilt factor will change. A box
|
||||
dimension will not change if that component is not specified, although
|
||||
you have the option to change that dimension via the <A HREF = "fix_deform_eff.html">fix
|
||||
deform/eff</A> command.
|
||||
</P>
|
||||
<P>Note that in order to use the <I>xy</I>, <I>xz</I>, or <I>yz</I> keywords, the
|
||||
simulation box must be triclinic, even if its initial tilt factors are
|
||||
0.0.
|
||||
</P>
|
||||
<P>For all barostat keywords, the <I>Pdamp</I> parameter operates like the
|
||||
<I>Tdamp</I> parameter, determining the time scale on which pressure is
|
||||
relaxed. For example, a value of 1.0 means to relax the pressure
|
||||
in a timespan of (roughly) 1000 timesteps for the eFF default time unit (fmsec - see
|
||||
the <A HREF = "units.html">units</A> command), considering the default timestep is 0.001.
|
||||
</P>
|
||||
<P>Regardless of what atoms are in the fix group, a global pressure or
|
||||
stress tensor is computed for all atoms. Similarly, when the size of
|
||||
the simulation box is changed, all atoms are re-scaled to new
|
||||
positions, unless the keyword <I>dilate</I> is specified with a value of
|
||||
<I>partial</I>, in which case only the atoms in the fix group are
|
||||
re-scaled. The latter can be useful for leaving the coordinates of
|
||||
atoms in a solid substrate unchanged and controlling the pressure of a
|
||||
surrounding fluid.
|
||||
</P>
|
||||
<P>IMPORTANT NOTE: there are two different pressures that can be reported for eFF when defining the pair_style (see <A HREF = "pair_eff_cut.html">pair eff/cut</A> to understand these settings), one (default) that considers electrons do not contribute radial virial components (i.e. electrons treated as incompressible 'rigid' spheres) and one that does. The radial electronic contributions to the virials are only tallied if the flexible pressure option is set, and this will affect both global and per-atom quantities. In principle, the true pressure of a system is somewhere in between the rigid and the flexible eFF pressures, but, for most cases, the difference between these two pressures will not be significant over long-term averaged runs (i.e. even though the energy partitioning changes, the total energy remains similar).
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<P>The <I>couple</I> keyword allows two or three of the diagonal components of
|
||||
the pressure tensor to be "coupled" together. The value specified
|
||||
with the keyword determines which are coupled. For example, <I>xz</I>
|
||||
means the <I>Pxx</I> and <I>Pzz</I> components of the stress tensor are coupled.
|
||||
<I>Xyz</I> means all 3 diagonal components are coupled. Coupling means two
|
||||
things: the instantaneous stress will be computed as an average of the
|
||||
corresponding diagonal components, and the coupled box dimensions will
|
||||
be changed together in lockstep, meaning coupled dimensions will be
|
||||
dilated or contracted by the same percentage every timestep. The
|
||||
<I>Pstart</I>, <I>Pstop</I>, <I>Pdamp</I> parameters for any coupled dimensions must
|
||||
be identical. <I>Couple xyz</I> can be used for a 2d simulation; the <I>z</I>
|
||||
dimension is simply ignored.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<P>The <I>iso</I>, <I>aniso</I>, and <I>tri</I> keywords are simply shortcuts that are
|
||||
equivalent to specifying several other keywords together.
|
||||
</P>
|
||||
<P>The keyword <I>iso</I> means couple all 3 diagonal components together when
|
||||
pressure is computed (hydrostatic pressure), and dilate/contract the
|
||||
dimensions together. Using "iso Pstart Pstop Pdamp" is the same as
|
||||
specifying these 4 keywords:
|
||||
</P>
|
||||
<PRE>x Pstart Pstop Pdamp
|
||||
y Pstart Pstop Pdamp
|
||||
z Pstart Pstop Pdamp
|
||||
couple xyz
|
||||
</PRE>
|
||||
<P>The keyword <I>aniso</I> means <I>x</I>, <I>y</I>, and <I>z</I> dimensions are controlled
|
||||
independently using the <I>Pxx</I>, <I>Pyy</I>, and <I>Pzz</I> components of the
|
||||
stress tensor as the driving forces, and the specified scalar external
|
||||
pressure. Using "aniso Pstart Pstop Pdamp" is the same as specifying
|
||||
these 4 keywords:
|
||||
</P>
|
||||
<PRE>x Pstart Pstop Pdamp
|
||||
y Pstart Pstop Pdamp
|
||||
z Pstart Pstop Pdamp
|
||||
couple none
|
||||
</PRE>
|
||||
<P>The keyword <I>tri</I> means <I>x</I>, <I>y</I>, <I>z</I>, <I>xy</I>, <I>xz</I>, and <I>yz</I> dimensions
|
||||
are controlled independently using their individual stress components
|
||||
as the driving forces, and the specified scalar pressure as the
|
||||
external normal stress. Using "tri Pstart Pstop Pdamp" is the same as
|
||||
specifying these 7 keywords:
|
||||
</P>
|
||||
<PRE>x Pstart Pstop Pdamp
|
||||
y Pstart Pstop Pdamp
|
||||
z Pstart Pstop Pdamp
|
||||
xy 0.0 0.0 Pdamp
|
||||
yz 0.0 0.0 Pdamp
|
||||
xz 0.0 0.0 Pdamp
|
||||
couple none
|
||||
</PRE>
|
||||
<HR>
|
||||
|
||||
<P>In some cases (e.g. for solids) the pressure (volume) and/or
|
||||
temperature of the system can oscillate undesirably when a Nose/Hoover
|
||||
barostat and thermostat is applied. The optional <I>drag</I> keyword will
|
||||
damp these oscillations, although it alters the Nose/Hoover equations.
|
||||
A value of 0.0 (no drag) leaves the Nose/Hoover formalism unchanged.
|
||||
A non-zero value adds a drag term; the larger the value specified, the
|
||||
greater the damping effect. Performing a short run and monitoring the
|
||||
pressure and temperature is the best way to determine if the drag term
|
||||
is working. Typically a value between 0.2 to 2.0 is sufficient to
|
||||
damp oscillations after a few periods. Note that use of the drag
|
||||
keyword will interfere with energy conservation and will also change
|
||||
the distribution of positions and velocities so that they do not
|
||||
correspond to the nominal NVT, NPT, or NPH ensembles.
|
||||
</P>
|
||||
<P>An alternative way to control initial oscillations is to use chain
|
||||
thermostats. The keyword <I>tchain</I> determines the number of thermostats
|
||||
in the particle thermostat. A value of 1 corresponds to the original
|
||||
Nose-Hoover thermostat. The keyword <I>pchain</I> specifies the number of
|
||||
thermostats in the chain thermostatting the barostat degrees of
|
||||
freedom. A value of 0 corresponds to no thermostatting of the
|
||||
barostat variables.
|
||||
</P>
|
||||
<P>The <I>mtk</I> keyword controls whether or not the correction terms due to
|
||||
Martyna, Tuckerman, and Klein are included in the equations of motion
|
||||
<A HREF = "#Martyna">(Martyna)</A>. Specifying <I>no</I> 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 <I>yes</I> is more correct, but in many cases the difference is
|
||||
negligible.
|
||||
</P>
|
||||
<P>The keyword <I>tloop</I> can be used to improve the accuracy of integration
|
||||
scheme at little extra cost. The initial and final updates of the
|
||||
thermostat variables are broken up into <I>tloop</I> substeps, each of
|
||||
length <I>dt</I>/<I>tloop</I>. This corresponds to using a first-order
|
||||
Suzuki-Yoshida scheme <A HREF = "#Tuckerman2006">(Tuckerman2006)</A>. The keyword
|
||||
<I>ploop</I> does the same thing for the barostat thermostat.
|
||||
</P>
|
||||
<P>The keyword <I>nreset</I> controls how often the reference dimensions used
|
||||
to define the strain energy are reset. If this keyword is not used,
|
||||
or is given a value of zero, then the reference dimensions are set to
|
||||
those of the initial simulation domain and are never changed. If the
|
||||
simulation domain changes significantly during the simulation, then
|
||||
the final average pressure tensor will differ significantly from the
|
||||
specified values of the external stress tensor. A value of <I>nstep</I>
|
||||
means that every <I>nstep</I> timesteps, the reference dimensions are set
|
||||
to those of the current simulation domain.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<P>IMPORTANT NOTE: Using a barostat coupled to tilt dimensions <I>xy</I>,
|
||||
<I>xz</I>, <I>yz</I> can sometimes result in arbitrarily large values of the
|
||||
tilt dimensions, i.e. a dramatically deformed simulation box. LAMMPS
|
||||
imposes reasonable limits on how large the tilt values can be, and
|
||||
exits with an error if these are exceeded. This error typically
|
||||
indicates that there is something badly wrong with how the simulation
|
||||
was constructed. The three most common sources of this error are
|
||||
using keyword <I>tri</I> on a liquid system, specifying an external shear
|
||||
stress tensor that exceeds the yield stress of the solid, and
|
||||
specifying values of <I>Pstart</I> that are too far from the current stress
|
||||
value. In other words, triclinic barostatting should be used with
|
||||
care. This also is true for other barostat styles, although they tend
|
||||
to be more forgiving of insults.
|
||||
</P>
|
||||
<P>IMPORTANT NOTE: Unlike the <A HREF = "fix_temp_berendsen.html">fix
|
||||
temp/berendsen</A> command which performs
|
||||
thermostatting but NO time integration, these fixes perform
|
||||
thermostatting/barostatting AND time integration. Thus you should not
|
||||
use any other time integration fix, such as <A HREF = "fix_nve_eff.html">fix nve/eff</A> on
|
||||
atoms to which this fix is applied. Likewise, the <I>temp</I> options for
|
||||
fix nvt/eff and fix npt/eff should not normally be used on atoms that also
|
||||
have their temperature controlled by another fix - e.g. by <A HREF = "fix_nh.html">fix
|
||||
langevin/eff</A> or <A HREF = "fix_temp_rescale.html">fix temp/rescale</A>
|
||||
commands.
|
||||
</P>
|
||||
<P>IMPORTANT NOTE: currently, there is no available option for the user to set or create temperature distributions that include the radial electronic degrees of freedom with the <A HREF = "velocity.html">velocity</A> command, so the the user must allow for these to equilibrate (i.e. evolve thermal partitioning) through integration.
|
||||
</P>
|
||||
<P>See <A HREF = "Section_howto.html#4_16">this howto section</A> of the manual for a
|
||||
discussion of different ways to compute temperature and perform
|
||||
thermostatting and barostatting.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<P>These fixes compute a temperature and pressure each timestep. To do
|
||||
this, the fix creates its own computes of style "temp" and "pressure",
|
||||
as if one of these two sets of commands had been issued:
|
||||
</P>
|
||||
<PRE>compute fix-ID_temp group-ID temp/eff
|
||||
compute fix-ID_press group-ID pressure fix-ID_temp
|
||||
</PRE>
|
||||
<PRE>compute fix-ID_temp all temp/eff
|
||||
compute fix-ID_press all pressure fix-ID_temp
|
||||
</PRE>
|
||||
<P>See the <A HREF = "compute_temp_eff.html">compute temp/eff</A> and <A HREF = "compute_pressure.html">compute
|
||||
pressure</A> commands for details. Note that the
|
||||
IDs of the new computes are the fix-ID + underscore + "temp" or fix_ID
|
||||
+ underscore + "press". For fix nvt/eff, the group for the new computes
|
||||
is the same as the fix group. For fix nph/eff and fix npt/eff, the group for
|
||||
the new computes is "all" since pressure is computed for the entire
|
||||
system.
|
||||
</P>
|
||||
<P>Note that these are NOT the computes used by thermodynamic output (see
|
||||
the <A HREF = "thermo_style.html">thermo_style</A> command) with ID = <I>thermo_temp</I>
|
||||
and <I>thermo_press</I>. This means you can change the attributes of this
|
||||
fix's temperature or pressure via the
|
||||
<A HREF = "compute_modify.html">compute_modify</A> command or print this temperature
|
||||
or pressure during thermodynamic output via the <A HREF = "thermo_style.html">thermo_style
|
||||
custom</A> command using the appropriate compute-ID.
|
||||
It also means that changing attributes of <I>thermo_temp</I> or
|
||||
<I>thermo_press</I> will have no effect on this fix.
|
||||
</P>
|
||||
<P>Like other fixes that perform thermostatting, fix nvt/eff and fix npt/eff can
|
||||
be used with <A HREF = "compute.html">compute commands</A> that calculate a
|
||||
temperature after removing a "bias" from the atom velocities.
|
||||
E.g. removing the center-of-mass velocity from a group of atoms or
|
||||
only calculating temperature on the x-component of velocity or only
|
||||
calculating temperature for atoms in a geometric region. This is not
|
||||
done by default, but only if the <A HREF = "fix_modify.html">fix_modify</A> command
|
||||
is used to assign a temperature compute to this fix that includes such
|
||||
a bias term. See the doc pages for individual <A HREF = "compute.html">compute
|
||||
commands</A> to determine which ones include a bias. In
|
||||
this case, the thermostat works in the following manner: the current
|
||||
temperature is calculated taking the bias into account, bias is
|
||||
removed from each atom, thermostatting is performed on the remaining
|
||||
thermal degrees of freedom, and the bias is added back in.
|
||||
</P>
|
||||
<P><B>Restart, fix_modify, output, run start/stop, minimize info:</B>
|
||||
</P>
|
||||
<P>These fixes writes the state of all the thermostat and barostat
|
||||
variables to <A HREF = "restart.html">binary restart files</A>. See the
|
||||
<A HREF = "read_restart.html">read_restart</A> command for info on how to re-specify
|
||||
a fix in an input script that reads a restart file, so that the
|
||||
operation of the fix continues in an uninterrupted fashion.
|
||||
</P>
|
||||
<P>The <A HREF = "fix_modify.html">fix_modify</A> <I>temp</I> and <I>press</I> options are
|
||||
supported by these fixes. You can use them to assign a
|
||||
<A HREF = "compute.html">compute</A> you have defined to this fix which will be used
|
||||
in its thermostatting or barostatting procedure, as described above.
|
||||
If you do this, note that the kinetic energy derived from the compute
|
||||
temperature should be consistent with the virial term computed using
|
||||
all atoms for the pressure. LAMMPS will warn you if you choose to
|
||||
compute temperature on a subset of atoms.
|
||||
</P>
|
||||
<P>IMPORTANT NOTE:
|
||||
</P>
|
||||
<P>IMPORTANT NOTE: If both the <I>temp</I> and <I>press</I> keywords are used in a
|
||||
single thermo_modify command (or in two separate commands), then the
|
||||
order in which the keywords are specified is important. Note that a
|
||||
<A HREF = "compute_pressure.html">pressure compute</A> defines its own temperature
|
||||
compute as an argument when it is specified. The <I>temp</I> keyword will
|
||||
override this (for the pressure compute being used by fix npt/eff), but
|
||||
only if the <I>temp</I> keyword comes after the <I>press</I> keyword. If the
|
||||
<I>temp</I> keyword comes before the <I>press</I> keyword, then the new pressure
|
||||
compute specified by the <I>press</I> keyword will be unaffected by the
|
||||
<I>temp</I> setting.
|
||||
</P>
|
||||
<P>The <A HREF = "fix_modify.html">fix_modify</A> <I>energy</I> option is supported by these
|
||||
fixes to add the energy change induced by Nose/Hoover thermostatting
|
||||
and barostatting to the system's potential energy as part of
|
||||
<A HREF = "thermo_style.html">thermodynamic output</A>.
|
||||
</P>
|
||||
<P>These fixes compute a global scalar and a global vector of quantities,
|
||||
which can be accessed by various <A HREF = "Section_howto.html#4_15">output
|
||||
commands</A>. The scalar values calculated by
|
||||
this fix are "extensive"; the vector values are "intensive".
|
||||
</P>
|
||||
<P>The scalar is the cumulative energy change due to the fix.
|
||||
</P>
|
||||
<P>The vector stores internal Nose/Hoover thermostat and barostat
|
||||
variables. The number and meaning of the vector values depends on
|
||||
which fix is used and the settings for keywords <I>tchain</I> and <I>pchain</I>,
|
||||
which specify the number of Nose/Hoover chains for the thermostat and
|
||||
barostat. If no thermostatting is done, then <I>tchain</I> is 0. If no
|
||||
barostatting is done, then <I>pchain</I> is 0. In the following list,
|
||||
"ndof" is 0, 1, 3, or 6, and is the number of degrees of freedom in
|
||||
the barostat. Its value is 0 if no barostat is used, else its value
|
||||
is 6 if any off-diagonal stress tensor component is barostatted, else
|
||||
its value is 1 if <I>couple xyz</I> is used or <I>couple xy</I> for a 2d
|
||||
simulation, otherwise its value is 3.
|
||||
</P>
|
||||
<P>The order of values in the global vector and their meaning is as
|
||||
follows. The notation means there are tchain values for eta, followed
|
||||
by tchain for eta_dot, followed by ndof for omega, etc:
|
||||
</P>
|
||||
<UL><LI>eta[tchain] = particle thermostat displacements
|
||||
<LI>eta_dot[tchain] = particle thermostat velocities
|
||||
<LI>omega[ndof] = barostat displacements
|
||||
<LI>omega_dot[ndof] = barostat velocities
|
||||
<LI>etap[pchain] = barostat thermostat displacements
|
||||
<LI>etap_dot[pchain] = barostat thermostat velocities
|
||||
<LI>PE_eta[tchain] = potential energy of each particle thermostat displacement
|
||||
<LI>KE_eta_dot[tchain] = kinetic energy of each particle thermostat velocity
|
||||
<LI>PE_omega[ndof] = potential energy of each barostat displacement
|
||||
<LI>KE_omega_dot[ndof] = kinetic energy of each barostat velocity
|
||||
<LI>PE_etap[pchain] = potential energy of each barostat thermostat displacement
|
||||
<LI>KE_etap_dot[pchain] = kinetic energy of each barostat thermostat velocity
|
||||
<LI>PE_strain[1] = scalar strain energy
|
||||
</UL>
|
||||
<P>These fixes can ramp their external temperature and pressure over
|
||||
multiple runs, using the <I>start</I> and <I>stop</I> keywords of the
|
||||
<A HREF = "run.html">run</A> command. See the <A HREF = "run.html">run</A> command for details of
|
||||
how to do this.
|
||||
</P>
|
||||
<P>These fixes are not invoked during <A HREF = "minimize.html">energy
|
||||
minimization</A>.
|
||||
</P>
|
||||
<P>These fixes can be used with either the <I>verlet</I> or <I>respa</I>
|
||||
<A HREF = "run_style.html">integrators</A>. When using one of the barostat fixes
|
||||
with <I>respa</I>, LAMMPS uses an integrator constructed
|
||||
according to the following factorization of the Liouville propagator
|
||||
(for two rRESPA levels):
|
||||
</P>
|
||||
<CENTER><IMG SRC = "Eqs/fix_nh1.jpg">
|
||||
</CENTER>
|
||||
<P>This factorization differs somewhat from that of Tuckerman et al., in that
|
||||
the barostat is only updated at the outermost rRESPA level, whereas
|
||||
Tuckerman's factorization requires splitting the pressure into pieces
|
||||
corresponding to the forces computed at each rRESPA level. In theory, the
|
||||
latter method will exhibit better numerical stability. In practice,
|
||||
because Pdamp is normally chosen to be a large multiple of 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>
|
||||
<P>IMPORTANT NOTE: using the <I>respa</I> integrator may be useful for the simulations that sample the electronic motions at a faster pace than the nuclear motions.
|
||||
</P>
|
||||
<P><B>Restrictions:</B>
|
||||
</P>
|
||||
<P>This fix is part of the "user-eff" package. It is only enabled if
|
||||
LAMMPS was built with that package. See the <A HREF = "Section_start.html#2_3">Making
|
||||
LAMMPS</A> section for more info.
|
||||
</P>
|
||||
<P>Non-periodic dimensions cannot be barostatted. <I>Z</I>, <I>xz</I>, and <I>yz</I>,
|
||||
cannot be barostatted 2D simulations. <I>Xy</I>, <I>xz</I>, and <I>yz</I> can only
|
||||
be barostatted if the simulation domain is triclinic and the 2nd
|
||||
dimension in the keyword (<I>y</I> dimension in <I>xy</I>) is periodic. The
|
||||
<A HREF = "create_box.html">create_box</A>, <A HREF = "read_data.html">read data</A>, and
|
||||
<A HREF = "read_restart.html">read_restart</A> commands specify whether the
|
||||
simulation box is orthogonal or non-orthogonal (triclinic) and explain
|
||||
the meaning of the xy,xz,yz tilt factors.
|
||||
</P>
|
||||
<P>For the <I>temp</I> keyword, the final Tstop cannot be 0.0 since it would
|
||||
make the external T = 0.0 at some timestep during the simulation which
|
||||
is not allowed in the Nose/Hoover formulation.
|
||||
</P>
|
||||
<P>IMPORTANT NOTE: The temperature for systems (regions or groups) with only electrons is not defined in the current temperature calculations, a practical example would be a uniform electron gas or a very hot plasma, where electrons remain delocalized from the nuclei. This is because, even though electron virials are included in the temperature calculation, these are averaged over the nuclear degrees of freedom only. In such cases a corrective term must be added to the pressure to get the correct kinetic contribution.
|
||||
</P>
|
||||
<P><B>Related commands:</B>
|
||||
</P>
|
||||
<P><A HREF = "fix_nve_eff.html">fix nve/eff</A>, <A HREF = "fix_modify.html">fix_modify</A>, <A HREF = "run_style.html">run_style</A>
|
||||
</P>
|
||||
<P><B>Default:</B>
|
||||
</P>
|
||||
<P>The keyword defaults are tchain = 3, pchain = 3, mtk = yes, tloop =
|
||||
ploop = 1, nreset = 0, drag = 0.0, dilate = all, and couple = none.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<A NAME = "Martyna"></A>
|
||||
|
||||
<P><B>(Martyna)</B> Martyna, Tobias and Klein, J Chem Phys, 101, 4177 (1994).
|
||||
</P>
|
||||
<A NAME = "Parrinello"></A>
|
||||
|
||||
<P><B>(Parrinello)</B> Parrinello and Rahman, J Appl Phys, 52, 7182 (1981).
|
||||
</P>
|
||||
<A NAME = "Tuckerman"></A>
|
||||
|
||||
<P><B>(Tuckerman)</B> Tuckerman, Alejandre, Lopez-Rendon, Jochim, and
|
||||
Martyna, J Phys A: Math Gen, 39, 5629 (2006).
|
||||
</P>
|
||||
<A NAME = "Shinoda"></A>
|
||||
|
||||
<P><B>(Shinoda)</B> Shinoda, Shiga, and Mikami, Phys Rev B, 69, 134103 (2004).
|
||||
</P>
|
||||
</HTML>
|
|
@ -0,0 +1,471 @@
|
|||
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Section_commands.html#comm)
|
||||
|
||||
:line
|
||||
|
||||
fix nvt/eff command :h3
|
||||
fix npt/eff command :h3
|
||||
fix nph/eff command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
fix ID group-ID style_name keyword value ... :pre
|
||||
|
||||
ID, group-ID are documented in "fix"_fix.html command :ulb,l
|
||||
style_name = {nvt/eff} or {npt/eff} or {nph/eff} :l
|
||||
one or more keyword value pairs may be appended
|
||||
keyword = {temp} or {iso} or {aniso} or {tri} or {x} or {y} or {z} or {xy} or {yz} or {xz} or {couple} or {tchain} or {pchain} or {mtk} or {tloop} or {ploop} or {nreset} or {drag} or {dilate}
|
||||
{temp} values = Tstart Tstop Tdamp
|
||||
Tstart,Tstop = external temperature at start/end of run
|
||||
Tdamp = temperature damping parameter (time units)
|
||||
{iso} or {aniso} or {tri} values = Pstart Pstop Pdamp
|
||||
Pstart,Pstop = scalar external pressure at start/end of run (pressure units)
|
||||
Pdamp = pressure damping parameter (time units)
|
||||
{x} or {y} or {z} or {xy} or {yz} or {xz} values = Pstart Pstop Pdamp
|
||||
Pstart,Pstop = external stress tensor component at start/end of run (pressure units)
|
||||
Pdamp = stress damping parameter (time units)
|
||||
{couple} = {none} or {xyz} or {xy} or {yz} or {xz}
|
||||
{tchain} value = length of thermostat chain (1 = single thermostat)
|
||||
{pchain} values = length of thermostat chain on barostat (0 = no thermostat)
|
||||
{mtk} value = {yes} or {no} = add in MTK adjustment term or not
|
||||
{tloop} value = number of sub-cycles to perform on thermostat
|
||||
{ploop} value = number of sub-cycles to perform on barostat thermostat
|
||||
{nreset} value = reset reference cell every this many timesteps
|
||||
{drag} value = drag factor added to barostat/thermostat (0.0 = no drag)
|
||||
{dilate} value = {all} or {partial} :pre
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
fix 1 all nvt/eff temp 300.0 300.0 0.1
|
||||
fix 1 part npt/eff temp 300.0 300.0 0.1 iso 0.0 0.0 1.0
|
||||
fix 2 part npt/eff temp 300.0 300.0 0.1 tri 5.0 5.0 1.0
|
||||
fix 2 ice nph/eff x 1.0 1.0 0.5 y 2.0 2.0 0.5 z 3.0 3.0 0.5 yz 0.1 0.1 0.5 xz 0.2 0.2 0.5 xy 0.3 0.3 0.5 nreset 1000 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
These commands perform time integration on Nose-Hoover style
|
||||
non-Hamiltonian equations of motion which are designed to generate
|
||||
positions and velocities sampled from the canonical (nvt),
|
||||
isothermal-isobaric (npt), and isenthalpic (nph) ensembles. In addition to acting on the nuclear positions and velocities, they generate radius and radial velocities sampled for the electron wave packets in eFF. This is
|
||||
achieved by adding some dynamic variables which are coupled to the
|
||||
particle velocities (thermostatting) and simulation domain dimensions
|
||||
(barostatting). In addition to basic thermostatting and barostatting,
|
||||
these fixes can also create a chain of thermostats coupled to the
|
||||
particle thermostat, and another chain of thermostats coupled to the
|
||||
barostat variables. The barostat can be coupled to the overall box
|
||||
volume, or to individual dimensions, including the {xy}, {xz} and {yz}
|
||||
tilt dimensions. The external pressure of the barostat can be
|
||||
specified as either a scalar pressure (isobaric ensemble) or as
|
||||
components of a symmetric stress tensor (constant stress ensemble).
|
||||
The user must be cautious when using very high anisotropic pressures, since the spherical Gaussians that represent the electrons in eFF will not deform anisotropically. When used correctly, the time-averaged temperature and stress tensor
|
||||
of the particles will match the target values specified by
|
||||
Tstart/Tstop and Pstart/Pstop.
|
||||
|
||||
The equations of motion used are those of Shinoda et al. in
|
||||
"(Shinoda)"_#Shinoda, which combine the hydrostatic equations of
|
||||
Martyna, Tobias and Klein in "(Martyna)"_#Martyna with the strain
|
||||
energy proposed by Parrinello and Rahman in
|
||||
"(Parrinello)"_#Parrinello. The time integration schemes closely
|
||||
follow the time-reversible measure-preserving Verlet and
|
||||
rRESPA integrators derived by Tuckerman et al. in "(Tuckerman)"_#Tuckerman.
|
||||
|
||||
:line
|
||||
|
||||
The thermostat for fix styles {nvt} and {npt} is specified using the
|
||||
{temp} keyword. Other thermostat-related keywords are {tchain},
|
||||
{tloop} and {drag}, which are discussed below.
|
||||
|
||||
The thermostat is applied to the translational degrees of freedom
|
||||
for both nuclei and electrons, and for the radial electronic degrees of freedom. The translational degrees of freedom can also have
|
||||
a bias velocity removed before thermostatting takes place; see the
|
||||
description below. The desired temperature at each timestep is a
|
||||
ramped value during the run from {Tstart} to {Tstop}. The {Tdamp}
|
||||
parameter is specified in time units and determines how rapidly the
|
||||
temperature is relaxed. For example, using the default eFF (electron) units, a value of 1.0 means to relax
|
||||
the temperature in a timespan of (roughly) 100 time steps. This is because the default time unit in eFF is fmsec, while the default timestep is set to 0.001 fmsec (see the "units"_units.html command). The atoms in the fix group are the only ones whose velocities (including the radial electronic velocities) and positions are updated
|
||||
by the velocity/position update portion of the integration.
|
||||
|
||||
:line
|
||||
|
||||
The barostat for fix styles {npt/eff} and {nph/eff} is specified using one or
|
||||
more of the {iso}, {aniso}, {tri}, {x}, {y}, {z}, {xy}, {xz}, {yz},
|
||||
and {couple} keywords. These keywords give you the ability to specify
|
||||
all 6 components of an external stress tensor, and to couple various
|
||||
of these components together so that the dimensions they represent are
|
||||
varied together during a constant-pressure simulation. Again, results with stress tensors containing large anisotropic character should be read with caution in the current eFF formulation.
|
||||
|
||||
Other barostat-related keywords are {pchain}, {mtk}, {ploop},
|
||||
{nreset}, {drag}, and {dilate}, which are discussed below.
|
||||
|
||||
Orthogonal simulation boxes have 3 adjustable dimensions (x,y,z).
|
||||
Triclinic (non-orthogonal) simulation boxes have 6 adjustable
|
||||
dimensions (x,y,z,xy,xz,yz). The "create_box"_create_box.html, "read
|
||||
data"_read_data.html, and "read_restart"_read_restart.html commands
|
||||
specify whether the simulation box is orthogonal or non-orthogonal
|
||||
(triclinic) and explain the meaning of the xy,xz,yz tilt factors.
|
||||
|
||||
The target pressures for each of the 6 components of the stress tensor
|
||||
can be specified independently via the {x}, {y}, {z}, {xy}, {xz}, {yz}
|
||||
keywords, which correspond to the 6 simulation box dimensions. For
|
||||
each component, the external pressure or tensor component at each
|
||||
timestep is a ramped value during the run from {Pstart} to {Pstop}.
|
||||
If a target pressure is specified for a component, then the
|
||||
corresponding box dimension will change during a simulation. For
|
||||
example, if the {y} keyword is used, the y-box length will change. If
|
||||
the {xy} keyword is used, the xy tilt factor will change. A box
|
||||
dimension will not change if that component is not specified, although
|
||||
you have the option to change that dimension via the "fix
|
||||
deform/eff"_fix_deform_eff.html command.
|
||||
|
||||
Note that in order to use the {xy}, {xz}, or {yz} keywords, the
|
||||
simulation box must be triclinic, even if its initial tilt factors are
|
||||
0.0.
|
||||
|
||||
For all barostat keywords, the {Pdamp} parameter operates like the
|
||||
{Tdamp} parameter, determining the time scale on which pressure is
|
||||
relaxed. For example, a value of 1.0 means to relax the pressure
|
||||
in a timespan of (roughly) 1000 timesteps for the eFF default time unit (fmsec - see
|
||||
the "units"_units.html command), considering the default timestep is 0.001.
|
||||
|
||||
Regardless of what atoms are in the fix group, a global pressure or
|
||||
stress tensor is computed for all atoms. Similarly, when the size of
|
||||
the simulation box is changed, all atoms are re-scaled to new
|
||||
positions, unless the keyword {dilate} is specified with a value of
|
||||
{partial}, in which case only the atoms in the fix group are
|
||||
re-scaled. The latter can be useful for leaving the coordinates of
|
||||
atoms in a solid substrate unchanged and controlling the pressure of a
|
||||
surrounding fluid.
|
||||
|
||||
IMPORTANT NOTE: there are two different pressures that can be reported for eFF when defining the pair_style (see "pair eff/cut"_pair_eff_cut.html to understand these settings), one (default) that considers electrons do not contribute radial virial components (i.e. electrons treated as incompressible 'rigid' spheres) and one that does. The radial electronic contributions to the virials are only tallied if the flexible pressure option is set, and this will affect both global and per-atom quantities. In principle, the true pressure of a system is somewhere in between the rigid and the flexible eFF pressures, but, for most cases, the difference between these two pressures will not be significant over long-term averaged runs (i.e. even though the energy partitioning changes, the total energy remains similar).
|
||||
|
||||
:line
|
||||
|
||||
The {couple} keyword allows two or three of the diagonal components of
|
||||
the pressure tensor to be "coupled" together. The value specified
|
||||
with the keyword determines which are coupled. For example, {xz}
|
||||
means the {Pxx} and {Pzz} components of the stress tensor are coupled.
|
||||
{Xyz} means all 3 diagonal components are coupled. Coupling means two
|
||||
things: the instantaneous stress will be computed as an average of the
|
||||
corresponding diagonal components, and the coupled box dimensions will
|
||||
be changed together in lockstep, meaning coupled dimensions will be
|
||||
dilated or contracted by the same percentage every timestep. The
|
||||
{Pstart}, {Pstop}, {Pdamp} parameters for any coupled dimensions must
|
||||
be identical. {Couple xyz} can be used for a 2d simulation; the {z}
|
||||
dimension is simply ignored.
|
||||
|
||||
:line
|
||||
|
||||
The {iso}, {aniso}, and {tri} keywords are simply shortcuts that are
|
||||
equivalent to specifying several other keywords together.
|
||||
|
||||
The keyword {iso} means couple all 3 diagonal components together when
|
||||
pressure is computed (hydrostatic pressure), and dilate/contract the
|
||||
dimensions together. Using "iso Pstart Pstop Pdamp" is the same as
|
||||
specifying these 4 keywords:
|
||||
|
||||
x Pstart Pstop Pdamp
|
||||
y Pstart Pstop Pdamp
|
||||
z Pstart Pstop Pdamp
|
||||
couple xyz :pre
|
||||
|
||||
The keyword {aniso} means {x}, {y}, and {z} dimensions are controlled
|
||||
independently using the {Pxx}, {Pyy}, and {Pzz} components of the
|
||||
stress tensor as the driving forces, and the specified scalar external
|
||||
pressure. Using "aniso Pstart Pstop Pdamp" is the same as specifying
|
||||
these 4 keywords:
|
||||
|
||||
x Pstart Pstop Pdamp
|
||||
y Pstart Pstop Pdamp
|
||||
z Pstart Pstop Pdamp
|
||||
couple none :pre
|
||||
|
||||
The keyword {tri} means {x}, {y}, {z}, {xy}, {xz}, and {yz} dimensions
|
||||
are controlled independently using their individual stress components
|
||||
as the driving forces, and the specified scalar pressure as the
|
||||
external normal stress. Using "tri Pstart Pstop Pdamp" is the same as
|
||||
specifying these 7 keywords:
|
||||
|
||||
x Pstart Pstop Pdamp
|
||||
y Pstart Pstop Pdamp
|
||||
z Pstart Pstop Pdamp
|
||||
xy 0.0 0.0 Pdamp
|
||||
yz 0.0 0.0 Pdamp
|
||||
xz 0.0 0.0 Pdamp
|
||||
couple none :pre
|
||||
|
||||
:line
|
||||
|
||||
In some cases (e.g. for solids) the pressure (volume) and/or
|
||||
temperature of the system can oscillate undesirably when a Nose/Hoover
|
||||
barostat and thermostat is applied. The optional {drag} keyword will
|
||||
damp these oscillations, although it alters the Nose/Hoover equations.
|
||||
A value of 0.0 (no drag) leaves the Nose/Hoover formalism unchanged.
|
||||
A non-zero value adds a drag term; the larger the value specified, the
|
||||
greater the damping effect. Performing a short run and monitoring the
|
||||
pressure and temperature is the best way to determine if the drag term
|
||||
is working. Typically a value between 0.2 to 2.0 is sufficient to
|
||||
damp oscillations after a few periods. Note that use of the drag
|
||||
keyword will interfere with energy conservation and will also change
|
||||
the distribution of positions and velocities so that they do not
|
||||
correspond to the nominal NVT, NPT, or NPH ensembles.
|
||||
|
||||
An alternative way to control initial oscillations is to use chain
|
||||
thermostats. The keyword {tchain} determines the number of thermostats
|
||||
in the particle thermostat. A value of 1 corresponds to the original
|
||||
Nose-Hoover thermostat. The keyword {pchain} specifies the number of
|
||||
thermostats in the chain thermostatting the barostat degrees of
|
||||
freedom. A value of 0 corresponds to no thermostatting of the
|
||||
barostat variables.
|
||||
|
||||
The {mtk} keyword controls whether or not the correction terms due to
|
||||
Martyna, Tuckerman, and Klein are included in the equations of motion
|
||||
"(Martyna)"_#Martyna. Specifying {no} 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 {yes} is more correct, but in many cases the difference is
|
||||
negligible.
|
||||
|
||||
The keyword {tloop} can be used to improve the accuracy of integration
|
||||
scheme at little extra cost. The initial and final updates of the
|
||||
thermostat variables are broken up into {tloop} substeps, each of
|
||||
length {dt}/{tloop}. This corresponds to using a first-order
|
||||
Suzuki-Yoshida scheme "(Tuckerman2006)"_#Tuckerman2006. The keyword
|
||||
{ploop} does the same thing for the barostat thermostat.
|
||||
|
||||
The keyword {nreset} controls how often the reference dimensions used
|
||||
to define the strain energy are reset. If this keyword is not used,
|
||||
or is given a value of zero, then the reference dimensions are set to
|
||||
those of the initial simulation domain and are never changed. If the
|
||||
simulation domain changes significantly during the simulation, then
|
||||
the final average pressure tensor will differ significantly from the
|
||||
specified values of the external stress tensor. A value of {nstep}
|
||||
means that every {nstep} timesteps, the reference dimensions are set
|
||||
to those of the current simulation domain.
|
||||
|
||||
:line
|
||||
|
||||
IMPORTANT NOTE: Using a barostat coupled to tilt dimensions {xy},
|
||||
{xz}, {yz} can sometimes result in arbitrarily large values of the
|
||||
tilt dimensions, i.e. a dramatically deformed simulation box. LAMMPS
|
||||
imposes reasonable limits on how large the tilt values can be, and
|
||||
exits with an error if these are exceeded. This error typically
|
||||
indicates that there is something badly wrong with how the simulation
|
||||
was constructed. The three most common sources of this error are
|
||||
using keyword {tri} on a liquid system, specifying an external shear
|
||||
stress tensor that exceeds the yield stress of the solid, and
|
||||
specifying values of {Pstart} that are too far from the current stress
|
||||
value. In other words, triclinic barostatting should be used with
|
||||
care. This also is true for other barostat styles, although they tend
|
||||
to be more forgiving of insults.
|
||||
|
||||
IMPORTANT NOTE: Unlike the "fix
|
||||
temp/berendsen"_fix_temp_berendsen.html command which performs
|
||||
thermostatting but NO time integration, these fixes perform
|
||||
thermostatting/barostatting AND time integration. Thus you should not
|
||||
use any other time integration fix, such as "fix nve/eff"_fix_nve_eff.html on
|
||||
atoms to which this fix is applied. Likewise, the {temp} options for
|
||||
fix nvt/eff and fix npt/eff should not normally be used on atoms that also
|
||||
have their temperature controlled by another fix - e.g. by "fix
|
||||
langevin/eff"_fix_nh.html or "fix temp/rescale"_fix_temp_rescale.html
|
||||
commands.
|
||||
|
||||
IMPORTANT NOTE: currently, there is no available option for the user to set or create temperature distributions that include the radial electronic degrees of freedom with the "velocity"_velocity.html command, so the the user must allow for these to equilibrate (i.e. evolve thermal partitioning) through integration.
|
||||
|
||||
See "this howto section"_Section_howto.html#4_16 of the manual for a
|
||||
discussion of different ways to compute temperature and perform
|
||||
thermostatting and barostatting.
|
||||
|
||||
:line
|
||||
|
||||
These fixes compute a temperature and pressure each timestep. To do
|
||||
this, the fix creates its own computes of style "temp" and "pressure",
|
||||
as if one of these two sets of commands had been issued:
|
||||
|
||||
compute fix-ID_temp group-ID temp/eff
|
||||
compute fix-ID_press group-ID pressure fix-ID_temp :pre
|
||||
|
||||
compute fix-ID_temp all temp/eff
|
||||
compute fix-ID_press all pressure fix-ID_temp :pre
|
||||
|
||||
See the "compute temp/eff"_compute_temp_eff.html and "compute
|
||||
pressure"_compute_pressure.html commands for details. Note that the
|
||||
IDs of the new computes are the fix-ID + underscore + "temp" or fix_ID
|
||||
+ underscore + "press". For fix nvt/eff, the group for the new computes
|
||||
is the same as the fix group. For fix nph/eff and fix npt/eff, the group for
|
||||
the new computes is "all" since pressure is computed for the entire
|
||||
system.
|
||||
|
||||
Note that these are NOT the computes used by thermodynamic output (see
|
||||
the "thermo_style"_thermo_style.html command) with ID = {thermo_temp}
|
||||
and {thermo_press}. This means you can change the attributes of this
|
||||
fix's temperature or pressure via the
|
||||
"compute_modify"_compute_modify.html command or print this temperature
|
||||
or pressure during thermodynamic output via the "thermo_style
|
||||
custom"_thermo_style.html command using the appropriate compute-ID.
|
||||
It also means that changing attributes of {thermo_temp} or
|
||||
{thermo_press} will have no effect on this fix.
|
||||
|
||||
Like other fixes that perform thermostatting, fix nvt/eff and fix npt/eff can
|
||||
be used with "compute commands"_compute.html that calculate a
|
||||
temperature after removing a "bias" from the atom velocities.
|
||||
E.g. removing the center-of-mass velocity from a group of atoms or
|
||||
only calculating temperature on the x-component of velocity or only
|
||||
calculating temperature for atoms in a geometric region. This is not
|
||||
done by default, but only if the "fix_modify"_fix_modify.html command
|
||||
is used to assign a temperature compute to this fix that includes such
|
||||
a bias term. See the doc pages for individual "compute
|
||||
commands"_compute.html to determine which ones include a bias. In
|
||||
this case, the thermostat works in the following manner: the current
|
||||
temperature is calculated taking the bias into account, bias is
|
||||
removed from each atom, thermostatting is performed on the remaining
|
||||
thermal degrees of freedom, and the bias is added back in.
|
||||
|
||||
[Restart, fix_modify, output, run start/stop, minimize info:]
|
||||
|
||||
These fixes writes the state of all the thermostat and barostat
|
||||
variables to "binary restart files"_restart.html. See the
|
||||
"read_restart"_read_restart.html command for info on how to re-specify
|
||||
a fix in an input script that reads a restart file, so that the
|
||||
operation of the fix continues in an uninterrupted fashion.
|
||||
|
||||
The "fix_modify"_fix_modify.html {temp} and {press} options are
|
||||
supported by these fixes. You can use them to assign a
|
||||
"compute"_compute.html you have defined to this fix which will be used
|
||||
in its thermostatting or barostatting procedure, as described above.
|
||||
If you do this, note that the kinetic energy derived from the compute
|
||||
temperature should be consistent with the virial term computed using
|
||||
all atoms for the pressure. LAMMPS will warn you if you choose to
|
||||
compute temperature on a subset of atoms.
|
||||
|
||||
IMPORTANT NOTE:
|
||||
|
||||
IMPORTANT NOTE: If both the {temp} and {press} keywords are used in a
|
||||
single thermo_modify command (or in two separate commands), then the
|
||||
order in which the keywords are specified is important. Note that a
|
||||
"pressure compute"_compute_pressure.html defines its own temperature
|
||||
compute as an argument when it is specified. The {temp} keyword will
|
||||
override this (for the pressure compute being used by fix npt/eff), but
|
||||
only if the {temp} keyword comes after the {press} keyword. If the
|
||||
{temp} keyword comes before the {press} keyword, then the new pressure
|
||||
compute specified by the {press} keyword will be unaffected by the
|
||||
{temp} setting.
|
||||
|
||||
The "fix_modify"_fix_modify.html {energy} option is supported by these
|
||||
fixes to add the energy change induced by Nose/Hoover thermostatting
|
||||
and barostatting to the system's potential energy as part of
|
||||
"thermodynamic output"_thermo_style.html.
|
||||
|
||||
These fixes compute a global scalar and a global vector of quantities,
|
||||
which can be accessed by various "output
|
||||
commands"_Section_howto.html#4_15. The scalar values calculated by
|
||||
this fix are "extensive"; the vector values are "intensive".
|
||||
|
||||
The scalar is the cumulative energy change due to the fix.
|
||||
|
||||
The vector stores internal Nose/Hoover thermostat and barostat
|
||||
variables. The number and meaning of the vector values depends on
|
||||
which fix is used and the settings for keywords {tchain} and {pchain},
|
||||
which specify the number of Nose/Hoover chains for the thermostat and
|
||||
barostat. If no thermostatting is done, then {tchain} is 0. If no
|
||||
barostatting is done, then {pchain} is 0. In the following list,
|
||||
"ndof" is 0, 1, 3, or 6, and is the number of degrees of freedom in
|
||||
the barostat. Its value is 0 if no barostat is used, else its value
|
||||
is 6 if any off-diagonal stress tensor component is barostatted, else
|
||||
its value is 1 if {couple xyz} is used or {couple xy} for a 2d
|
||||
simulation, otherwise its value is 3.
|
||||
|
||||
The order of values in the global vector and their meaning is as
|
||||
follows. The notation means there are tchain values for eta, followed
|
||||
by tchain for eta_dot, followed by ndof for omega, etc:
|
||||
|
||||
eta\[tchain\] = particle thermostat displacements
|
||||
eta_dot\[tchain\] = particle thermostat velocities
|
||||
omega\[ndof\] = barostat displacements
|
||||
omega_dot\[ndof\] = barostat velocities
|
||||
etap\[pchain\] = barostat thermostat displacements
|
||||
etap_dot\[pchain\] = barostat thermostat velocities
|
||||
PE_eta\[tchain\] = potential energy of each particle thermostat displacement
|
||||
KE_eta_dot\[tchain\] = kinetic energy of each particle thermostat velocity
|
||||
PE_omega\[ndof\] = potential energy of each barostat displacement
|
||||
KE_omega_dot\[ndof\] = kinetic energy of each barostat velocity
|
||||
PE_etap\[pchain\] = potential energy of each barostat thermostat displacement
|
||||
KE_etap_dot\[pchain\] = kinetic energy of each barostat thermostat velocity
|
||||
PE_strain\[1\] = scalar strain energy :ul
|
||||
|
||||
These fixes can ramp their external temperature and pressure over
|
||||
multiple runs, using the {start} and {stop} keywords of the
|
||||
"run"_run.html command. See the "run"_run.html command for details of
|
||||
how to do this.
|
||||
|
||||
These fixes are not invoked during "energy
|
||||
minimization"_minimize.html.
|
||||
|
||||
These fixes can be used with either the {verlet} or {respa}
|
||||
"integrators"_run_style.html. When using one of the barostat fixes
|
||||
with {respa}, LAMMPS uses an integrator constructed
|
||||
according to the following factorization of the Liouville propagator
|
||||
(for two rRESPA levels):
|
||||
|
||||
:c,image(Eqs/fix_nh1.jpg)
|
||||
|
||||
This factorization differs somewhat from that of Tuckerman et al., in that
|
||||
the barostat is only updated at the outermost rRESPA level, whereas
|
||||
Tuckerman's factorization requires splitting the pressure into pieces
|
||||
corresponding to the forces computed at each rRESPA level. In theory, the
|
||||
latter method will exhibit better numerical stability. In practice,
|
||||
because Pdamp is normally chosen to be a large multiple of 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.
|
||||
|
||||
IMPORTANT NOTE: using the {respa} integrator may be useful for the simulations that sample the electronic motions at a faster pace than the nuclear motions.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This fix is part of the "user-eff" package. It is only enabled if
|
||||
LAMMPS was built with that package. See the "Making
|
||||
LAMMPS"_Section_start.html#2_3 section for more info.
|
||||
|
||||
Non-periodic dimensions cannot be barostatted. {Z}, {xz}, and {yz},
|
||||
cannot be barostatted 2D simulations. {Xy}, {xz}, and {yz} can only
|
||||
be barostatted if the simulation domain is triclinic and the 2nd
|
||||
dimension in the keyword ({y} dimension in {xy}) is periodic. The
|
||||
"create_box"_create_box.html, "read data"_read_data.html, and
|
||||
"read_restart"_read_restart.html commands specify whether the
|
||||
simulation box is orthogonal or non-orthogonal (triclinic) and explain
|
||||
the meaning of the xy,xz,yz tilt factors.
|
||||
|
||||
For the {temp} keyword, the final Tstop cannot be 0.0 since it would
|
||||
make the external T = 0.0 at some timestep during the simulation which
|
||||
is not allowed in the Nose/Hoover formulation.
|
||||
|
||||
IMPORTANT NOTE: The temperature for systems (regions or groups) with only electrons is not defined in the current temperature calculations, a practical example would be a uniform electron gas or a very hot plasma, where electrons remain delocalized from the nuclei. This is because, even though electron virials are included in the temperature calculation, these are averaged over the nuclear degrees of freedom only. In such cases a corrective term must be added to the pressure to get the correct kinetic contribution.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"fix nve/eff"_fix_nve_eff.html, "fix_modify"_fix_modify.html, "run_style"_run_style.html
|
||||
|
||||
[Default:]
|
||||
|
||||
The keyword defaults are tchain = 3, pchain = 3, mtk = yes, tloop =
|
||||
ploop = 1, nreset = 0, drag = 0.0, dilate = all, and couple = none.
|
||||
|
||||
:line
|
||||
|
||||
:link(Martyna)
|
||||
[(Martyna)] Martyna, Tobias and Klein, J Chem Phys, 101, 4177 (1994).
|
||||
|
||||
:link(Parrinello)
|
||||
[(Parrinello)] Parrinello and Rahman, J Appl Phys, 52, 7182 (1981).
|
||||
|
||||
:link(Tuckerman)
|
||||
[(Tuckerman)] Tuckerman, Alejandre, Lopez-Rendon, Jochim, and
|
||||
Martyna, J Phys A: Math Gen, 39, 5629 (2006).
|
||||
|
||||
:link(Shinoda)
|
||||
[(Shinoda)] Shinoda, Shiga, and Mikami, Phys Rev B, 69, 134103 (2004).
|
|
@ -0,0 +1,54 @@
|
|||
<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 nve/eff command
|
||||
</H3>
|
||||
<P><B>Syntax:</B>
|
||||
</P>
|
||||
<PRE>fix ID group-ID nve/eff
|
||||
</PRE>
|
||||
<UL><LI>ID, group-ID are documented in <A HREF = "fix.html">fix</A> command
|
||||
<LI>nve/eff = style name of this fix command
|
||||
</UL>
|
||||
<P><B>Examples:</B>
|
||||
</P>
|
||||
<PRE>fix 1 all nve/eff
|
||||
</PRE>
|
||||
<P><B>Description:</B>
|
||||
</P>
|
||||
<P>Perform constant NVE integration to update position and velocity for
|
||||
atoms in the group each timestep, including the translational and radial electron motions. V is volume; E is energy. This
|
||||
creates a system trajectory consistent with the microcanonical
|
||||
ensemble.
|
||||
</P>
|
||||
<P><B>Restart, fix_modify, output, run start/stop, minimize info:</B>
|
||||
</P>
|
||||
<P>No information about this fix is written to <A HREF = "restart.html">binary restart
|
||||
files</A>. None of the <A HREF = "fix_modify.html">fix_modify</A> options
|
||||
are relevant to this fix. No global or per-atom quantities are stored
|
||||
by this fix for access by various <A HREF = "Section_howto.html#4_15">output
|
||||
commands</A>. No parameter of this fix can be
|
||||
used with the <I>start/stop</I> keywords of the <A HREF = "run.html">run</A> command.
|
||||
This fix is not invoked during <A HREF = "minimize.html">energy minimization</A>.
|
||||
</P>
|
||||
<P><B>Restrictions:</B>
|
||||
</P>
|
||||
<P>This fix is part of the "user-eff" package. It is only enabled if
|
||||
LAMMPS was built with that package. See the <A HREF = "Section_start.html#2_3">Making
|
||||
LAMMPS</A> section for more info.
|
||||
</P>
|
||||
<P><B>Related commands:</B>
|
||||
</P>
|
||||
<P><A HREF = "fix_nh.html">fix nvt/eff</A>, <A HREF = "fix_nh.html">fix npt/eff</A>
|
||||
</P>
|
||||
<P><B>Default:</B> none
|
||||
</P>
|
||||
</HTML>
|
|
@ -0,0 +1,49 @@
|
|||
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Section_commands.html#comm)
|
||||
|
||||
:line
|
||||
|
||||
fix nve/eff command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
fix ID group-ID nve/eff :pre
|
||||
|
||||
ID, group-ID are documented in "fix"_fix.html command
|
||||
nve/eff = style name of this fix command :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
fix 1 all nve/eff :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Perform constant NVE integration to update position and velocity for
|
||||
atoms in the group each timestep, including the translational and radial electron motions. V is volume; E is energy. This
|
||||
creates a system trajectory consistent with the microcanonical
|
||||
ensemble.
|
||||
|
||||
[Restart, fix_modify, output, run start/stop, minimize info:]
|
||||
|
||||
No information about this fix is written to "binary restart
|
||||
files"_restart.html. None of the "fix_modify"_fix_modify.html options
|
||||
are relevant to this fix. No global or per-atom quantities are stored
|
||||
by this fix for access by various "output
|
||||
commands"_Section_howto.html#4_15. No parameter of this fix can be
|
||||
used with the {start/stop} keywords of the "run"_run.html command.
|
||||
This fix is not invoked during "energy minimization"_minimize.html.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This fix is part of the "user-eff" package. It is only enabled if
|
||||
LAMMPS was built with that package. See the "Making
|
||||
LAMMPS"_Section_start.html#2_3 section for more info.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"fix nvt/eff"_fix_nh.html, "fix npt/eff"_fix_nh.html
|
||||
|
||||
[Default:] none
|
|
@ -0,0 +1,152 @@
|
|||
<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 nvt/sllod/eff command
|
||||
</H3>
|
||||
<P><B>Syntax:</B>
|
||||
</P>
|
||||
<PRE>fix ID group-ID nvt/sllod/eff keyword value ...
|
||||
</PRE>
|
||||
<UL><LI>ID, group-ID are documented in <A HREF = "fix.html">fix</A> command
|
||||
<LI>nvt/sllod/eff = style name of this fix command
|
||||
<LI>additional thermostat related keyword/value pairs from the <A HREF = "fix_nh_eff.html">fix nvt/eff</A> command can be appended
|
||||
</UL>
|
||||
<P><B>Examples:</B>
|
||||
</P>
|
||||
<PRE>fix 1 all nvt/sllod/eff temp 300.0 300.0 0.1
|
||||
fix 1 all nvt/sllod/eff temp 300.0 300.0 0.1 drag 0.2
|
||||
</PRE>
|
||||
<P><B>Description:</B>
|
||||
</P>
|
||||
<P>Perform constant NVT integration to update positions and velocities
|
||||
each timestep for atoms in the group using a Nose/Hoover temperature
|
||||
thermostat. In eFF, this will include the radius and radial velocity of the electrons.
|
||||
V is volume; T is temperature. This creates a system
|
||||
trajectory consistent with the canonical ensemble.
|
||||
</P>
|
||||
<P>This thermostat is used for a simulation box that is changing size
|
||||
and/or shape, for example in a non-equilibrium MD (NEMD) simulation.
|
||||
The size/shape change is induced by use of the <A HREF = "fix_deform.html">fix
|
||||
deform</A> command, so each point in the simulation box
|
||||
can be thought of as having a "streaming" velocity. The streaming velocity will only affect the translational degrees of freedom in eFF. This position-dependent streaming velocity is subtracted from each atom's
|
||||
actual velocity to yield a thermal velocity which is used for
|
||||
temperature computation and thermostatting. The thermal velocity is computed over all degrees of freedom, including the electronic ones. For example, if the box
|
||||
is being sheared in x, relative to y, then points at the bottom of the
|
||||
box (low y) have a small x velocity, while points at the top of the
|
||||
box (hi y) have a large x velocity. These velocities do not
|
||||
contribute to the thermal "temperature" of the atom, hence the use of this command.
|
||||
</P>
|
||||
<P>IMPORTANT NOTE: <A HREF = "fix_deform.html">Fix deform</A> has an option for
|
||||
remapping either atom coordinates or velocities to the changing
|
||||
simulation box. To use fix nvt/sllod, fix deform should NOT remap
|
||||
atom positions, because fix nvt/sllod adjusts the atom positions and
|
||||
velocities to create a velocity profile that matches the changing box
|
||||
size/shape. Fix deform SHOULD remap atom velocities when atoms cross
|
||||
periodic boundaries since that is consistent with maintaining the
|
||||
velocity profile created by fix nvt/sllod. LAMMPS will give an
|
||||
error if this setting is not consistent.
|
||||
</P>
|
||||
<P>The SLLOD equations of motion coupled to a Nose/Hoover thermostat are
|
||||
discussed in <A HREF = "#Tuckerman">(Tuckerman)</A> (eqs 4 and 5), which is what is
|
||||
implemented in LAMMPS in a velocity Verlet formulation.
|
||||
</P>
|
||||
<P>Additional parameters affecting the thermostat are specified by
|
||||
keywords and values documented with the <A HREF = "fix_nh_eff.html">fix nvt/eff</A>
|
||||
command. See, for example, discussion of the <I>temp</I> and <I>drag</I>
|
||||
keywords.
|
||||
</P>
|
||||
<P>This fix computes a temperature each timestep. To do this, the fix
|
||||
creates its own compute of style "temp/deform/eff", as if this command had
|
||||
been issued:
|
||||
</P>
|
||||
<PRE>compute fix-ID_temp group-ID temp/deform/eff
|
||||
</PRE>
|
||||
<P>See the <A HREF = "compute_temp_deform_eff.html">compute temp/deform/eff</A> command for
|
||||
details. Note that the ID of the new compute is the fix-ID +
|
||||
underscore + "temp", and the group for the new compute is the same as
|
||||
the fix group.
|
||||
</P>
|
||||
<P>Note that this is NOT the compute used by thermodynamic output (see
|
||||
the <A HREF = "thermo_style.html">thermo_style</A> command) with ID = <I>thermo_temp</I>.
|
||||
This means you can change the attributes of this fix's temperature
|
||||
(e.g. its degrees-of-freedom) via the
|
||||
<A HREF = "compute_modify.html">compute_modify</A> command or print this temperature
|
||||
during thermodynamic output via the <A HREF = "thermo_style.html">thermo_style
|
||||
custom</A> command using the appropriate compute-ID.
|
||||
It also means that changing attributes of <I>thermo_temp</I> will have no
|
||||
effect on this fix.
|
||||
</P>
|
||||
<P>Like other fixes that perform thermostatting, this fix can be used
|
||||
with <A HREF = "compute.html">compute commands</A> that calculate a temperature
|
||||
after removing a "bias" from the atom velocities. E.g. removing the
|
||||
center-of-mass velocity from a group of atoms or only calculating
|
||||
temperature on the x-component of velocity or only calculating
|
||||
temperature for atoms in a geometric region. This is not done by
|
||||
default, but only if the <A HREF = "fix_modify.html">fix_modify</A> command is used
|
||||
to assign a temperature compute to this fix that includes such a bias
|
||||
term. See the doc pages for individual <A HREF = "compute.html">compute
|
||||
commands</A> to determine which ones include a bias. In
|
||||
this case, the thermostat works in the following manner: the current
|
||||
temperature is calculated taking the bias into account, bias is
|
||||
removed from each atom, thermostatting is performed on the remaining
|
||||
thermal degrees of freedom, and the bias is added back in.
|
||||
</P>
|
||||
<P><B>Restart, fix_modify, output, run start/stop, minimize info:</B>
|
||||
</P>
|
||||
<P>This fix writes the state of the Nose/Hoover thermostat to <A HREF = "restart.html">binary
|
||||
restart files</A>. See the <A HREF = "read_restart.html">read_restart</A>
|
||||
command for info on how to re-specify a fix in an input script that
|
||||
reads a restart file, so that the operation of the fix continues in an
|
||||
uninterrupted fashion.
|
||||
</P>
|
||||
<P>The <A HREF = "fix_modify.html">fix_modify</A> <I>temp</I> option is supported by this
|
||||
fix. You can use it to assign a <A HREF = "compute.html">compute</A> you have
|
||||
defined to this fix which will be used in its thermostatting
|
||||
procedure.
|
||||
</P>
|
||||
<P>The <A HREF = "fix_modify.html">fix_modify</A> <I>energy</I> option is supported by this
|
||||
fix to add the energy change induced by Nose/Hoover thermostatting to
|
||||
the system's potential energy as part of <A HREF = "thermo_style.html">thermodynamic
|
||||
output</A>.
|
||||
</P>
|
||||
<P>This fix computes the same global scalar and global vector of
|
||||
quantities as does the <A HREF = "fix_nh_eff.html">fix nvt/eff</A> command.
|
||||
</P>
|
||||
<P>This fix can ramp its target temperature over multiple runs, using the
|
||||
<I>start</I> and <I>stop</I> keywords of the <A HREF = "run.html">run</A> command. See the
|
||||
<A HREF = "run.html">run</A> command for details of how to do this.
|
||||
</P>
|
||||
<P>This fix is not invoked during <A HREF = "minimize.html">energy minimization</A>.
|
||||
</P>
|
||||
<P><B>Restrictions:</B>
|
||||
</P>
|
||||
<P>This fix is part of the "user-eff" package. It is only enabled if
|
||||
LAMMPS was built with that package. See the <A HREF = "Section_start.html#2_3">Making
|
||||
LAMMPS</A> section for more info.
|
||||
</P>
|
||||
<P>This fix works best without Nose-Hoover chain thermostats i.e. using tchain = 1.
|
||||
Setting tchain to larger values can result in poor equilibration.
|
||||
</P>
|
||||
<P><B>Related commands:</B>
|
||||
</P>
|
||||
<P><A HREF = "fix_nve_eff.html">fix nve/eff</A>, <A HREF = "fix_nh_eff.html">fix nvt/eff</A>, <A HREF = "fix_langevin_eff.html">fix langevin/eff</A>,
|
||||
<A HREF = "fix_modify.html">fix_modify</A>, <A HREF = "compute_temp_deform_eff.html">compute temp/deform/eff</A>
|
||||
</P>
|
||||
<P><B>Default:</B> Same as <A HREF = "fix_nh_eff.html">fix nvt/eff</A>, except tchain = 1.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<A NAME = "Tuckerman"></A>
|
||||
|
||||
<P><B>(Tuckerman)</B> Tuckerman, Mundy, Balasubramanian, Klein, J Chem Phys,
|
||||
106, 5615 (1997).
|
||||
</P>
|
||||
</HTML>
|
|
@ -0,0 +1,146 @@
|
|||
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Section_commands.html#comm)
|
||||
|
||||
:line
|
||||
|
||||
fix nvt/sllod/eff command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
fix ID group-ID nvt/sllod/eff keyword value ... :pre
|
||||
|
||||
ID, group-ID are documented in "fix"_fix.html command
|
||||
nvt/sllod/eff = style name of this fix command
|
||||
additional thermostat related keyword/value pairs from the "fix nvt/eff"_fix_nh_eff.html command can be appended :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
fix 1 all nvt/sllod/eff temp 300.0 300.0 0.1
|
||||
fix 1 all nvt/sllod/eff temp 300.0 300.0 0.1 drag 0.2 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Perform constant NVT integration to update positions and velocities
|
||||
each timestep for atoms in the group using a Nose/Hoover temperature
|
||||
thermostat. In eFF, this will include the radius and radial velocity of the electrons.
|
||||
V is volume; T is temperature. This creates a system
|
||||
trajectory consistent with the canonical ensemble.
|
||||
|
||||
This thermostat is used for a simulation box that is changing size
|
||||
and/or shape, for example in a non-equilibrium MD (NEMD) simulation.
|
||||
The size/shape change is induced by use of the "fix
|
||||
deform"_fix_deform.html command, so each point in the simulation box
|
||||
can be thought of as having a "streaming" velocity. The streaming velocity will only affect the translational degrees of freedom in eFF. This position-dependent streaming velocity is subtracted from each atom's
|
||||
actual velocity to yield a thermal velocity which is used for
|
||||
temperature computation and thermostatting. The thermal velocity is computed over all degrees of freedom, including the electronic ones. For example, if the box
|
||||
is being sheared in x, relative to y, then points at the bottom of the
|
||||
box (low y) have a small x velocity, while points at the top of the
|
||||
box (hi y) have a large x velocity. These velocities do not
|
||||
contribute to the thermal "temperature" of the atom, hence the use of this command.
|
||||
|
||||
IMPORTANT NOTE: "Fix deform"_fix_deform.html has an option for
|
||||
remapping either atom coordinates or velocities to the changing
|
||||
simulation box. To use fix nvt/sllod, fix deform should NOT remap
|
||||
atom positions, because fix nvt/sllod adjusts the atom positions and
|
||||
velocities to create a velocity profile that matches the changing box
|
||||
size/shape. Fix deform SHOULD remap atom velocities when atoms cross
|
||||
periodic boundaries since that is consistent with maintaining the
|
||||
velocity profile created by fix nvt/sllod. LAMMPS will give an
|
||||
error if this setting is not consistent.
|
||||
|
||||
The SLLOD equations of motion coupled to a Nose/Hoover thermostat are
|
||||
discussed in "(Tuckerman)"_#Tuckerman (eqs 4 and 5), which is what is
|
||||
implemented in LAMMPS in a velocity Verlet formulation.
|
||||
|
||||
Additional parameters affecting the thermostat are specified by
|
||||
keywords and values documented with the "fix nvt/eff"_fix_nh_eff.html
|
||||
command. See, for example, discussion of the {temp} and {drag}
|
||||
keywords.
|
||||
|
||||
This fix computes a temperature each timestep. To do this, the fix
|
||||
creates its own compute of style "temp/deform/eff", as if this command had
|
||||
been issued:
|
||||
|
||||
compute fix-ID_temp group-ID temp/deform/eff :pre
|
||||
|
||||
See the "compute temp/deform/eff"_compute_temp_deform_eff.html command for
|
||||
details. Note that the ID of the new compute is the fix-ID +
|
||||
underscore + "temp", and the group for the new compute is the same as
|
||||
the fix group.
|
||||
|
||||
Note that this is NOT the compute used by thermodynamic output (see
|
||||
the "thermo_style"_thermo_style.html command) with ID = {thermo_temp}.
|
||||
This means you can change the attributes of this fix's temperature
|
||||
(e.g. its degrees-of-freedom) via the
|
||||
"compute_modify"_compute_modify.html command or print this temperature
|
||||
during thermodynamic output via the "thermo_style
|
||||
custom"_thermo_style.html command using the appropriate compute-ID.
|
||||
It also means that changing attributes of {thermo_temp} will have no
|
||||
effect on this fix.
|
||||
|
||||
Like other fixes that perform thermostatting, this fix can be used
|
||||
with "compute commands"_compute.html that calculate a temperature
|
||||
after removing a "bias" from the atom velocities. E.g. removing the
|
||||
center-of-mass velocity from a group of atoms or only calculating
|
||||
temperature on the x-component of velocity or only calculating
|
||||
temperature for atoms in a geometric region. This is not done by
|
||||
default, but only if the "fix_modify"_fix_modify.html command is used
|
||||
to assign a temperature compute to this fix that includes such a bias
|
||||
term. See the doc pages for individual "compute
|
||||
commands"_compute.html to determine which ones include a bias. In
|
||||
this case, the thermostat works in the following manner: the current
|
||||
temperature is calculated taking the bias into account, bias is
|
||||
removed from each atom, thermostatting is performed on the remaining
|
||||
thermal degrees of freedom, and the bias is added back in.
|
||||
|
||||
[Restart, fix_modify, output, run start/stop, minimize info:]
|
||||
|
||||
This fix writes the state of the Nose/Hoover thermostat to "binary
|
||||
restart files"_restart.html. See the "read_restart"_read_restart.html
|
||||
command for info on how to re-specify a fix in an input script that
|
||||
reads a restart file, so that the operation of the fix continues in an
|
||||
uninterrupted fashion.
|
||||
|
||||
The "fix_modify"_fix_modify.html {temp} option is supported by this
|
||||
fix. You can use it to assign a "compute"_compute.html you have
|
||||
defined to this fix which will be used in its thermostatting
|
||||
procedure.
|
||||
|
||||
The "fix_modify"_fix_modify.html {energy} option is supported by this
|
||||
fix to add the energy change induced by Nose/Hoover thermostatting to
|
||||
the system's potential energy as part of "thermodynamic
|
||||
output"_thermo_style.html.
|
||||
|
||||
This fix computes the same global scalar and global vector of
|
||||
quantities as does the "fix nvt/eff"_fix_nh_eff.html command.
|
||||
|
||||
This fix can ramp its target temperature over multiple runs, using the
|
||||
{start} and {stop} keywords of the "run"_run.html command. See the
|
||||
"run"_run.html command for details of how to do this.
|
||||
|
||||
This fix is not invoked during "energy minimization"_minimize.html.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This fix is part of the "user-eff" package. It is only enabled if
|
||||
LAMMPS was built with that package. See the "Making
|
||||
LAMMPS"_Section_start.html#2_3 section for more info.
|
||||
|
||||
This fix works best without Nose-Hoover chain thermostats i.e. using tchain = 1.
|
||||
Setting tchain to larger values can result in poor equilibration.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"fix nve/eff"_fix_nve_eff.html, "fix nvt/eff"_fix_nh_eff.html, "fix langevin/eff"_fix_langevin_eff.html,
|
||||
"fix_modify"_fix_modify.html, "compute temp/deform/eff"_compute_temp_deform_eff.html
|
||||
|
||||
[Default:] Same as "fix nvt/eff"_fix_nh_eff.html, except tchain = 1.
|
||||
|
||||
:line
|
||||
|
||||
:link(Tuckerman)
|
||||
[(Tuckerman)] Tuckerman, Mundy, Balasubramanian, Klein, J Chem Phys,
|
||||
106, 5615 (1997).
|
|
@ -9,14 +9,14 @@
|
|||
|
||||
<HR>
|
||||
|
||||
<H3>fix temp/rescale command
|
||||
<H3>fix temp/rescale/eff command
|
||||
</H3>
|
||||
<P><B>Syntax:</B>
|
||||
</P>
|
||||
<PRE>fix ID group-ID temp/rescale N Tstart Tstop window fraction
|
||||
<PRE>fix ID group-ID temp/rescale/eff N Tstart Tstop window fraction
|
||||
</PRE>
|
||||
<UL><LI>ID, group-ID are documented in <A HREF = "fix.html">fix</A> command
|
||||
<LI>temp/rescale = style name of this fix command
|
||||
<LI>temp/rescale/eff = style name of this fix command
|
||||
<LI>N = perform rescaling every N steps
|
||||
<LI>Tstart,Tstop = desired temperature at start/end of run (temperature units)
|
||||
<LI>window = only rescale if temperature is outside this window (temperature units)
|
||||
|
@ -24,21 +24,15 @@
|
|||
</UL>
|
||||
<P><B>Examples:</B>
|
||||
</P>
|
||||
<PRE>fix 3 flow temp/rescale 100 1.0 1.1 0.02 0.5
|
||||
fix 3 boundary temp/rescale 1 1.0 1.5 0.05 1.0
|
||||
fix 3 boundary temp/rescale 1 1.0 1.5 0.05 1.0
|
||||
<PRE>fix 3 flow temp/rescale/eff 10 1.0 100.0 0.02 1.0
|
||||
</PRE>
|
||||
<P><B>Description:</B>
|
||||
</P>
|
||||
<P>Reset the temperature of a group of atoms by explicitly rescaling
|
||||
their velocities.
|
||||
</P>
|
||||
<P>The rescaling is applied to only the translational degrees of freedom
|
||||
for the particles, which is an important consideration if extended
|
||||
spherical or aspherical particles which have rotational degrees of
|
||||
freedom are being thermostatted with this fix. The translational
|
||||
degrees of freedom can also have a bias velocity removed from them
|
||||
before thermostatting takes place; see the description below.
|
||||
<P>The rescaling is applied to the translational degrees of freedom
|
||||
for all particles, and the electronic radial degrees of freedom. The translational degrees of freedom can also have a bias velocity removed from them before thermostatting takes place; see the description below.
|
||||
</P>
|
||||
<P>Rescaling is performed every N timesteps. The target temperature is a
|
||||
ramped value between the <I>Tstart</I> and <I>Tstop</I> temperatures at the
|
||||
|
@ -51,15 +45,14 @@ difference between the actual and desired temperature. E.g. if
|
|||
<I>fraction</I> = 1.0, the temperature is reset to exactly the desired
|
||||
value.
|
||||
</P>
|
||||
<P>IMPORTANT NOTE: Unlike the <A HREF = "fix_nh.html">fix nvt</A> command which
|
||||
<P>IMPORTANT NOTE: Unlike the <A HREF = "fix_nh.html">fix nvt/eff</A> command which
|
||||
performs Nose/Hoover thermostatting AND time integration, this fix
|
||||
does NOT perform time integration. It only modifies velocities to
|
||||
effect thermostatting. Thus you must use a separate time integration
|
||||
fix, like <A HREF = "fix_nve.html">fix nve</A> to actually update the positions of
|
||||
atoms using the modified velocities. Likewise, this fix should not
|
||||
fix, like <A HREF = "fix_nve_eff.html">fix nve/eff</A> to actually update the positions of atoms using the modified velocities. Likewise, this fix should not
|
||||
normally be used on atoms that also have their temperature controlled
|
||||
by another fix - e.g. by <A HREF = "fix_nh.html">fix nvt</A> or <A HREF = "fix_langevin.html">fix
|
||||
langevin</A> commands.
|
||||
by another fix - e.g. by <A HREF = "fix_nh.html">fix nvt/eff</A> or <A HREF = "fix_langevin_eff.html">fix
|
||||
langevin/eff</A> commands.
|
||||
</P>
|
||||
<P>See <A HREF = "Section_howto.html#4_16">this howto section</A> of the manual for a
|
||||
discussion of different ways to compute temperature and perform
|
||||
|
@ -69,10 +62,9 @@ thermostatting.
|
|||
creates its own compute of style "temp", as if one of this command had
|
||||
been issued:
|
||||
</P>
|
||||
<PRE>compute fix-ID_temp group-ID temp
|
||||
<PRE>compute fix-ID_temp group-ID temp/eff
|
||||
</PRE>
|
||||
<P>See the <A HREF = "compute_temp.html">compute temp</A> for details. Note that the
|
||||
ID of the new compute is the fix-ID + underscore + "temp", and the
|
||||
<P>See the <A HREF = "compute_temp_eff.html">compute temp/eff</A> for details. Note that the ID of the new compute is the fix-ID + underscore + "temp", and the
|
||||
group for the new compute is the same as the fix group.
|
||||
</P>
|
||||
<P>Note that this is NOT the compute used by thermodynamic output (see
|
||||
|
@ -127,11 +119,15 @@ calculated by this fix is "extensive".
|
|||
</P>
|
||||
<P>This fix is not invoked during <A HREF = "minimize.html">energy minimization</A>.
|
||||
</P>
|
||||
<P><B>Restrictions:</B> none
|
||||
<P><B>Restrictions:</B>
|
||||
</P>
|
||||
<P>This fix is part of the "user-eff" package. It is only enabled if
|
||||
LAMMPS was built with that package. See the <A HREF = "Section_start.html#2_3">Making
|
||||
LAMMPS</A> section for more info.
|
||||
</P>
|
||||
<P><B>Related commands:</B>
|
||||
</P>
|
||||
<P><A HREF = "fix_langevin.html">fix langevin</A>, <A HREF = "fix_nh.html">fix nvt</A>,
|
||||
<P><A HREF = "fix_langevin.html">fix langevin/eff</A>, <A HREF = "fix_nh.html">fix nvt/eff</A>,
|
||||
<A HREF = "fix_modify.html">fix_modify</A>
|
||||
</P>
|
||||
<P><B>Default:</B> none
|
||||
|
|
|
@ -6,14 +6,14 @@
|
|||
|
||||
:line
|
||||
|
||||
fix temp/rescale command :h3
|
||||
fix temp/rescale/eff command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
fix ID group-ID temp/rescale N Tstart Tstop window fraction :pre
|
||||
fix ID group-ID temp/rescale/eff N Tstart Tstop window fraction :pre
|
||||
|
||||
ID, group-ID are documented in "fix"_fix.html command
|
||||
temp/rescale = style name of this fix command
|
||||
temp/rescale/eff = style name of this fix command
|
||||
N = perform rescaling every N steps
|
||||
Tstart,Tstop = desired temperature at start/end of run (temperature units)
|
||||
window = only rescale if temperature is outside this window (temperature units)
|
||||
|
@ -21,21 +21,15 @@ fraction = rescale to target temperature by this fraction :ul
|
|||
|
||||
[Examples:]
|
||||
|
||||
fix 3 flow temp/rescale 100 1.0 1.1 0.02 0.5
|
||||
fix 3 boundary temp/rescale 1 1.0 1.5 0.05 1.0
|
||||
fix 3 boundary temp/rescale 1 1.0 1.5 0.05 1.0 :pre
|
||||
fix 3 flow temp/rescale/eff 10 1.0 100.0 0.02 1.0 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Reset the temperature of a group of atoms by explicitly rescaling
|
||||
their velocities.
|
||||
|
||||
The rescaling is applied to only the translational degrees of freedom
|
||||
for the particles, which is an important consideration if extended
|
||||
spherical or aspherical particles which have rotational degrees of
|
||||
freedom are being thermostatted with this fix. The translational
|
||||
degrees of freedom can also have a bias velocity removed from them
|
||||
before thermostatting takes place; see the description below.
|
||||
The rescaling is applied to the translational degrees of freedom
|
||||
for all particles, and the electronic radial degrees of freedom. The translational degrees of freedom can also have a bias velocity removed from them before thermostatting takes place; see the description below.
|
||||
|
||||
Rescaling is performed every N timesteps. The target temperature is a
|
||||
ramped value between the {Tstart} and {Tstop} temperatures at the
|
||||
|
@ -48,15 +42,14 @@ difference between the actual and desired temperature. E.g. if
|
|||
{fraction} = 1.0, the temperature is reset to exactly the desired
|
||||
value.
|
||||
|
||||
IMPORTANT NOTE: Unlike the "fix nvt"_fix_nh.html command which
|
||||
IMPORTANT NOTE: Unlike the "fix nvt/eff"_fix_nh.html command which
|
||||
performs Nose/Hoover thermostatting AND time integration, this fix
|
||||
does NOT perform time integration. It only modifies velocities to
|
||||
effect thermostatting. Thus you must use a separate time integration
|
||||
fix, like "fix nve"_fix_nve.html to actually update the positions of
|
||||
atoms using the modified velocities. Likewise, this fix should not
|
||||
fix, like "fix nve/eff"_fix_nve_eff.html to actually update the positions of atoms using the modified velocities. Likewise, this fix should not
|
||||
normally be used on atoms that also have their temperature controlled
|
||||
by another fix - e.g. by "fix nvt"_fix_nh.html or "fix
|
||||
langevin"_fix_langevin.html commands.
|
||||
by another fix - e.g. by "fix nvt/eff"_fix_nh.html or "fix
|
||||
langevin/eff"_fix_langevin_eff.html commands.
|
||||
|
||||
See "this howto section"_Section_howto.html#4_16 of the manual for a
|
||||
discussion of different ways to compute temperature and perform
|
||||
|
@ -66,10 +59,9 @@ This fix computes a temperature each timestep. To do this, the fix
|
|||
creates its own compute of style "temp", as if one of this command had
|
||||
been issued:
|
||||
|
||||
compute fix-ID_temp group-ID temp :pre
|
||||
compute fix-ID_temp group-ID temp/eff :pre
|
||||
|
||||
See the "compute temp"_compute_temp.html for details. Note that the
|
||||
ID of the new compute is the fix-ID + underscore + "temp", and the
|
||||
See the "compute temp/eff"_compute_temp_eff.html for details. Note that the ID of the new compute is the fix-ID + underscore + "temp", and the
|
||||
group for the new compute is the same as the fix group.
|
||||
|
||||
Note that this is NOT the compute used by thermodynamic output (see
|
||||
|
@ -124,11 +116,15 @@ This fix can ramp its target temperature over multiple runs, using the
|
|||
|
||||
This fix is not invoked during "energy minimization"_minimize.html.
|
||||
|
||||
[Restrictions:] none
|
||||
[Restrictions:]
|
||||
|
||||
This fix is part of the "user-eff" package. It is only enabled if
|
||||
LAMMPS was built with that package. See the "Making
|
||||
LAMMPS"_Section_start.html#2_3 section for more info.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"fix langevin"_fix_langevin.html, "fix nvt"_fix_nh.html,
|
||||
"fix langevin/eff"_fix_langevin.html, "fix nvt/eff"_fix_nh.html,
|
||||
"fix_modify"_fix_modify.html
|
||||
|
||||
[Default:] none
|
||||
|
|
|
@ -0,0 +1,274 @@
|
|||
<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>pair_style eff/cut command
|
||||
</H3>
|
||||
<P><B>Syntax:</B>
|
||||
</P>
|
||||
<P>pair_style eff/cut cutoff eradius_limit_flag pressure_flag
|
||||
</P>
|
||||
<P>cutoff = global cutoff for Coulombic interactions
|
||||
eradius_limit_flag = 0 or 1 for whether electron size is restrained (optional)
|
||||
pressure_flag = 0 or 1 to define the type of pressure calculation (optional)
|
||||
</P>
|
||||
<P><B>Examples:</B>
|
||||
</P>
|
||||
<PRE>pair_style eff/cut 39.7
|
||||
pair_style eff/cut 40.0 1 1
|
||||
pair_coeff * *
|
||||
pair_coeff 2 2 20.0
|
||||
</PRE>
|
||||
<P><B>Description:</B>
|
||||
</P>
|
||||
<P>Contains a LAMMPS implementation of the electron Force Field (eFF)
|
||||
potential currently under development at Caltech, as described in
|
||||
<A HREF = "#Jaramillo-Botero">(Jaramillo-Botero)</A>. The eFF was first introduced
|
||||
by <A HREF = "#Su">(Su)</A> in 2007.
|
||||
</P>
|
||||
<P>eFF can be viewed as an approximation to QM wave packet dynamics and
|
||||
Fermionic molecular dynamics, combining the ability of electronic
|
||||
structure methods to describe atomic structure, bonding, and chemistry
|
||||
in materials, and of plasma methods to describe nonequilibrium
|
||||
dynamics of large systems with a large number of highly excited
|
||||
electrons. Yet, eFF relies on a simplification of the electronic
|
||||
wavefunction in which electrons are described as floating Gaussian
|
||||
wave packets whose position and size respond to the various dynamic
|
||||
forces between interacting classical nuclear particles and spherical
|
||||
Gaussian electron wavepackets. The wavefunction is taken to be a
|
||||
Hartree product of the wave packets. To compensate for the lack of
|
||||
explicit antisymmetry in the resulting wavefunction, a spin-dependent
|
||||
Pauli potential is included in the Hamiltonian. Substituting this
|
||||
wavefunction into the time-dependent Schrodinger equation produces
|
||||
equations of motion that correspond - to second order - to classical
|
||||
Hamiltonian relations between electron position and size, and their
|
||||
conjugate momenta. The N-electron wavefunction is described as a
|
||||
product of one-electron Gaussian functions, whose size is a dynamical
|
||||
variable and whose position is not constrained to a nuclear
|
||||
center. This form allows for straightforward propagation of the
|
||||
wavefunction, with time, using a simple formulation from which the
|
||||
equations of motion are then integrated with conventional MD
|
||||
algorithms. In addition to this spin-dependent Pauli repulsion
|
||||
potential term between Gaussians, eFF includes the electron kinetic
|
||||
energy from the Gaussians. These two terms are based on
|
||||
first-principles quantum mechanics. On the other hand, nuclei are
|
||||
described as point charges, which interact with other nuclei and
|
||||
electrons through standard electrostatic potential forms.
|
||||
</P>
|
||||
<P>The full Hamiltonian (shown below), contains then a standard
|
||||
description for electrostatic interactions between a set of
|
||||
delocalized point and Gaussian charges which include, nuclei-nuclei
|
||||
(NN), electron-electron (ee), and nuclei-electron (Ne). Thus, eFF is a
|
||||
mixed QM-classical mechanics method rather than a conventional force
|
||||
field method (in which electron motions are averaged out into ground
|
||||
state nuclear motions, i.e a single electronic state, and particle
|
||||
interactions are described via empirically parameterized interatomic
|
||||
potential functions). This makes eFF uniquely suited to simulate
|
||||
materials over a wide range of temperatures and pressures where
|
||||
electronically excited and ionized states of matter can occur and
|
||||
coexist. Furthermore, the interactions between particles -nuclei and
|
||||
electrons- reduce to the sum of a set of effective pairwise potentials
|
||||
in the eFF formulation. The <I>eff/cut</I> style computes the pairwise
|
||||
Coulomb interactions between nuclei and electrons (E_NN,E_Ne,E_ee),
|
||||
and the quantum-derived Pauli (E_PR) and Kinetic energy interactions
|
||||
potentials between electrons (E_KE) for a total energy expression
|
||||
given as,
|
||||
</P>
|
||||
<CENTER><IMG SRC = "Eqs/eff_energy_expression.jpg">
|
||||
</CENTER>
|
||||
<P>The individual terms are defined as follows:
|
||||
</P>
|
||||
<CENTER><IMG SRC = "Eqs/eff_KE.jpg">
|
||||
</CENTER>
|
||||
<CENTER><IMG SRC = "Eqs/eff_NN.jpg">
|
||||
</CENTER>
|
||||
<CENTER><IMG SRC = "Eqs/eff_Ne.jpg">
|
||||
</CENTER>
|
||||
<CENTER><IMG SRC = "Eqs/eff_ee.jpg">
|
||||
</CENTER>
|
||||
<CENTER><IMG SRC = "Eqs/eff_Pauli.jpg">
|
||||
</CENTER>
|
||||
<P>where, s_i correspond to the electron sizes, the sigmas i's to the
|
||||
fixed spins of the electrons, Z_i to the charges on the nuclei, R_ij
|
||||
to the distances between the nuclei or the nuclei and electrons, and
|
||||
r_ij to the distances between electrons. For additional details see
|
||||
<A HREF = "#Jaramillo-Botero">(Jaramillo-Botero)</A>.
|
||||
</P>
|
||||
<P>The overall electrostatics energy is given in Hartree units of energy
|
||||
by default and can be modified by an energy-conversion constant,
|
||||
according to the units chosen (see <A HREF = "units.html">electron_units</A>). The
|
||||
cutoff Rc, given in Bohrs (by default), truncates the interaction
|
||||
distance. The recommended cutoff for this pair style should follow
|
||||
the minimum image criterion, i.e. half of the minimum unit cell
|
||||
length.
|
||||
</P>
|
||||
<P>Style <I>eff/long</I> (not yet available) computes the same interactions as
|
||||
style <I>eff/cut</I> except that an additional damping factor is applied so
|
||||
it can be used in conjunction with the
|
||||
<A HREF = "kspace_style.html">kspace_style</A> command and its <I>ewald</I> or <I>pppm</I>
|
||||
option. The Coulombic cutoff specified for this style means that
|
||||
pairwise interactions within this distance are computed directly;
|
||||
interactions outside that distance are computed in reciprocal space.
|
||||
</P>
|
||||
<P>These potentials are designed to be used with <A HREF = "atom_electron.html">atom_style
|
||||
electron</A> definitions, in order to handle the
|
||||
description of systems with interacting nuclei and explicit electrons.
|
||||
</P>
|
||||
<P>The following coefficients must be defined for each pair of atoms
|
||||
types via the <A HREF = "pair_coeff.html">pair_coeff</A> command as in the examples
|
||||
above, or in the data file or restart files read by the
|
||||
<A HREF = "read_data.html">read_data</A> or <A HREF = "read_restart.html">read_restart</A>
|
||||
commands, or by mixing as described below:
|
||||
</P>
|
||||
<UL><LI>cutoff (distance units)
|
||||
</UL>
|
||||
<P>For <I>eff/cut</I>, the cutoff coefficient is optional. If it is not used
|
||||
(as in some of the examples above), the default global value specified
|
||||
in the pair_style command is used.
|
||||
</P>
|
||||
<P>For <I>eff/long</I> (not yet available) no cutoff will be specified for an
|
||||
individual I,J type pair via the <A HREF = "pair_coeff.html">pair_coeff</A> command.
|
||||
All type pairs use the same global cutoff specified in the pair_style
|
||||
command.
|
||||
</P>
|
||||
<P>The <I>eradius_limit_flag</I> and <I>pressure_flag</I> settings are optional.
|
||||
Neither or both must be specified. If not specified they are
|
||||
both set to 0 by default.
|
||||
</P>
|
||||
<P>The <I>eradius_limit_flag</I> is used to restrain electrons from becoming
|
||||
unbounded in size at very high temperatures were the Gaussian wave
|
||||
packet representation breaks down, and from expanding as free
|
||||
particles to infinite size. A setting of 0 means do not impose this
|
||||
restraint. A setting of 1 imposes the restraint. The restraining
|
||||
harmonic potential takes the form E = 1/2k_ss^2 for s > L_box/2, where
|
||||
k_s = 1 Hartrees/Bohr^2.
|
||||
</P>
|
||||
<P>The <I>pressure_flag</I> is used to control between two types of pressure
|
||||
computation: if set to 0, the computed pressure does not include the
|
||||
electronic radial virials contributions to the total pressure (scalar
|
||||
or tensor). If set to 1, the computed pressure will include the
|
||||
electronic radial virial contributions to the total pressure (scalar
|
||||
and tensor).
|
||||
</P>
|
||||
<P>IMPORTANT NOTE: there are two different pressures that can be reported
|
||||
for eFF when defining this pair_style, one (default) that considers
|
||||
electrons do not contribute radial virial components (i.e. electrons
|
||||
treated as incompressible 'rigid' spheres) and one that does. The
|
||||
radial electronic contributions to the virials are only tallied if the
|
||||
flexible pressure option is set, and this will affect both global and
|
||||
per-atom quantities. In principle, the true pressure of a system is
|
||||
somewhere in between the rigid and the flexible eFF pressures, but,
|
||||
for most cases, the difference between these two pressures will not be
|
||||
significant over long-term averaged runs (i.e. even though the energy
|
||||
partitioning changes, the total energy remains similar).
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<P>IMPORTANT NOTE: The currently implemented eFF gives a reasonably
|
||||
accurate description for systems containing nuclei from Z = 1-6.
|
||||
Users interested in applying eFF should restrict to systems where
|
||||
electrons are s-like, or contain p character only insofar as a single
|
||||
lobe of electron density is shifted away from the nuclear center. See
|
||||
further details about some of the virtues and current limitations of
|
||||
the method in <A HREF = "#Jaramillo-Botero">(Jaramillo-Botero)</A>.
|
||||
</P>
|
||||
<P>Work is underway to extend the eFF to higher Z elements with
|
||||
increasingly non-spherical electrons (p-block and d-block), to provide
|
||||
explicit terms for electron correlation/exchange, and to improve its
|
||||
computational efficiency for atoms with a large number of core
|
||||
electrons using core approximating pseudo-potentials.
|
||||
</P>
|
||||
<P>In general, eFF excels at computing the properties of materials in
|
||||
extreme conditions and tracing the system dynamics over multi-picosend
|
||||
timescales; this is particularly relevant where electron excitations
|
||||
can change significantly the nature of bonding in the system. It can
|
||||
capture with surprising accuracy the behavior of such systems because
|
||||
it describes consistently and in an unbiased manner many different
|
||||
kinds of bonds, including covalent, ionic, multicenter, ionic, and
|
||||
plasma, and how they interconvert and/or change when they become
|
||||
excited. eFF also excels in computing the relative thermochemistry of
|
||||
isodemic reactions and conformational changes, where the bonds of the
|
||||
reactants are of the same type as the bonds of the products. eFF
|
||||
assumes that kinetic energy differences dominate the overall exchange
|
||||
energy, which is true when the electrons present are nearly spherical
|
||||
and nodeless and valid for covalent compounds such as dense hydrogen,
|
||||
hydrocarbons, and diamond; alkali metals (e.g. lithium), alkali earth
|
||||
metals (e.g. beryllium) and semimetals such as boron; and various
|
||||
compounds containing ionic and/or multicenter bonds, such as boron
|
||||
dihydride.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<P><B>Mixing, shift, table, tail correction, restart, rRESPA info</B>:
|
||||
</P>
|
||||
<P>For atom type pairs I,J and I != J, the cutoff distance for the
|
||||
<I>eff/cut</I> style can be mixed. The default mix value is <I>geometric</I>.
|
||||
See the "pair_modify" command for details.
|
||||
</P>
|
||||
<P>The <A HREF = "pair_modify.html">pair_modify</A> shift option is not relevant for
|
||||
these pair styles.
|
||||
</P>
|
||||
<P>The <I>eff/long</I> (not yet available) style supports the
|
||||
<A HREF = "pair_modify.html">pair_modify</A> table option for tabulation of the
|
||||
short-range portion of the long-range Coulombic interaction.
|
||||
</P>
|
||||
<P>These pair styles do not support the <A HREF = "pair_modify.html">pair_modify</A>
|
||||
tail option for adding long-range tail corrections to energy and
|
||||
pressure.
|
||||
</P>
|
||||
<P>These pair styles write their information to <A HREF = "restart.html">binary restart
|
||||
files</A>, so pair_style and pair_coeff commands do not need
|
||||
to be specified in an input script that reads a restart file.
|
||||
</P>
|
||||
<P>These pair styles can only be used via the <I>pair</I> keyword of the
|
||||
<A HREF = "run_style.html">run_style respa</A> command. They do not support the
|
||||
<I>inner</I>, <I>middle</I>, <I>outer</I> keywords.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<P><B>Restrictions:</B>
|
||||
</P>
|
||||
<P>These pair styles will only be enabled if LAMMPS is built with the
|
||||
"user-eff" package. It will only be enabled if LAMMPS was built with
|
||||
that package. See the <A HREF = "Section_start.html#2_3">Making LAMMPS</A> section
|
||||
for more info.
|
||||
</P>
|
||||
<P>These pair styles require that particles store electron attributes
|
||||
such as radius, radial velocity, and radital force, as defined by the
|
||||
<A HREF = "atom_style.html">atom_style</A>. The <I>electron</I> atom style does all of
|
||||
this.
|
||||
</P>
|
||||
<P>Thes pair styles require you to use the <A HREF = "communicate.html">communicate vel
|
||||
yes</A> option so that velocites are stored by ghost
|
||||
atoms.
|
||||
</P>
|
||||
<P><B>Related commands:</B>
|
||||
</P>
|
||||
<P><A HREF = "pair_coeff.html">pair_coeff</A>
|
||||
</P>
|
||||
<P><B>Default:</B>
|
||||
</P>
|
||||
<P>If not specified, eradius_limit_flag = 0 and pressure_flag = 0.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<A NAME = "Su"></A>
|
||||
|
||||
<P><B>(Su)</B> Su and Goddard, Excited Electron Dynamics Modeling of Warm
|
||||
Dense Matter, Phys Rev Lett, 99:185003 (2007).
|
||||
</P>
|
||||
<A NAME = "Jaramillo-Botero"></A>
|
||||
|
||||
<P><B>(Jaramillo-Botero_2010)</B> Jaramillo-Botero, Su, Qi, Goddard,
|
||||
Large-scale, Long-term Non-adiabatic Electron Molecular Dynamics for
|
||||
Describing Material Properties and Phenomena in Extreme Environments,
|
||||
to appear in J Comp Chem (2010).
|
||||
</P>
|
||||
</HTML>
|
|
@ -0,0 +1,268 @@
|
|||
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
||||
|
||||
:link(lws,http://lammps.sandia.gov)
|
||||
:link(ld,Manual.html)
|
||||
:link(lc,Section_commands.html#comm)
|
||||
|
||||
:line
|
||||
|
||||
pair_style eff/cut command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
pair_style eff/cut cutoff eradius_limit_flag pressure_flag
|
||||
|
||||
cutoff = global cutoff for Coulombic interactions
|
||||
eradius_limit_flag = 0 or 1 for whether electron size is restrained (optional)
|
||||
pressure_flag = 0 or 1 to define the type of pressure calculation (optional)
|
||||
|
||||
[Examples:]
|
||||
|
||||
pair_style eff/cut 39.7
|
||||
pair_style eff/cut 40.0 1 1
|
||||
pair_coeff * *
|
||||
pair_coeff 2 2 20.0 :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Contains a LAMMPS implementation of the electron Force Field (eFF)
|
||||
potential currently under development at Caltech, as described in
|
||||
"(Jaramillo-Botero)"_#Jaramillo-Botero. The eFF was first introduced
|
||||
by "(Su)"_#Su in 2007.
|
||||
|
||||
eFF can be viewed as an approximation to QM wave packet dynamics and
|
||||
Fermionic molecular dynamics, combining the ability of electronic
|
||||
structure methods to describe atomic structure, bonding, and chemistry
|
||||
in materials, and of plasma methods to describe nonequilibrium
|
||||
dynamics of large systems with a large number of highly excited
|
||||
electrons. Yet, eFF relies on a simplification of the electronic
|
||||
wavefunction in which electrons are described as floating Gaussian
|
||||
wave packets whose position and size respond to the various dynamic
|
||||
forces between interacting classical nuclear particles and spherical
|
||||
Gaussian electron wavepackets. The wavefunction is taken to be a
|
||||
Hartree product of the wave packets. To compensate for the lack of
|
||||
explicit antisymmetry in the resulting wavefunction, a spin-dependent
|
||||
Pauli potential is included in the Hamiltonian. Substituting this
|
||||
wavefunction into the time-dependent Schrodinger equation produces
|
||||
equations of motion that correspond - to second order - to classical
|
||||
Hamiltonian relations between electron position and size, and their
|
||||
conjugate momenta. The N-electron wavefunction is described as a
|
||||
product of one-electron Gaussian functions, whose size is a dynamical
|
||||
variable and whose position is not constrained to a nuclear
|
||||
center. This form allows for straightforward propagation of the
|
||||
wavefunction, with time, using a simple formulation from which the
|
||||
equations of motion are then integrated with conventional MD
|
||||
algorithms. In addition to this spin-dependent Pauli repulsion
|
||||
potential term between Gaussians, eFF includes the electron kinetic
|
||||
energy from the Gaussians. These two terms are based on
|
||||
first-principles quantum mechanics. On the other hand, nuclei are
|
||||
described as point charges, which interact with other nuclei and
|
||||
electrons through standard electrostatic potential forms.
|
||||
|
||||
The full Hamiltonian (shown below), contains then a standard
|
||||
description for electrostatic interactions between a set of
|
||||
delocalized point and Gaussian charges which include, nuclei-nuclei
|
||||
(NN), electron-electron (ee), and nuclei-electron (Ne). Thus, eFF is a
|
||||
mixed QM-classical mechanics method rather than a conventional force
|
||||
field method (in which electron motions are averaged out into ground
|
||||
state nuclear motions, i.e a single electronic state, and particle
|
||||
interactions are described via empirically parameterized interatomic
|
||||
potential functions). This makes eFF uniquely suited to simulate
|
||||
materials over a wide range of temperatures and pressures where
|
||||
electronically excited and ionized states of matter can occur and
|
||||
coexist. Furthermore, the interactions between particles -nuclei and
|
||||
electrons- reduce to the sum of a set of effective pairwise potentials
|
||||
in the eFF formulation. The {eff/cut} style computes the pairwise
|
||||
Coulomb interactions between nuclei and electrons (E_NN,E_Ne,E_ee),
|
||||
and the quantum-derived Pauli (E_PR) and Kinetic energy interactions
|
||||
potentials between electrons (E_KE) for a total energy expression
|
||||
given as,
|
||||
|
||||
:c,image(Eqs/eff_energy_expression.jpg)
|
||||
|
||||
The individual terms are defined as follows:
|
||||
|
||||
:c,image(Eqs/eff_KE.jpg)
|
||||
|
||||
:c,image(Eqs/eff_NN.jpg)
|
||||
|
||||
:c,image(Eqs/eff_Ne.jpg)
|
||||
|
||||
:c,image(Eqs/eff_ee.jpg)
|
||||
|
||||
:c,image(Eqs/eff_Pauli.jpg)
|
||||
|
||||
where, s_i correspond to the electron sizes, the sigmas i's to the
|
||||
fixed spins of the electrons, Z_i to the charges on the nuclei, R_ij
|
||||
to the distances between the nuclei or the nuclei and electrons, and
|
||||
r_ij to the distances between electrons. For additional details see
|
||||
"(Jaramillo-Botero)"_#Jaramillo-Botero.
|
||||
|
||||
The overall electrostatics energy is given in Hartree units of energy
|
||||
by default and can be modified by an energy-conversion constant,
|
||||
according to the units chosen (see "electron_units"_units.html). The
|
||||
cutoff Rc, given in Bohrs (by default), truncates the interaction
|
||||
distance. The recommended cutoff for this pair style should follow
|
||||
the minimum image criterion, i.e. half of the minimum unit cell
|
||||
length.
|
||||
|
||||
Style {eff/long} (not yet available) computes the same interactions as
|
||||
style {eff/cut} except that an additional damping factor is applied so
|
||||
it can be used in conjunction with the
|
||||
"kspace_style"_kspace_style.html command and its {ewald} or {pppm}
|
||||
option. The Coulombic cutoff specified for this style means that
|
||||
pairwise interactions within this distance are computed directly;
|
||||
interactions outside that distance are computed in reciprocal space.
|
||||
|
||||
These potentials are designed to be used with "atom_style
|
||||
electron"_atom_electron.html definitions, in order to handle the
|
||||
description of systems with interacting nuclei and explicit electrons.
|
||||
|
||||
The following coefficients must be defined for each pair of atoms
|
||||
types via the "pair_coeff"_pair_coeff.html command as in the examples
|
||||
above, or in the data file or restart files read by the
|
||||
"read_data"_read_data.html or "read_restart"_read_restart.html
|
||||
commands, or by mixing as described below:
|
||||
|
||||
cutoff (distance units) :ul
|
||||
|
||||
For {eff/cut}, the cutoff coefficient is optional. If it is not used
|
||||
(as in some of the examples above), the default global value specified
|
||||
in the pair_style command is used.
|
||||
|
||||
For {eff/long} (not yet available) no cutoff will be specified for an
|
||||
individual I,J type pair via the "pair_coeff"_pair_coeff.html command.
|
||||
All type pairs use the same global cutoff specified in the pair_style
|
||||
command.
|
||||
|
||||
The {eradius_limit_flag} and {pressure_flag} settings are optional.
|
||||
Neither or both must be specified. If not specified they are
|
||||
both set to 0 by default.
|
||||
|
||||
The {eradius_limit_flag} is used to restrain electrons from becoming
|
||||
unbounded in size at very high temperatures were the Gaussian wave
|
||||
packet representation breaks down, and from expanding as free
|
||||
particles to infinite size. A setting of 0 means do not impose this
|
||||
restraint. A setting of 1 imposes the restraint. The restraining
|
||||
harmonic potential takes the form E = 1/2k_ss^2 for s > L_box/2, where
|
||||
k_s = 1 Hartrees/Bohr^2.
|
||||
|
||||
The {pressure_flag} is used to control between two types of pressure
|
||||
computation: if set to 0, the computed pressure does not include the
|
||||
electronic radial virials contributions to the total pressure (scalar
|
||||
or tensor). If set to 1, the computed pressure will include the
|
||||
electronic radial virial contributions to the total pressure (scalar
|
||||
and tensor).
|
||||
|
||||
IMPORTANT NOTE: there are two different pressures that can be reported
|
||||
for eFF when defining this pair_style, one (default) that considers
|
||||
electrons do not contribute radial virial components (i.e. electrons
|
||||
treated as incompressible 'rigid' spheres) and one that does. The
|
||||
radial electronic contributions to the virials are only tallied if the
|
||||
flexible pressure option is set, and this will affect both global and
|
||||
per-atom quantities. In principle, the true pressure of a system is
|
||||
somewhere in between the rigid and the flexible eFF pressures, but,
|
||||
for most cases, the difference between these two pressures will not be
|
||||
significant over long-term averaged runs (i.e. even though the energy
|
||||
partitioning changes, the total energy remains similar).
|
||||
|
||||
:line
|
||||
|
||||
IMPORTANT NOTE: The currently implemented eFF gives a reasonably
|
||||
accurate description for systems containing nuclei from Z = 1-6.
|
||||
Users interested in applying eFF should restrict to systems where
|
||||
electrons are s-like, or contain p character only insofar as a single
|
||||
lobe of electron density is shifted away from the nuclear center. See
|
||||
further details about some of the virtues and current limitations of
|
||||
the method in "(Jaramillo-Botero)"_#Jaramillo-Botero.
|
||||
|
||||
Work is underway to extend the eFF to higher Z elements with
|
||||
increasingly non-spherical electrons (p-block and d-block), to provide
|
||||
explicit terms for electron correlation/exchange, and to improve its
|
||||
computational efficiency for atoms with a large number of core
|
||||
electrons using core approximating pseudo-potentials.
|
||||
|
||||
In general, eFF excels at computing the properties of materials in
|
||||
extreme conditions and tracing the system dynamics over multi-picosend
|
||||
timescales; this is particularly relevant where electron excitations
|
||||
can change significantly the nature of bonding in the system. It can
|
||||
capture with surprising accuracy the behavior of such systems because
|
||||
it describes consistently and in an unbiased manner many different
|
||||
kinds of bonds, including covalent, ionic, multicenter, ionic, and
|
||||
plasma, and how they interconvert and/or change when they become
|
||||
excited. eFF also excels in computing the relative thermochemistry of
|
||||
isodemic reactions and conformational changes, where the bonds of the
|
||||
reactants are of the same type as the bonds of the products. eFF
|
||||
assumes that kinetic energy differences dominate the overall exchange
|
||||
energy, which is true when the electrons present are nearly spherical
|
||||
and nodeless and valid for covalent compounds such as dense hydrogen,
|
||||
hydrocarbons, and diamond; alkali metals (e.g. lithium), alkali earth
|
||||
metals (e.g. beryllium) and semimetals such as boron; and various
|
||||
compounds containing ionic and/or multicenter bonds, such as boron
|
||||
dihydride.
|
||||
|
||||
:line
|
||||
|
||||
[Mixing, shift, table, tail correction, restart, rRESPA info]:
|
||||
|
||||
For atom type pairs I,J and I != J, the cutoff distance for the
|
||||
{eff/cut} style can be mixed. The default mix value is {geometric}.
|
||||
See the "pair_modify" command for details.
|
||||
|
||||
The "pair_modify"_pair_modify.html shift option is not relevant for
|
||||
these pair styles.
|
||||
|
||||
The {eff/long} (not yet available) style supports the
|
||||
"pair_modify"_pair_modify.html table option for tabulation of the
|
||||
short-range portion of the long-range Coulombic interaction.
|
||||
|
||||
These pair styles do not support the "pair_modify"_pair_modify.html
|
||||
tail option for adding long-range tail corrections to energy and
|
||||
pressure.
|
||||
|
||||
These pair styles write their information to "binary restart
|
||||
files"_restart.html, so pair_style and pair_coeff commands do not need
|
||||
to be specified in an input script that reads a restart file.
|
||||
|
||||
These pair styles can only be used via the {pair} keyword of the
|
||||
"run_style respa"_run_style.html command. They do not support the
|
||||
{inner}, {middle}, {outer} keywords.
|
||||
|
||||
:line
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
These pair styles will only be enabled if LAMMPS is built with the
|
||||
"user-eff" package. It will only be enabled if LAMMPS was built with
|
||||
that package. See the "Making LAMMPS"_Section_start.html#2_3 section
|
||||
for more info.
|
||||
|
||||
These pair styles require that particles store electron attributes
|
||||
such as radius, radial velocity, and radital force, as defined by the
|
||||
"atom_style"_atom_style.html. The {electron} atom style does all of
|
||||
this.
|
||||
|
||||
Thes pair styles require you to use the "communicate vel
|
||||
yes"_communicate.html option so that velocites are stored by ghost
|
||||
atoms.
|
||||
|
||||
[Related commands:]
|
||||
|
||||
"pair_coeff"_pair_coeff.html
|
||||
|
||||
[Default:]
|
||||
|
||||
If not specified, eradius_limit_flag = 0 and pressure_flag = 0.
|
||||
|
||||
:line
|
||||
|
||||
:link(Su)
|
||||
|
||||
[(Su)] Su and Goddard, Excited Electron Dynamics Modeling of Warm
|
||||
Dense Matter, Phys Rev Lett, 99:185003 (2007).
|
||||
|
||||
:link(Jaramillo-Botero)
|
||||
[(Jaramillo-Botero_2010)] Jaramillo-Botero, Su, Qi, Goddard,
|
||||
Large-scale, Long-term Non-adiabatic Electron Molecular Dynamics for
|
||||
Describing Material Properties and Phenomena in Extreme Environments,
|
||||
to appear in J Comp Chem (2010).
|
Loading…
Reference in New Issue