diff --git a/doc/Section_commands.html b/doc/Section_commands.html index 42b1b8386b..b1e8d9c9ba 100644 --- a/doc/Section_commands.html +++ b/doc/Section_commands.html @@ -318,7 +318,7 @@ of each style or click on the style itself for a full description:

- + diff --git a/doc/Section_commands.txt b/doc/Section_commands.txt index 70ebc71d82..51f05590bd 100644 --- a/doc/Section_commands.txt +++ b/doc/Section_commands.txt @@ -383,7 +383,7 @@ of each style or click on the style itself for a full description: "bond/break"_fix_bond_break.html, "bond/create"_fix_bond_create.html, "bond/swap"_fix_bond_swap.html, -"box"_fix_box_relax.html, +"box/relax"_fix_box_relax.html, "com"_fix_com.html, "coord/original"_fix_coord_original.html, "deform"_fix_deform.html, diff --git a/doc/compute_pressure.html b/doc/compute_pressure.html index f4d9d41181..df260aed1c 100644 --- a/doc/compute_pressure.html +++ b/doc/compute_pressure.html @@ -19,7 +19,7 @@
  • pressure = style name of this compute command
  • temp-ID = ID of compute that calculates temperature
  • zero or more keywords may be appended -
  • keyword = ke or pair or bond or angle or dihedral or improper or kspace or fix +
  • keyword = ke or pair or bond or angle or dihedral or improper or kspace or fix or virial

    Examples:

    @@ -59,11 +59,12 @@ tensor:

    If no extra keywords are listed, the entire equations above are -calculated which include a temperature (or kinetic energy) term and -the virial as the sum of pair, bond, angle, dihedral, improper, kspace +calculated which include a kinetic energy (temperature) term and the +virial as the sum of pair, bond, angle, dihedral, improper, kspace (long-range), and fix contributions to the force on each atom. If any extra keywords are listed, then only those components are summed to -compute temperature or ke and/or the virial. +compute temperature or ke and/or the virial. The virial keyword +means include all terms except the kinetic energy ke.

    The temperature and kinetic energy tensor is not calculated by this compute, but rather by the temperature compute specified with the diff --git a/doc/compute_pressure.txt b/doc/compute_pressure.txt index 2c878db558..139fecf4f9 100644 --- a/doc/compute_pressure.txt +++ b/doc/compute_pressure.txt @@ -16,7 +16,7 @@ ID, group-ID are documented in "compute"_compute.html command pressure = style name of this compute command temp-ID = ID of compute that calculates temperature zero or more keywords may be appended -keyword = {ke} or {pair} or {bond} or {angle} or {dihedral} or {improper} or {kspace} or {fix} :ul +keyword = {ke} or {pair} or {bond} or {angle} or {dihedral} or {improper} or {kspace} or {fix} or {virial} :ul [Examples:] @@ -56,11 +56,12 @@ tensor: :c,image(Eqs/pressure_tensor.jpg) If no extra keywords are listed, the entire equations above are -calculated which include a temperature (or kinetic energy) term and -the virial as the sum of pair, bond, angle, dihedral, improper, kspace +calculated which include a kinetic energy (temperature) term and the +virial as the sum of pair, bond, angle, dihedral, improper, kspace (long-range), and fix contributions to the force on each atom. If any extra keywords are listed, then only those components are summed to -compute temperature or ke and/or the virial. +compute temperature or ke and/or the virial. The {virial} keyword +means include all terms except the kinetic energy {ke}. The temperature and kinetic energy tensor is not calculated by this compute, but rather by the temperature compute specified with the diff --git a/doc/compute_stress_atom.html b/doc/compute_stress_atom.html index d018211270..2d362c79d4 100644 --- a/doc/compute_stress_atom.html +++ b/doc/compute_stress_atom.html @@ -18,7 +18,7 @@

    Examples:

    @@ -67,7 +67,9 @@ command.

    If no extra keywords are listed, all of the terms in this formula are included in the per-atom stress tensor. If any extra keywords are -listed, only those terms are summed to compute the tensor. +listed, only those terms are summed to compute the tensor. The +virial keyword means include all terms except the kinetic energy +ke.

    Note that the stress for each atom is due to its interaction with all other atoms in the simulation, not just with other atoms in the group. diff --git a/doc/compute_stress_atom.txt b/doc/compute_stress_atom.txt index 1fa6c174f9..7966766ec8 100644 --- a/doc/compute_stress_atom.txt +++ b/doc/compute_stress_atom.txt @@ -15,7 +15,7 @@ compute ID group-ID stress/atom keyword ... :pre ID, group-ID are documented in "compute"_compute.html command stress/atom = style name of this compute command zero or more keywords may be appended -keyword = {ke} or {pair} or {bond} or {angle} or {dihedral} or {improper} or {fix} :ul +keyword = {ke} or {pair} or {bond} or {angle} or {dihedral} or {improper} or {fix} or {virial} :ul [Examples:] @@ -64,7 +64,9 @@ command. If no extra keywords are listed, all of the terms in this formula are included in the per-atom stress tensor. If any extra keywords are -listed, only those terms are summed to compute the tensor. +listed, only those terms are summed to compute the tensor. The +{virial} keyword means include all terms except the kinetic energy +{ke}. Note that the stress for each atom is due to its interaction with all other atoms in the simulation, not just with other atoms in the group. diff --git a/doc/fix_box_relax.html b/doc/fix_box_relax.html index e07770d6c5..ac70c253b2 100644 --- a/doc/fix_box_relax.html +++ b/doc/fix_box_relax.html @@ -27,15 +27,16 @@

  • zero or more keyword/value pairs may be appended to the args -
  • keyword = dilate +
  • keyword = dilate or vmax -
      dilate value = all or partial 
    +
      dilate value = all or partial
    +  vmax value = fraction = max allowed volume change in one iteration 
     

    Examples:

    -
    fix 1 all box/relax xyz 0.0
    +
    fix 1 all box/relax xyz 0.0 vmax 0.001
     fix 2 water box/relax aniso 0.0 0.0 1000.0 dilate partial 
     

    Description: @@ -82,24 +83,57 @@ re-scaled. This can be useful for leaving the coordinates of atoms in a solid substrate unchanged and controlling the pressure of a surrounding fluid.

    +

    The vmax keyword can be used to limit the fractional change in the +volume of the simulation box that can occur in one iteration of the +minimizer. If the pressure is not settling down during the +minimization this can be because the volume is fluctuating too much. +The specfied fraction must be greater than 0.0 and should be << 1.0. +A value of 0.001 means the volume cannot change by more than 1/10 of a +percent in one iteration for style xyz. For the other styles it +means no linear dimension of the simulation box can change by more +than 1/10 of a percent. +

    +

    IMPORTANT NOTE: As normally computed, pressure includes a kinetic- +energy or temperature-dependent component; see the compute +pressure command. However, atom velocities are +ignored during a minimization, and the applied pressure(s) specified +with this command are assumed to only be the virial component of the +pressure (the non-kinetic portion). Thus if atoms have a non-zero +temperature and you print the usual thermodynamic pressure, it may not +appear the system is converging to your specified pressure. The +solution for this is to either (a) zero the velocities of all atoms +before performing the minimization, or (b) make sure you are +monitoring the pressure without its kinetic component. The latter +can be done by outputting the pressure from the fix this command +creates (see below) or a pressure fix you define yourself. +

    +

    IMPORTANT NOTE: Because pressure is often a very sensitive function of +volume, it can be difficult for the minimizer to equilibrate the +system the desired pressure with high precision. Some techiniques +that seem to help are (a) use the "min_modify line quadratic" option +when minimizing with box relaxtions, and (b) minimize several times in +succession if need be, to drive the pressure closer to the target +pressure. Also note that some systems (e.g. liquids) will not sustain +an anisotropic applied pressure, which means the minimizer will not +converge. +


    This fix computes a temperature and pressure each timestep. The temperature is used to compute the kinetic contribution to the -pressure. Since atom velocities do not change during minimization, -that contribution will depend on what atom velocities are at the -beginning of the minimization procedure, and will remain constant. To -do this, the fix creates its own computes of style "temp" and -"pressure", as if these commands had been issued: +pressure, even though this is subsequently ignored by default. To do +this, the fix creates its own computes of style "temp" and "pressure", +as if these commands had been issued:

    compute fix-ID_temp group-ID temp
    -compute fix-ID_press group-ID pressure fix-ID_temp 
    +compute fix-ID_press group-ID pressure fix-ID_temp virial 
     

    See the compute temp and compute pressure commands for details. Note that the IDs of the new computes are the fix-ID + underscore + "temp" or fix_ID + underscore + "press", and the group for the new computes is the same -as the fix group. +as the fix group. Also note that the pressure compute does not +include a kinetic component.

    Note that these are NOT the computes used by thermodynamic output (see the thermo_style command) with ID = thermo_temp @@ -111,17 +145,6 @@ custom 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, 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. -


    Restart, fix_modify, output, run start/stop, minimize info: @@ -132,11 +155,10 @@ files.

    The fix_modify temp and press options are supported by this fix. You can use them to assign a compute you have defined to this fix which will be used -in its temperature and pressure calculation, 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. +in its temperature and pressure calculation, as described above. Note +that as described above, if you assign a pressure compute to this fix +that includes a kinetic energy component it will affect the +minimization, most likely in an undesirable way.

    IMPORTANT NOTE: If both the temp and press keywords are used in a single thermo_modify command (or in two separate commands), then the @@ -156,8 +178,8 @@ the run command.

    This fix is invoked during energy minimization, but not for the purpose of adding a contribution to the energy or forces -being minimized. Instead it alters the box geometry as described -above. +being minimized. Instead it alters the simulation box geometry as +described above.

    Restrictions:

    @@ -171,6 +193,6 @@ periodic.

    Default:

    -

    The keyword default is dilate = all. +

    The keyword defaults are dilate = all and vmax = 0.0001.

    diff --git a/doc/fix_box_relax.txt b/doc/fix_box_relax.txt index f13243ab22..e828f98ac3 100644 --- a/doc/fix_box_relax.txt +++ b/doc/fix_box_relax.txt @@ -20,13 +20,14 @@ style = {xyz} or {xy} or {yz} or {xz} or {aniso} :l Px,Py,Pz = desired pressure in x,y,z (pressure units) :pre zero or more keyword/value pairs may be appended to the args :l -keyword = {dilate} :l - {dilate} value = {all} or {partial} :pre +keyword = {dilate} or {vmax} :l + {dilate} value = {all} or {partial} + {vmax} value = fraction = max allowed volume change in one iteration :pre :ule [Examples:] -fix 1 all box/relax xyz 0.0 +fix 1 all box/relax xyz 0.0 vmax 0.001 fix 2 water box/relax aniso 0.0 0.0 1000.0 dilate partial :pre [Description:] @@ -73,24 +74,57 @@ re-scaled. This can be useful for leaving the coordinates of atoms in a solid substrate unchanged and controlling the pressure of a surrounding fluid. +The {vmax} keyword can be used to limit the fractional change in the +volume of the simulation box that can occur in one iteration of the +minimizer. If the pressure is not settling down during the +minimization this can be because the volume is fluctuating too much. +The specfied fraction must be greater than 0.0 and should be << 1.0. +A value of 0.001 means the volume cannot change by more than 1/10 of a +percent in one iteration for style {xyz}. For the other styles it +means no linear dimension of the simulation box can change by more +than 1/10 of a percent. + +IMPORTANT NOTE: As normally computed, pressure includes a kinetic- +energy or temperature-dependent component; see the "compute +pressure"_compute_pressure.html command. However, atom velocities are +ignored during a minimization, and the applied pressure(s) specified +with this command are assumed to only be the virial component of the +pressure (the non-kinetic portion). Thus if atoms have a non-zero +temperature and you print the usual thermodynamic pressure, it may not +appear the system is converging to your specified pressure. The +solution for this is to either (a) zero the velocities of all atoms +before performing the minimization, or (b) make sure you are +monitoring the pressure without its kinetic component. The latter +can be done by outputting the pressure from the fix this command +creates (see below) or a pressure fix you define yourself. + +IMPORTANT NOTE: Because pressure is often a very sensitive function of +volume, it can be difficult for the minimizer to equilibrate the +system the desired pressure with high precision. Some techiniques +that seem to help are (a) use the "min_modify line quadratic" option +when minimizing with box relaxtions, and (b) minimize several times in +succession if need be, to drive the pressure closer to the target +pressure. Also note that some systems (e.g. liquids) will not sustain +an anisotropic applied pressure, which means the minimizer will not +converge. + :line This fix computes a temperature and pressure each timestep. The temperature is used to compute the kinetic contribution to the -pressure. Since atom velocities do not change during minimization, -that contribution will depend on what atom velocities are at the -beginning of the minimization procedure, and will remain constant. To -do this, the fix creates its own computes of style "temp" and -"pressure", as if these commands had been issued: +pressure, even though this is subsequently ignored by default. To do +this, the fix creates its own computes of style "temp" and "pressure", +as if these commands had been issued: compute fix-ID_temp group-ID temp -compute fix-ID_press group-ID pressure fix-ID_temp :pre +compute fix-ID_press group-ID pressure fix-ID_temp virial :pre See the "compute temp"_compute_temp.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", and the group for the new computes is the same -as the fix group. +as the fix group. Also note that the pressure compute does not +include a kinetic component. Note that these are NOT the computes used by thermodynamic output (see the "thermo_style"_thermo_style.html command) with ID = {thermo_temp} @@ -102,17 +136,6 @@ 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, 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. - :line [Restart, fix_modify, output, run start/stop, minimize info:] @@ -123,11 +146,10 @@ files"_restart.html. The "fix_modify"_fix_modify.html {temp} and {press} options are supported by this fix. You can use them to assign a "compute"_compute.html you have defined to this fix which will be used -in its temperature and pressure calculation, 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. +in its temperature and pressure calculation, as described above. Note +that as described above, if you assign a pressure compute to this fix +that includes a kinetic energy component it will affect the +minimization, most likely in an undesirable way. IMPORTANT NOTE: If both the {temp} and {press} keywords are used in a single thermo_modify command (or in two separate commands), then the @@ -147,8 +169,8 @@ the "run"_run.html command. This fix is invoked during "energy minimization"_minimize.html, but not for the purpose of adding a contribution to the energy or forces -being minimized. Instead it alters the box geometry as described -above. +being minimized. Instead it alters the simulation box geometry as +described above. [Restrictions:] @@ -162,4 +184,4 @@ periodic. [Default:] -The keyword default is dilate = all. +The keyword defaults are dilate = all and vmax = 0.0001.
  • addforceaveforceave/atomave/spatialave/timebond/breakbond/createbond/swap
    boxcomcoord/originaldeformdepositdragdt/resetefield
    box/relaxcomcoord/originaldeformdepositdragdt/resetefield
    enforce2dfreezegravitygyrationheatindentlangevinlineforce
    msdmomentumnphnptnpt/aspherenpt/spherenvenve/asphere
    nve/limitnve/noforcenve/spherenvtnvt/aspherenvt/sllodnvt/sphereorient/fcc