diff --git a/doc/Section_commands.html b/doc/Section_commands.html index ae49190355..c8a3f4c630 100644 --- a/doc/Section_commands.html +++ b/doc/Section_commands.html @@ -403,9 +403,9 @@ of each style or click on the style itself for a full description:
These are fix styles contributed by users, which can be used if diff --git a/doc/Section_commands.txt b/doc/Section_commands.txt index 63f593af1d..b6251e6f92 100644 --- a/doc/Section_commands.txt +++ b/doc/Section_commands.txt @@ -539,6 +539,7 @@ of each style or click on the style itself for a full description: "store/force"_fix_store_force.html, "store/state"_fix_store_state.html, "temp/berendsen"_fix_temp_berendsen.html, +"temp/csvr"_fix_temp_csvr.html, "temp/rescale"_fix_temp_rescale.html, "thermal/conductivity"_fix_thermal_conductivity.html, "tmd"_fix_tmd.html, diff --git a/doc/Section_howto.html b/doc/Section_howto.html index db12c18d4c..21994ed9a3 100644 --- a/doc/Section_howto.html +++ b/doc/Section_howto.html @@ -1613,16 +1613,17 @@ velocity of spherical or aspherical particles to be adjusted in prescribed ways.
Thermostatting in LAMMPS is performed by fixes, or in one -case by a pair style. Four thermostatting fixes are currently -available: Nose-Hoover (nvt), Berendsen, Langevin, and direct -rescaling (temp/rescale). Dissipative particle dynamics (DPD) -thermostatting can be invoked via the dpd/tstat pair style: +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:
Syntax: +
+fix ID group-ID temp/csvr Tstart Tstop Tdamp seed ++
Tstart can be a variable (see below) ++
Examples: +
+fix 1 all temp/csvr 300.0 300.0 100.0 54324 ++
Description: +
+Adjust the temperature with a CSVR thermostat (Bussi), which +updates the velocities to a linear combination of the current +velocities with a gaussian distribution at the desired temperature in +every timestep. +
+The thermostat is applied to only the translational degrees of freedom +for the particles, which is an important consideration for finite-size +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 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, a value of 100.0 means to relax the temperature in a timespan +of (roughly) 100 time units (tau or fmsec or psec - see the +units command). +
+Tstart can be specified as an equal-style variable. +In this case, the Tstop setting is ignored. If the value is a +variable, it should be specified as v_name, where name is the variable +name. In this case, the variable will be evaluated each timestep, and +its value used to determine the target temperature. +
+Equal-style variables can specify formulas with various mathematical +functions, and include thermo_style command +keywords for the simulation box parameters and timestep and elapsed +time. Thus it is easy to specify a time-dependent temperature. +
+IMPORTANT NOTE: Unlike the fix nvt 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 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 or fix +langevin commands. +
+See this howto section of the manual for +a discussion of different ways to compute temperature and perform +thermostatting. +
+This fix computes a temperature each timestep. To do this, the fix +creates its own compute of style "temp", as if this command had been +issued: +
+compute fix-ID_temp group-ID temp ++
See the compute temp 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 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 command or print this temperature +during thermodynamic output via the thermo_style +custom 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 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 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 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: +
+No information about this fix is written to binary restart +files. +
+The fix_modify temp option is supported by this +fix. You can use it to assign a temperature compute +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 energy option is supported by this +fix to add the energy change implied by a velocity rescaling to the +system's potential energy as part of thermodynamic +output. +
+This fix computes a global scalar which can be accessed by various +output commands. The scalar is the +cummulative energy change due to this fix. The scalar value +calculated by this fix is "extensive". +
+This fix can ramp its target temperature over multiple runs, using the +start and stop keywords of the run command. See the +run command for details of how to do this. +
+This fix is not invoked during energy minimization. +
+Restrictions: none +
+Related commands: +
+fix nve, fix nvt, fix +temp/rescale, fix langevin, +fix_modify, compute temp, +fix temp/berendsen +
+Default: none +
+(Bussi) Bussi and Parrinello, Phys. Rev. E (2007) +
+ diff --git a/doc/fix_temp_csvr.txt b/doc/fix_temp_csvr.txt new file mode 100644 index 0000000000..872c304618 --- /dev/null +++ b/doc/fix_temp_csvr.txt @@ -0,0 +1,151 @@ +"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 temp/csvr command :h3 + +[Syntax:] + +fix ID group-ID temp/csvr Tstart Tstop Tdamp seed :pre + +ID, group-ID are documented in "fix"_fix.html command :ulb,l +temp/csvr = style name of this fix command :l +Tstart,Tstop = desired temperature at start/end of run :l + Tstart can be a variable (see below) :pre +Tdamp = temperature damping parameter (time units) :l +seed = random number seed to use for white noise (positive integer) :l,ule + +[Examples:] + +fix 1 all temp/csvr 300.0 300.0 100.0 54324 :pre + +[Description:] + +Adjust the temperature with a CSVR thermostat "(Bussi)"_#Bussi, which +updates the velocities to a linear combination of the current +velocities with a gaussian distribution at the desired temperature in +every timestep. + +The thermostat is applied to only the translational degrees of freedom +for the particles, which is an important consideration for finite-size +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 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, a value of 100.0 means to relax the temperature in a timespan +of (roughly) 100 time units (tau or fmsec or psec - see the +"units"_units.html command). + +{Tstart} can be specified as an equal-style "variable"_variable.html. +In this case, the {Tstop} setting is ignored. If the value is a +variable, it should be specified as v_name, where name is the variable +name. In this case, the variable will be evaluated each timestep, and +its value used to determine the target temperature. + +Equal-style variables can specify formulas with various mathematical +functions, and include "thermo_style"_thermo_style.html command +keywords for the simulation box parameters and timestep and elapsed +time. Thus it is easy to specify a time-dependent temperature. + +IMPORTANT NOTE: Unlike the "fix nvt"_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 +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. + +See "this howto section"_Section_howto.html#howto_16 of the manual for +a discussion of different ways to compute temperature and perform +thermostatting. + +This fix computes a temperature each timestep. To do this, the fix +creates its own compute of style "temp", as if this command had been +issued: + +compute fix-ID_temp group-ID temp :pre + +See the "compute temp"_compute_temp.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. + +:line + +[Restart, fix_modify, output, run start/stop, minimize info:] + +No information about this fix is written to "binary restart +files"_restart.html. + +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 implied by a velocity rescaling to the +system's potential energy as part of "thermodynamic +output"_thermo_style.html. + +This fix computes a global scalar which can be accessed by various +"output commands"_Section_howto.html#howto_15. The scalar is the +cummulative energy change due to this fix. The scalar value +calculated by this fix is "extensive". + +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 + +[Related commands:] + +"fix nve"_fix_nve.html, "fix nvt"_fix_nh.html, "fix +temp/rescale"_fix_temp_rescale.html, "fix langevin"_fix_langevin.html, +"fix_modify"_fix_modify.html, "compute temp"_compute_temp.html, +"fix temp/berendsen"_fix_temp_berendsen.html + +[Default:] none + +:line + +:link(Bussi) + +[(Bussi)] Bussi and Parrinello, Phys. Rev. E (2007)