diff --git a/doc/fix_msst.html b/doc/fix_msst.html index 8be90641a8..60f2daffe7 100644 --- a/doc/fix_msst.html +++ b/doc/fix_msst.html @@ -155,7 +155,7 @@ all.

Related commands:

-

fix deform +

fix nphug, fix deform

Default:

diff --git a/doc/fix_msst.txt b/doc/fix_msst.txt index 0a606bf814..60dbc1f20d 100644 --- a/doc/fix_msst.txt +++ b/doc/fix_msst.txt @@ -145,7 +145,7 @@ all. [Related commands:] -"fix deform"_fix_deform.html +"fix nphug"_fix_nphug.html, "fix deform"_fix_deform.html [Default:] diff --git a/doc/fix_nh.html b/doc/fix_nh.html index 49165c16ce..6bf376ba76 100644 --- a/doc/fix_nh.html +++ b/doc/fix_nh.html @@ -28,7 +28,7 @@
  • style_name = nvt or npt or nph
    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
    +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 or scaleyz or scalexz or scalexy
       temp values = Tstart Tstop Tdamp
         Tstart,Tstop = external temperature at start/end of run
         Tdamp = temperature damping parameter (time units)
    diff --git a/doc/fix_nh.txt b/doc/fix_nh.txt
    index 4b4ea236e5..f7dd7f2561 100644
    --- a/doc/fix_nh.txt
    +++ b/doc/fix_nh.txt
    @@ -19,7 +19,7 @@ fix ID group-ID style_name keyword value ... :pre
     ID, group-ID are documented in "fix"_fix.html command :ulb,l
     style_name = {nvt} or {npt} or {nph} :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}
    +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} or {scaleyz} or {scalexz} or {scalexy}
       {temp} values = Tstart Tstop Tdamp
         Tstart,Tstop = external temperature at start/end of run
         Tdamp = temperature damping parameter (time units)
    diff --git a/doc/fix_nphug.html b/doc/fix_nphug.html
    new file mode 100644
    index 0000000000..e4ad3a3f2e
    --- /dev/null
    +++ b/doc/fix_nphug.html
    @@ -0,0 +1,219 @@
    +
    +
    LAMMPS WWW Site - LAMMPS Documentation - LAMMPS Commands +
    + + + + + + +
    + +

    fix nphug command +

    +

    Syntax: +

    +
    fix ID group-ID nphug keyword value ... 
    +
    + +

    Examples: +

    +

    fix myhug all nphug temp 1.0 1.0 10.0 z 40.0 40.0 70.0 +fix myhug all nphug temp 1.0 1.0 10.0 iso 40.0 40.0 70.0 drag 200.0 tchain 1 pchain 0 +

    +

    Description: +

    +

    This command is a variant of the Nose-Hoover +fix npt fix style. +It performs time integration of the Hugoniostat equations +of motion developed by Ravelo et al. (Ravelo). +These equations compress the system to a state with average +axial stress or pressure equal to the specified target value +and that satisfies the Rankine-Hugoniot (RH) +jump conditions for steady shocks. +

    +

    The compression can be performed +either +hydrostatically (using keyword iso, aniso, or tri) or uniaxially +(using keywords x, y, or z). In the hydrostatic case, +the cell dimensions change dynamically so that the average axial stress +in all three directions converges towards the specified target value. +In the uniaxial case, the chosen cell dimension changes dynamically +so that the average +axial stress in that direction converges towards the target value. The +other two cell dimensions are kept fixed (zero lateral strain). +

    +

    This leads to the following additional restrictions on the keywords: +

    +

    One and only one of the following keywords should be used: iso, aniso, tri, x, y, z, +

    +

    The specified initial and final target pressures must be the same. +

    +

    The keywords xy, xz, yz may not be used. +

    +

    The only admissible value for the couple keyword is xyz, +which has the same effect as keyword iso +

    + +

    Essentially, a Hugoniostat simulation is an NPT simulation in which the +user-specified target temperature is replaced with a time-dependent +target temperature Tt obtained from the following equation: +

    +

    Tt - T = (0.5*(P+P0)(V0-V)+E0-E)/(Ndof kB) = Delta +

    +

    where T and Tt are the instantaneous and target temperatures, +P and P0 are the instantaneous and reference pressure or axial stress, +depending on whether hydrostatic or uniaxial compression is being +performed, V and V0 are the instantaneous and reference volumes, +E and E0 are the instantaneous and reference internal energy (potential +plus kinetic), Ndof is the number of degrees of freedom used in the +definition of temperature, and kB is the Boltzmann constant. Delta is the +negative deviation of the instantaneous temperature from the target temperature. +The values of E0, V0, and P0 are the instantaneous values at the start of +the simulation. These can be overridden using the fix_modify keywords e0, +v0, and p0 described below. +

    +
    + +

    IMPORTANT NOTE: Unlike the fix +temp/berendsen command which performs +thermostatting but NO time integration, this fix performs +thermostatting/barostatting AND time integration. Thus you should not +use any other time integration fix, such as fix nve on +atoms to which this fix is applied. Likewise, this fix should not be +used on atoms that have their temperature controlled by another fix +- e.g. by fix langevin or fix temp/rescale +commands. +

    +
    + +

    This fix 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
    +compute fix-ID_press group-ID pressure fix-ID_temp 
    +
    +
    compute fix-ID_temp all temp
    +compute fix-ID_press all pressure fix-ID_temp 
    +
    +

    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". For fix nvt, the group for the new computes +is the same as the fix group. For fix nph and fix npt, 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 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 command or print this temperature +or pressure during thermodynamic output via the thermo_style +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. +

    +
    + +

    Restart, fix_modify, output, run start/stop, minimize info: +

    +

    This fix writes the values of E0, V0, and P0, as well as the +state of all the thermostat and barostat +variables to binary restart files. See the +read_restart 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 e0, v0 and p0 keywords +can be used to define the values of these quantities. Note the +the values for e0 and v0 are extensive, and so must correspond +to the total energy and volume of the entire system, not energy and +volume per atom. If any of these quantities are not specified, then the +instanteous value in the system at the start of the simulation is used. +

    +

    The fix_modify temp and press options are +supported by these fixes. You can use them to assign a +compute 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. +

    +

    The fix_modify 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. Either way, this energy is *not* +included in the definition of internal energy E when calculating the value +of Delta in the above equation. +

    +

    These fixes compute a global scalar and a global vector of quantities, +which can be accessed by various output +commands. The scalar value calculated by +these fixes is "extensive"; the vector values are "intensive". +

    +

    The scalar is the cumulative energy change due to the fix. +

    +

    The vector stores three quantities unique to this fix (Delta, Us, and up), +followed by all the internal Nose/Hoover thermostat and barostat +variables defined for fix_style npt. Delta is the deviation +of the temperature from the target temperature, given by the above equation. +Us and up are the shock and particle velocity correspponding to a steady +shock calculated from the Rh conditions. They have units of distance/time. +

    +

    Restrictions: +

    +

    This fix style is part of the SHOCK package. It is only enabled if +LAMMPS was built with that package. See the Making +LAMMPS section for more info. +

    +

    All the usual restrictions for fix_style npt apply, +plus the additional ones mentioned above. +

    +

    Related commands: +

    +

    fix msst, fix npt, fix_modify +

    +

    Default: +

    +

    The keyword defaults are the same as those for fix npt +

    +
    + + + +

    (Ravelo) Ravelo, Holian, Germann and Lomdahl, Phys Rev B, 70, 014103 (2004). +

    + diff --git a/doc/fix_nphug.txt b/doc/fix_nphug.txt new file mode 100644 index 0000000000..6bb5664302 --- /dev/null +++ b/doc/fix_nphug.txt @@ -0,0 +1,211 @@ +"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 nphug command :h3 + +[Syntax:] + +fix ID group-ID nphug keyword value ... :pre + +ID, group-ID are documented in "fix"_fix.html command :ulb,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 {couple} or {tchain} or {pchain} or {mtk} or {tloop} or {ploop} or {nreset} or {drag} or {dilate} or {scaleyz} or {scalexz} or {scalexy} + {temp} values = Value1 Value2 Tdamp + Value1, Value2 = Nose-Hoover target temperatures, ignored by Hugoniostat + Tdamp = temperature damping parameter (time units) + {iso} or {aniso} or {tri} values = Pstart Pstop Pdamp + Pstart,Pstop = scalar external pressures, must be equal (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 components, must be equal (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} + {scaleyz} value = {yes} or {no} = scale yz with lz + {scalexz} value = {yes} or {no} = scale xz with lz + {scalexy} value = {yes} or {no} = scale xy with ly :pre +:ule + +[Examples:] + +fix myhug all nphug temp 1.0 1.0 10.0 z 40.0 40.0 70.0 +fix myhug all nphug temp 1.0 1.0 10.0 iso 40.0 40.0 70.0 drag 200.0 tchain 1 pchain 0 + +[Description:] + +This command is a variant of the Nose-Hoover +"fix npt"_fix_nh.html fix style. +It performs time integration of the Hugoniostat equations +of motion developed by Ravelo et al. "(Ravelo)"_#Ravelo. +These equations compress the system to a state with average +axial stress or pressure equal to the specified target value +and that satisfies the Rankine-Hugoniot (RH) +jump conditions for steady shocks. + +The compression can be performed +either +hydrostatically (using keyword iso, aniso, or tri) or uniaxially +(using keywords x, y, or z). In the hydrostatic case, +the cell dimensions change dynamically so that the average axial stress +in all three directions converges towards the specified target value. +In the uniaxial case, the chosen cell dimension changes dynamically +so that the average +axial stress in that direction converges towards the target value. The +other two cell dimensions are kept fixed (zero lateral strain). + +This leads to the following additional restrictions on the keywords: + +One and only one of the following keywords should be used: iso, aniso, tri, x, y, z, + +The specified initial and final target pressures must be the same. + +The keywords xy, xz, yz may not be used. + +The only admissible value for the couple keyword is xyz, +which has the same effect as keyword iso + +The temp keyword must be used in order to specify the time constant for +kinetic energy relaxation, but initial and final target temperature values +are ignored. :ul + +Essentially, a Hugoniostat simulation is an NPT simulation in which the +user-specified target temperature is replaced with a time-dependent +target temperature Tt obtained from the following equation: + +Tt - T = (0.5*(P+P0)(V0-V)+E0-E)/(Ndof kB) = Delta + +where T and Tt are the instantaneous and target temperatures, +P and P0 are the instantaneous and reference pressure or axial stress, +depending on whether hydrostatic or uniaxial compression is being +performed, V and V0 are the instantaneous and reference volumes, +E and E0 are the instantaneous and reference internal energy (potential +plus kinetic), Ndof is the number of degrees of freedom used in the +definition of temperature, and kB is the Boltzmann constant. Delta is the +negative deviation of the instantaneous temperature from the target temperature. +The values of E0, V0, and P0 are the instantaneous values at the start of +the simulation. These can be overridden using the fix_modify keywords {e0}, +{v0}, and {p0} described below. + +:line + +IMPORTANT NOTE: Unlike the "fix +temp/berendsen"_fix_temp_berendsen.html command which performs +thermostatting but NO time integration, this fix performs +thermostatting/barostatting AND time integration. Thus you should not +use any other time integration fix, such as "fix nve"_fix_nve.html on +atoms to which this fix is applied. Likewise, this fix should not be +used on atoms that have their temperature controlled by another fix +- e.g. by "fix langevin"_fix_nh.html or "fix temp/rescale"_fix_temp_rescale.html +commands. + +:line + +This fix 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 +compute fix-ID_press group-ID pressure fix-ID_temp :pre + +compute fix-ID_temp all temp +compute fix-ID_press all pressure fix-ID_temp :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". For fix nvt, the group for the new computes +is the same as the fix group. For fix nph and fix npt, 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. + +:line + +[Restart, fix_modify, output, run start/stop, minimize info:] + +This fix writes the values of E0, V0, and P0, as well as 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 {e0}, {v0} and {p0} keywords +can be used to define the values of these quantities. Note the +the values for {e0} and {v0} are extensive, and so must correspond +to the total energy and volume of the entire system, not energy and +volume per atom. If any of these quantities are not specified, then the +instanteous value in the system at the start of the simulation is used. + +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. + +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. Either way, this energy is *not* +included in the definition of internal energy E when calculating the value +of Delta in the above equation. + +These fixes compute a global scalar and a global vector of quantities, +which can be accessed by various "output +commands"_Section_howto.html#howto_15. The scalar value calculated by +these fixes is "extensive"; the vector values are "intensive". + +The scalar is the cumulative energy change due to the fix. + +The vector stores three quantities unique to this fix (Delta, Us, and up), +followed by all the internal Nose/Hoover thermostat and barostat +variables defined for "fix_style npt"_fix_nh.html. Delta is the deviation +of the temperature from the target temperature, given by the above equation. +Us and up are the shock and particle velocity correspponding to a steady +shock calculated from the Rh conditions. They have units of distance/time. + +[Restrictions:] + +This fix style is part of the SHOCK package. It is only enabled if +LAMMPS was built with that package. See the "Making +LAMMPS"_Section_start.html#start_3 section for more info. + +All the usual restrictions for "fix_style npt"_fix_nh.html apply, +plus the additional ones mentioned above. + +[Related commands:] + +"fix msst"_fix_msst.html, "fix npt"_fix_nh.html, "fix_modify"_fix_modify.html + +[Default:] + +The keyword defaults are the same as those for "fix npt"_fix_nh.html + +:line + +:link(Ravelo) +[(Ravelo)] Ravelo, Holian, Germann and Lomdahl, Phys Rev B, 70, 014103 (2004).