diff --git a/doc/Section_howto.html b/doc/Section_howto.html index 60e23b6268..4198b1ee2d 100644 --- a/doc/Section_howto.html +++ b/doc/Section_howto.html @@ -545,6 +545,17 @@ theta of HOH angle = 104.52
LJ sigma of O-O = 3.16435
LJ epsilon, sigma of OH, HH = 0.0

+

Note that the when using the TIP4P pair style, the neighobr list +cutoff for Coulomb interactions is effectively extended by a distance +2 * (OM distance), to account for the offset distance of the +fictitious charges on O atoms in water molecules. Thus it is +typically best in an efficiency sense to use a LJ cutoff >= Coulomb +cutoff + 2*(OM distance), to shrink the size of the neighbor list. +This leads to slightly larger cost for the long-range calculation, so +you can test the trade-off for your model. The OM distance and the LJ +and Coulombic cutoffs are set in the pair_style +lj/cut/coul/long/tip4p command. +

Wikipedia also has a nice article on water models.

diff --git a/doc/Section_howto.txt b/doc/Section_howto.txt index 83465e5895..0044f50d77 100644 --- a/doc/Section_howto.txt +++ b/doc/Section_howto.txt @@ -540,6 +540,17 @@ LJ epsilon of O-O = 0.16275 LJ sigma of O-O = 3.16435 LJ epsilon, sigma of OH, HH = 0.0 :all(b),p +Note that the when using the TIP4P pair style, the neighobr list +cutoff for Coulomb interactions is effectively extended by a distance +2 * (OM distance), to account for the offset distance of the +fictitious charges on O atoms in water molecules. Thus it is +typically best in an efficiency sense to use a LJ cutoff >= Coulomb +cutoff + 2*(OM distance), to shrink the size of the neighbor list. +This leads to slightly larger cost for the long-range calculation, so +you can test the trade-off for your model. The OM distance and the LJ +and Coulombic cutoffs are set in the "pair_style +lj/cut/coul/long/tip4p"_pair_lj.html command. + Wikipedia also has a nice article on "water models"_http://en.wikipedia.org/wiki/Water_model. diff --git a/doc/create_atoms.html b/doc/create_atoms.html index 30ae86cb05..9496f56688 100644 --- a/doc/create_atoms.html +++ b/doc/create_atoms.html @@ -31,11 +31,12 @@
  • zero or more keyword/value pairs may be appended -
  • keyword = basis or units +
  • keyword = basis or remap or units
      basis values = M itype
         M = which basis atom
         itype = atom type (1-N) to assign to this basis atom
    +  remap value = yes or no
       units value = lattice or box
         lattice = the geometry is defined in lattice units
         box = the geometry is defined in simulation box units 
    @@ -110,6 +111,12 @@ specific basis atoms as they are created.  See the
     defined for the unit cell of the lattice.  By default, all created
     atoms are assigned the argument type as their atom type.
     

    +

    The remap keyword only applies to the single style. If it is set +to yes, then if the specified position is outside the simulation +box, it will mapped back into the box, assuming the relevant +dimensions are periodic. If it is set to no, no remapping is done +and no atom is created if its position is outside the box. +

    The units keyword determines the meaning of the distance units used to specify the coordinates of the one atom created by the single style. A box value selects standard distance units as defined by @@ -183,8 +190,8 @@ command.

    Default:

    -

    The default for the basis keyword, is all created atoms are assigned -the argument type as their atom type. The default for the -units keyword is lattice. +

    The default for the basis keyword is that all created atoms are +assigned the argument type as their atom type. The default for +remap = no and for units = lattice.

    diff --git a/doc/create_atoms.txt b/doc/create_atoms.txt index e96081d041..6f717dc45c 100644 --- a/doc/create_atoms.txt +++ b/doc/create_atoms.txt @@ -24,10 +24,11 @@ style = {box} or {region} or {single} or {random} :l seed = random # seed (positive integer) region-ID = create atoms within this region, use NULL for entire simulation box :pre zero or more keyword/value pairs may be appended :l -keyword = {basis} or {units} :l +keyword = {basis} or {remap} or {units} :l {basis} values = M itype M = which basis atom itype = atom type (1-N) to assign to this basis atom + {remap} value = {yes} or {no} {units} value = {lattice} or {box} {lattice} = the geometry is defined in lattice units {box} = the geometry is defined in simulation box units :pre @@ -101,13 +102,19 @@ specific basis atoms as they are created. See the defined for the unit cell of the lattice. By default, all created atoms are assigned the argument {type} as their atom type. +The {remap} keyword only applies to the {single} style. If it is set +to {yes}, then if the specified position is outside the simulation +box, it will mapped back into the box, assuming the relevant +dimensions are periodic. If it is set to {no}, no remapping is done +and no atom is created if its position is outside the box. + The {units} keyword determines the meaning of the distance units used to specify the coordinates of the one atom created by the {single} style. A {box} value selects standard distance units as defined by the "units"_units.html command, e.g. Angstroms for units = real or metal. A {lattice} value means the distance units are in lattice spacings. - + Note that this command adds atoms to those that already exist. By using the create_atoms command multiple times, multiple sets of atoms can be added to the simulation. For example, interleaving @@ -174,6 +181,6 @@ command. [Default:] -The default for the {basis} keyword, is all created atoms are assigned -the argument {type} as their atom type. The default for the -{units} keyword is lattice. +The default for the {basis} keyword is that all created atoms are +assigned the argument {type} as their atom type. The default for +{remap} = no and for {units} = lattice. diff --git a/doc/delete_bonds.html b/doc/delete_bonds.html index 9db79de558..eeb1417e34 100644 --- a/doc/delete_bonds.html +++ b/doc/delete_bonds.html @@ -30,7 +30,7 @@
  • zero or more keywords may be appended -
  • keyword = undo or remove or special +
  • keyword = any or undo or remove or special @@ -57,12 +57,15 @@ the only criterion applied - all types of bonds, angles, dihedrals, impropers in the group turned off.

    For style atom, one or more of the atoms involved must also be of -the specified type. For style bond, only bonds are candidates for -turn-off, and the bond must be of the specified type. Styles angle, -dihedral, and improper are treated similarly. +the specified type. +

    +

    For style bond, only bonds are candidates for turn-off, and the bond +must also be of the specified type. Styles angle, dihedral, and +improper are treated similarly.

    For style bond, you can set the type to 0 to delete bonds that have -been previously broken; e.g. see the bond_style +been previously broken by a bond-breaking potential (which sets the +bond type to 0 when a bond is broken); e.g. see the bond_style quartic command.

    For style stats no interactions are turned off (or on); the status @@ -71,21 +74,27 @@ is useful for diagnostic purposes if bonds have been turned off by a bond-breaking potential during a previous run.

    The default behavior of the delete_bonds command is to turn off -interactions by toggling their type to a negative value. E.g. a -bond_type of 2 is set to -2. The neighbor list creation routines will -not include such an interaction in their interaction lists. The -default is also to not alter the list of 1-2, 1-3, 1-4 neighbors -computed by the special_bonds command and used to -weight pairwise force and energy calculations. This means that -pairwise computations will proceed as if the bond (or angle, etc) were -still turned on. +interactions by toggling their type to a negative value, but not to +permanently remove the interaction. E.g. a bond_type of 2 is set to +-2. The neighbor list creation routines will not include such an +interaction in their interaction lists. The default is also to not +alter the list of 1-2, 1-3, 1-4 neighbors computed by the +special_bonds command and used to weight pairwise +force and energy calculations. This means that pairwise computations +will proceed as if the bond (or angle, etc) were still turned on.

    -

    The keywords listed above can be appended to the argument list to -alter the default behavior. +

    Several keywords can be appended to the argument list to alter the +default behavior. +

    +

    The any keyword changes the requirement that all atoms in the bond +(angle, etc) must be in the specified group in order to turn-off the +interaction. If any of the atoms in the interaction are in the +specified group, it will be turned off (or on if the undo keyword is +used).

    The undo keyword inverts the delete_bonds command so that the specified bonds, angles, etc are turned on if they are currently -turned off. This means any negative value is toggled to positive. +turned off. This means a negative value is toggled to positive. Note that the fix shake command also sets bond and angle types negative, so this option should not be used on those interactions. diff --git a/doc/delete_bonds.txt b/doc/delete_bonds.txt index cb81cae4ef..1ddcd049cb 100644 --- a/doc/delete_bonds.txt +++ b/doc/delete_bonds.txt @@ -23,7 +23,7 @@ style = {multi} or {atom} or {bond} or {angle} or {dihedral} or {improper} args = an improper type {stats} args = none :pre zero or more keywords may be appended :l -keyword = {undo} or {remove} or {special} :l +keyword = {any} or {undo} or {remove} or {special} :l :ule [Examples:] @@ -49,12 +49,15 @@ the only criterion applied - all types of bonds, angles, dihedrals, impropers in the group turned off. For style {atom}, one or more of the atoms involved must also be of -the specified type. For style {bond}, only bonds are candidates for -turn-off, and the bond must be of the specified type. Styles {angle}, -{dihedral}, and {improper} are treated similarly. +the specified type. + +For style {bond}, only bonds are candidates for turn-off, and the bond +must also be of the specified type. Styles {angle}, {dihedral}, and +{improper} are treated similarly. For style {bond}, you can set the type to 0 to delete bonds that have -been previously broken; e.g. see the "bond_style +been previously broken by a bond-breaking potential (which sets the +bond type to 0 when a bond is broken); e.g. see the "bond_style quartic"_bond_style.html command. For style {stats} no interactions are turned off (or on); the status @@ -63,21 +66,27 @@ is useful for diagnostic purposes if bonds have been turned off by a bond-breaking potential during a previous run. The default behavior of the delete_bonds command is to turn off -interactions by toggling their type to a negative value. E.g. a -bond_type of 2 is set to -2. The neighbor list creation routines will -not include such an interaction in their interaction lists. The -default is also to not alter the list of 1-2, 1-3, 1-4 neighbors -computed by the "special_bonds"_special_bonds.html command and used to -weight pairwise force and energy calculations. This means that -pairwise computations will proceed as if the bond (or angle, etc) were -still turned on. +interactions by toggling their type to a negative value, but not to +permanently remove the interaction. E.g. a bond_type of 2 is set to +-2. The neighbor list creation routines will not include such an +interaction in their interaction lists. The default is also to not +alter the list of 1-2, 1-3, 1-4 neighbors computed by the +"special_bonds"_special_bonds.html command and used to weight pairwise +force and energy calculations. This means that pairwise computations +will proceed as if the bond (or angle, etc) were still turned on. -The keywords listed above can be appended to the argument list to -alter the default behavior. +Several keywords can be appended to the argument list to alter the +default behavior. + +The {any} keyword changes the requirement that all atoms in the bond +(angle, etc) must be in the specified group in order to turn-off the +interaction. If any of the atoms in the interaction are in the +specified group, it will be turned off (or on if the {undo} keyword is +used). The {undo} keyword inverts the delete_bonds command so that the specified bonds, angles, etc are turned on if they are currently -turned off. This means any negative value is toggled to positive. +turned off. This means a negative value is toggled to positive. Note that the "fix shake"_fix_shake.html command also sets bond and angle types negative, so this option should not be used on those interactions. diff --git a/doc/pair_lj.html b/doc/pair_lj.html index f77df8c47d..8ee8c96beb 100644 --- a/doc/pair_lj.html +++ b/doc/pair_lj.html @@ -100,8 +100,8 @@ pair_style lj/cut/coul/long 10.0 8.0 pair_coeff * * 100.0 3.0 pair_coeff 1 1 100.0 3.5 9.0 -

    pair_style lj/cut/coul/long/tip4p 1 2 7 8 0.3 12.0
    -pair_style lj/cut/coul/long/tip4p 1 2 7 8 0.3 12.0 10.0
    +
    pair_style lj/cut/coul/long/tip4p 1 2 7 8 0.15 12.0
    +pair_style lj/cut/coul/long/tip4p 1 2 7 8 0.15 12.0 10.0
     pair_coeff * * 100.0 3.0
     pair_coeff 1 1 100.0 3.5 9.0 
     
    @@ -155,7 +155,14 @@ with each O atom. For example, if the atom ID of an O atom in a TIP4P water molecule is 500, then its 2 H atoms must have IDs 501 and 502.

    See the howto section for more -information on how to use the TIP4P pair style. +information on how to use the TIP4P pair style. Note that the +neighobr list cutoff for Coulomb interactions is effectively extended +by a distance 2*qdist when using the TIP4P pair style, to account for +the offset distance of the fictitious charges on O atoms in water +molecules. Thus it is typically best in an efficiency sense to use a +LJ cutoff >= Coulomb cutoff + 2*qdist, to shrink the size of the +neighbor list. This leads to slightly larger cost for the long-range +calculation, so you can test the trade-off for your model.

    The following coefficients must be defined for each pair of atoms types via the pair_coeff command as in the examples diff --git a/doc/pair_lj.txt b/doc/pair_lj.txt index 7b76d385f6..ee5494c5dc 100644 --- a/doc/pair_lj.txt +++ b/doc/pair_lj.txt @@ -76,8 +76,8 @@ pair_style lj/cut/coul/long 10.0 8.0 pair_coeff * * 100.0 3.0 pair_coeff 1 1 100.0 3.5 9.0 :pre -pair_style lj/cut/coul/long/tip4p 1 2 7 8 0.3 12.0 -pair_style lj/cut/coul/long/tip4p 1 2 7 8 0.3 12.0 10.0 +pair_style lj/cut/coul/long/tip4p 1 2 7 8 0.15 12.0 +pair_style lj/cut/coul/long/tip4p 1 2 7 8 0.15 12.0 10.0 pair_coeff * * 100.0 3.0 pair_coeff 1 1 100.0 3.5 9.0 :pre @@ -131,7 +131,14 @@ with each O atom. For example, if the atom ID of an O atom in a TIP4P water molecule is 500, then its 2 H atoms must have IDs 501 and 502. See the "howto section"_Section_howto.html#howto_8 for more -information on how to use the TIP4P pair style. +information on how to use the TIP4P pair style. Note that the +neighobr list cutoff for Coulomb interactions is effectively extended +by a distance 2*qdist when using the TIP4P pair style, to account for +the offset distance of the fictitious charges on O atoms in water +molecules. Thus it is typically best in an efficiency sense to use a +LJ cutoff >= Coulomb cutoff + 2*qdist, to shrink the size of the +neighbor list. This leads to slightly larger cost for the long-range +calculation, so you can test the trade-off for your model. The following coefficients must be defined for each pair of atoms types via the "pair_coeff"_pair_coeff.html command as in the examples diff --git a/doc/run.html b/doc/run.html index ddbd74c492..49ecf31294 100644 --- a/doc/run.html +++ b/doc/run.html @@ -159,17 +159,6 @@ print Coord = $q particular atom between runs. Note that the variable "$q" will be evaluated afresh each time the print command is executed.

    -

    IMPORTANT NOTE: You might think you could specify a command -that exits the run by jumping out of the loop, e.g. -one of these two cases: -

    -
    run		100 every 1 "jump SELF afterrun"
    -run		100 every 1 "if '$t < 1.0' then 'jump SELF afterrun'" 
    -
    -

    Unfortunately this will not currently work. The run command simply -executes each command one at a time each time it pauses, then -continues the run. -

    Note that by using the line continuation character "&", the run every command can be spread across many lines, though it is still a single command: @@ -185,17 +174,17 @@ command: run will print the full timing summary, but these operations will be skipped for intermediate runs.

    -

    IMPORTANT NOTE: You might think you could use the every option to -perform a test that exits the run by jumping or breaking out of the -loop, e.g. similar to this logic, which tests on the current -temperature: +

    IMPORTANT NOTE: You might hope to specify a command that exits the run +by jumping out of the loop, e.g.

    variable t equal temp
     run 10000 every 100 "if '$t < 300.0' then 'jump SELF afterrun'" 
     

    Unfortunately this will not currently work. The run command simply -executes the command(s) each time it pauses, then continues the run -until completed. +executes each command one at a time each time it pauses, then +continues the run. You can replace the jump command with a simple +quit command and cause LAMMPS to exit during the +middle of a run when the condition is met.

    Restrictions:

    diff --git a/doc/run.txt b/doc/run.txt index d38af3443a..f9049f28cd 100644 --- a/doc/run.txt +++ b/doc/run.txt @@ -152,17 +152,6 @@ which does 3 runs of 2000 steps and prints the x-coordinate of a particular atom between runs. Note that the variable "$q" will be evaluated afresh each time the print command is executed. -IMPORTANT NOTE: You might think you could specify a command -that exits the run by jumping out of the loop, e.g. -one of these two cases: - -run 100 every 1 "jump SELF afterrun" -run 100 every 1 "if '$t < 1.0' then 'jump SELF afterrun'" :pre - -Unfortunately this will not currently work. The run command simply -executes each command one at a time each time it pauses, then -continues the run. - Note that by using the line continuation character "&", the run every command can be spread across many lines, though it is still a single command: @@ -178,17 +167,17 @@ If the {pre} and {post} options are set to "no" when used with the run will print the full timing summary, but these operations will be skipped for intermediate runs. -IMPORTANT NOTE: You might think you could use the {every} option to -perform a test that exits the run by jumping or breaking out of the -loop, e.g. similar to this logic, which tests on the current -temperature: +IMPORTANT NOTE: You might hope to specify a command that exits the run +by jumping out of the loop, e.g. variable t equal temp run 10000 every 100 "if '$t < 300.0' then 'jump SELF afterrun'" :pre Unfortunately this will not currently work. The run command simply -executes the command(s) each time it pauses, then continues the run -until completed. +executes each command one at a time each time it pauses, then +continues the run. You can replace the jump command with a simple +"quit"_quit.html command and cause LAMMPS to exit during the +middle of a run when the condition is met. [Restrictions:]