101 lines
4.6 KiB
Plaintext
101 lines
4.6 KiB
Plaintext
"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).
|