"Higher level section"_Howto.html - "LAMMPS WWW Site"_lws - "LAMMPS
Documentation"_ld - "LAMMPS Commands"_lc :c

:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Commands_all.html)

:line

Thermostats :h3

Thermostatting means controlling the temperature of particles in an MD
simulation.  "Barostatting"_Howto_barostat.html means controlling the
pressure.  Since the pressure includes a kinetic component due to
particle velocities, both these operations require calculation of the
temperature.  Typically a target temperature (T) and/or pressure (P)
is specified by the user, and the thermostat or barostat attempts to
equilibrate the system to the requested T and/or P.

Thermostatting in LAMMPS is performed by "fixes"_fix.html, or in one
case by a pair style.  Several thermostatting fixes are available:
Nose-Hoover (nvt), Berendsen, CSVR, Langevin, and direct rescaling
(temp/rescale).  Dissipative particle dynamics (DPD) thermostatting
can be invoked via the {dpd/tstat} pair style:

"fix nvt"_fix_nh.html
"fix nvt/sphere"_fix_nvt_sphere.html
"fix nvt/asphere"_fix_nvt_asphere.html
"fix nvt/sllod"_fix_nvt_sllod.html
"fix temp/berendsen"_fix_temp_berendsen.html
"fix temp/csvr"_fix_temp_csvr.html
"fix langevin"_fix_langevin.html
"fix temp/rescale"_fix_temp_rescale.html
"pair_style dpd/tstat"_pair_dpd.html :ul

"Fix nvt"_fix_nh.html only thermostats the translational velocity of
particles.  "Fix nvt/sllod"_fix_nvt_sllod.html also does this, except
that it subtracts out a velocity bias due to a deforming box and
integrates the SLLOD equations of motion.  See the "Howto
nemd"_Howto_nemd.html doc page for further details.  "Fix
nvt/sphere"_fix_nvt_sphere.html and "fix
nvt/asphere"_fix_nvt_asphere.html thermostat not only translation
velocities but also rotational velocities for spherical and aspherical
particles.

NOTE: A recent (2017) book by "(Daivis and Todd)"_#Daivis-thermostat
discusses use of the SLLOD method and non-equilibrium MD (NEMD)
thermostatting generally, for both simple and complex fluids,
e.g. molecular systems.  The latter can be tricky to do correctly.

DPD thermostatting alters pairwise interactions in a manner analogous
to the per-particle thermostatting of "fix
langevin"_fix_langevin.html.

Any of the thermostatting fixes can use "temperature
computes"_Howto_thermostat.html that remove bias which has two
effects.  First, the current calculated temperature, which is compared
to the requested target temperature, is calculated with the velocity
bias removed.  Second, the thermostat adjusts only the thermal
temperature component of the particle's velocities, which are the
velocities with the bias removed.  The removed bias is then added back
to the adjusted velocities.  See the doc pages for the individual
fixes and for the "fix_modify"_fix_modify.html command for
instructions on how to assign a temperature compute to a
thermostatting fix.  For example, you can apply a thermostat to only
the x and z components of velocity by using it in conjunction with
"compute temp/partial"_compute_temp_partial.html.  Of you could
thermostat only the thermal temperature of a streaming flow of
particles without affecting the streaming velocity, by using "compute
temp/profile"_compute_temp_profile.html.

NOTE: Only the nvt fixes perform time integration, meaning they update
the velocities and positions of particles due to forces and velocities
respectively.  The other thermostat fixes only adjust velocities; they
do NOT perform time integration updates.  Thus they should be used in
conjunction with a constant NVE integration fix such as these:

"fix nve"_fix_nve.html
"fix nve/sphere"_fix_nve_sphere.html
"fix nve/asphere"_fix_nve_asphere.html :ul

Thermodynamic output, which can be setup via the
"thermo_style"_thermo_style.html command, often includes temperature
values.  As explained on the doc page for the
"thermo_style"_thermo_style.html command, the default temperature is
setup by the thermo command itself.  It is NOT the temperature
associated with any thermostatting fix you have defined or with any
compute you have defined that calculates a temperature.  The doc pages
for the thermostatting fixes explain the ID of the temperature compute
they create.  Thus if you want to view these temperatures, you need to
specify them explicitly via the "thermo_style
custom"_thermo_style.html command.  Or you can use the
"thermo_modify"_thermo_modify.html command to re-define what
temperature compute is used for default thermodynamic output.

:line

:link(Daivis-thermostat)
[(Daivis and Todd)] Daivis and Todd, Nonequilibrium Molecular Dynamics (book),
Cambridge University Press, https://doi.org/10.1017/9781139017848, (2017).
