diff --git a/doc/Section_commands.txt b/doc/Section_commands.txt index 1c89bceed..319d50e9f 100644 --- a/doc/Section_commands.txt +++ b/doc/Section_commands.txt @@ -1,1096 +1,1114 @@ "Previous Section"_Section_start.html - "LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc - "Next Section"_Section_packages.html :c :link(lws,http://lammps.sandia.gov) :link(ld,Manual.html) :link(lc,Section_commands.html#comm) :line 3. Commands :h3 This section describes how a LAMMPS input script is formatted and the input script commands used to define a LAMMPS simulation. 3.1 "LAMMPS input script"_#cmd_1 3.2 "Parsing rules"_#cmd_2 3.3 "Input script structure"_#cmd_3 3.4 "Commands listed by category"_#cmd_4 3.5 "Commands listed alphabetically"_#cmd_5 :all(b) :line :line 3.1 LAMMPS input script :link(cmd_1),h4 LAMMPS executes by reading commands from a input script (text file), one line at a time. When the input script ends, LAMMPS exits. Each command causes LAMMPS to take some action. It may set an internal variable, read in a file, or run a simulation. Most commands have default settings, which means you only need to use the command if you wish to change the default. In many cases, the ordering of commands in an input script is not important. However the following rules apply: (1) LAMMPS does not read your entire input script and then perform a simulation with all the settings. Rather, the input script is read one line at a time and each command takes effect when it is read. Thus this sequence of commands: timestep 0.5 run 100 run 100 :pre does something different than this sequence: run 100 timestep 0.5 run 100 :pre In the first case, the specified timestep (0.5 fmsec) is used for two simulations of 100 timesteps each. In the 2nd case, the default timestep (1.0 fmsec) is used for the 1st 100 step simulation and a 0.5 fmsec timestep is used for the 2nd one. (2) Some commands are only valid when they follow other commands. For example you cannot set the temperature of a group of atoms until atoms have been defined and a group command is used to define which atoms belong to the group. (3) Sometimes command B will use values that can be set by command A. This means command A must precede command B in the input script if it is to have the desired effect. For example, the "read_data"_read_data.html command initializes the system by setting up the simulation box and assigning atoms to processors. If default values are not desired, the "processors"_processors.html and "boundary"_boundary.html commands need to be used before read_data to tell LAMMPS how to map processors to the simulation box. Many input script errors are detected by LAMMPS and an ERROR or WARNING message is printed. "This section"_Section_errors.html gives more information on what errors mean. The documentation for each command lists restrictions on how the command can be used. :line 3.2 Parsing rules :link(cmd_2),h4 Each non-blank line in the input script is treated as a command. LAMMPS commands are case sensitive. Command names are lower-case, as are specified command arguments. Upper case letters may be used in file names or user-chosen ID strings. Here is how each line in the input script is parsed by LAMMPS: (1) If the last printable character on the line is a "&" character (with no surrounding quotes), the command is assumed to continue on the next line. The next line is concatenated to the previous line by removing the "&" character and newline. This allows long commands to be continued across two or more lines. (2) All characters from the first "#" character onward are treated as comment and discarded. See an exception in (6). Note that a comment after a trailing "&" character will prevent the command from continuing on the next line. Also note that for multi-line commands a single leading "#" will comment out the entire command. (3) The line is searched repeatedly for $ characters, which indicate variables that are replaced with a text string. See an exception in (6). If the $ is followed by curly brackets, then the variable name is the text inside the curly brackets. If no curly brackets follow the $, then the variable name is the single character immediately following the $. Thus $\{myTemp\} and $x refer to variable names "myTemp" and "x". See the "variable"_variable.html command for details of how strings are assigned to variables and how they are substituted for in input script commands. (4) The line is broken into "words" separated by whitespace (tabs, spaces). Note that words can thus contain letters, digits, underscores, or punctuation characters. (5) The first word is the command name. All successive words in the line are arguments. (6) If you want text with spaces to be treated as a single argument, it can be enclosed in either double or single quotes. E.g. print "Volume = $v" print 'Volume = $v' :pre The quotes are removed when the single argument is stored internally. See the "dump modify format"_dump_modify.html or "if"_if.html commands for examples. A "#" or "$" character that is between quotes will not be treated as a comment indicator in (2) or substituted for as a variable in (3). IMPORTANT NOTE: If the argument is itself a command that requires a quoted argument (e.g. using a "print"_print.html command as part of an "if"_if.html or "run every"_run.html command), then the double and single quotes can be nested in the usual manner. See the doc pages for those commands for examples. Only one of level of nesting is allowed, but that should be sufficient for most use cases. :line 3.3 Input script structure :h4,link(cmd_3) This section describes the structure of a typical LAMMPS input script. The "examples" directory in the LAMMPS distribution contains many sample input scripts; the corresponding problems are discussed in "Section_example"_Section_example.html, and animated on the "LAMMPS WWW Site"_lws. A LAMMPS input script typically has 4 parts: Initialization Atom definition Settings Run a simulation :ol The last 2 parts can be repeated as many times as desired. I.e. run a simulation, change some settings, run some more, etc. Each of the 4 parts is now described in more detail. Remember that almost all the commands need only be used if a non-default value is desired. (1) Initialization Set parameters that need to be defined before atoms are created or read-in from a file. The relevant commands are "units"_units.html, "dimension"_dimension.html, "newton"_newton.html, "processors"_processors.html, "boundary"_boundary.html, "atom_style"_atom_style.html, "atom_modify"_atom_modify.html. If force-field parameters appear in the files that will be read, these commands tell LAMMPS what kinds of force fields are being used: "pair_style"_pair_style.html, "bond_style"_bond_style.html, "angle_style"_angle_style.html, "dihedral_style"_dihedral_style.html, "improper_style"_improper_style.html. (2) Atom definition There are 3 ways to define atoms in LAMMPS. Read them in from a data or restart file via the "read_data"_read_data.html or "read_restart"_read_restart.html commands. These files can contain molecular topology information. Or create atoms on a lattice (with no molecular topology), using these commands: "lattice"_lattice.html, "region"_region.html, "create_box"_create_box.html, "create_atoms"_create_atoms.html. The entire set of atoms can be duplicated to make a larger simulation using the "replicate"_replicate.html command. (3) Settings Once atoms and molecular topology are defined, a variety of settings can be specified: force field coefficients, simulation parameters, output options, etc. Force field coefficients are set by these commands (they can also be set in the read-in files): "pair_coeff"_pair_coeff.html, "bond_coeff"_bond_coeff.html, "angle_coeff"_angle_coeff.html, "dihedral_coeff"_dihedral_coeff.html, "improper_coeff"_improper_coeff.html, "kspace_style"_kspace_style.html, "dielectric"_dielectric.html, "special_bonds"_special_bonds.html. Various simulation parameters are set by these commands: "neighbor"_neighbor.html, "neigh_modify"_neigh_modify.html, "group"_group.html, "timestep"_timestep.html, "reset_timestep"_reset_timestep.html, "run_style"_run_style.html, "min_style"_min_style.html, "min_modify"_min_modify.html. Fixes impose a variety of boundary conditions, time integration, and diagnostic options. The "fix"_fix.html command comes in many flavors. Various computations can be specified for execution during a simulation using the "compute"_compute.html, "compute_modify"_compute_modify.html, and "variable"_variable.html commands. Output options are set by the "thermo"_thermo.html, "dump"_dump.html, and "restart"_restart.html commands. (4) Run a simulation A molecular dynamics simulation is run using the "run"_run.html command. Energy minimization (molecular statics) is performed using the "minimize"_minimize.html command. A parallel tempering (replica-exchange) simulation can be run using the "temper"_temper.html command. :line 3.4 Commands listed by category :link(cmd_4),h4 This section lists all LAMMPS commands, grouped by category. The "next section"_#cmd_5 lists the same commands alphabetically. Note that some style options for some commands are part of specific LAMMPS packages, which means they cannot be used unless the package was included when LAMMPS was built. Not all packages are included in a default LAMMPS build. These dependencies are listed as Restrictions in the command's documentation. Initialization: "atom_modify"_atom_modify.html, "atom_style"_atom_style.html, "boundary"_boundary.html, "dimension"_dimension.html, "newton"_newton.html, "processors"_processors.html, "units"_units.html Atom definition: "create_atoms"_create_atoms.html, "create_box"_create_box.html, "lattice"_lattice.html, "read_data"_read_data.html, "read_dump"_read_dump.html, "read_restart"_read_restart.html, "region"_region.html, "replicate"_replicate.html Force fields: "angle_coeff"_angle_coeff.html, "angle_style"_angle_style.html, "bond_coeff"_bond_coeff.html, "bond_style"_bond_style.html, "dielectric"_dielectric.html, "dihedral_coeff"_dihedral_coeff.html, "dihedral_style"_dihedral_style.html, "improper_coeff"_improper_coeff.html, "improper_style"_improper_style.html, "kspace_modify"_kspace_modify.html, "kspace_style"_kspace_style.html, "pair_coeff"_pair_coeff.html, "pair_modify"_pair_modify.html, "pair_style"_pair_style.html, "pair_write"_pair_write.html, "special_bonds"_special_bonds.html Settings: "communicate"_communicate.html, "group"_group.html, "mass"_mass.html, "min_modify"_min_modify.html, "min_style"_min_style.html, "neigh_modify"_neigh_modify.html, "neighbor"_neighbor.html, "reset_timestep"_reset_timestep.html, "run_style"_run_style.html, "set"_set.html, "timestep"_timestep.html, "velocity"_velocity.html Fixes: "fix"_fix.html, "fix_modify"_fix_modify.html, "unfix"_unfix.html Computes: "compute"_compute.html, "compute_modify"_compute_modify.html, "uncompute"_uncompute.html Output: "dump"_dump.html, "dump image"_dump_image.html, "dump_modify"_dump_modify.html, "restart"_restart.html, "thermo"_thermo.html, "thermo_modify"_thermo_modify.html, "thermo_style"_thermo_style.html, "undump"_undump.html, "write_restart"_write_restart.html Actions: "delete_atoms"_delete_atoms.html, "delete_bonds"_delete_bonds.html, "displace_atoms"_displace_atoms.html, "change_box"_change_box.html, "minimize"_minimize.html, "neb"_neb.html "prd"_prd.html, "rerun"_rerun.html, "run"_run.html, "temper"_temper.html Miscellaneous: "clear"_clear.html, "echo"_echo.html, "if"_if.html, "include"_include.html, "jump"_jump.html, "label"_label.html, "log"_log.html, "next"_next.html, "print"_print.html, "shell"_shell.html, "variable"_variable.html :line 3.5 Individual commands :h4,link(cmd_5),link(comm) This section lists all LAMMPS commands alphabetically, with a separate listing below of styles within certain commands. The "previous section"_#cmd_4 lists the same commands, grouped by category. Note that some style options for some commands are part of specific LAMMPS packages, which means they cannot be used unless the package was included when LAMMPS was built. Not all packages are included in a default LAMMPS build. These dependencies are listed as Restrictions in the command's documentation. "angle_coeff"_angle_coeff.html, "angle_style"_angle_style.html, "atom_modify"_atom_modify.html, "atom_style"_atom_style.html, "balance"_balance.html, "bond_coeff"_bond_coeff.html, "bond_style"_bond_style.html, "boundary"_boundary.html, "box"_box.html, "change_box"_change_box.html, "clear"_clear.html, "communicate"_communicate.html, "compute"_compute.html, "compute_modify"_compute_modify.html, "create_atoms"_create_atoms.html, "create_box"_create_box.html, "delete_atoms"_delete_atoms.html, "delete_bonds"_delete_bonds.html, "dielectric"_dielectric.html, "dihedral_coeff"_dihedral_coeff.html, "dihedral_style"_dihedral_style.html, "dimension"_dimension.html, "displace_atoms"_displace_atoms.html, "dump"_dump.html, "dump image"_dump_image.html, "dump_modify"_dump_modify.html, "echo"_echo.html, "fix"_fix.html, "fix_modify"_fix_modify.html, "group"_group.html, "if"_if.html, "improper_coeff"_improper_coeff.html, "improper_style"_improper_style.html, "include"_include.html, "jump"_jump.html, "kspace_modify"_kspace_modify.html, "kspace_style"_kspace_style.html, "label"_label.html, "lattice"_lattice.html, "log"_log.html, "mass"_mass.html, "minimize"_minimize.html, "min_modify"_min_modify.html, "min_style"_min_style.html, "neb"_neb.html, "neigh_modify"_neigh_modify.html, "neighbor"_neighbor.html, "newton"_newton.html, "next"_next.html, "package"_package.html, "pair_coeff"_pair_coeff.html, "pair_modify"_pair_modify.html, "pair_style"_pair_style.html, "pair_write"_pair_write.html, "partition"_partition.html, "prd"_prd.html, "print"_print.html, "processors"_processors.html, "quit"_quit.html, "read_data"_read_data.html, "read_dump"_read_dump.html, "read_restart"_read_restart.html, "region"_region.html, "replicate"_replicate.html, "rerun"_rerun.html, "reset_timestep"_reset_timestep.html, "restart"_restart.html, "run"_run.html, "run_style"_run_style.html, "set"_set.html, "shell"_shell.html, "special_bonds"_special_bonds.html, "suffix"_suffix.html, "tad"_tad.html, "temper"_temper.html, "thermo"_thermo.html, "thermo_modify"_thermo_modify.html, "thermo_style"_thermo_style.html, "timestep"_timestep.html, "uncompute"_uncompute.html, "undump"_undump.html, "unfix"_unfix.html, "units"_units.html, "variable"_variable.html, "velocity"_velocity.html, "write_restart"_write_restart.html :tb(c=6,ea=c) :line Fix styles :h4 See the "fix"_fix.html command for one-line descriptions of each style or click on the style itself for a full description: "adapt"_fix_adapt.html, "addforce"_fix_addforce.html, "append/atoms"_fix_append_atoms.html, "aveforce"_fix_aveforce.html, "ave/atom"_fix_ave_atom.html, "ave/correlate"_fix_ave_correlate.html, "ave/histo"_fix_ave_histo.html, "ave/spatial"_fix_ave_spatial.html, "ave/time"_fix_ave_time.html, "balance"_fix_balance.html, "bond/break"_fix_bond_break.html, "bond/create"_fix_bond_create.html, "bond/swap"_fix_bond_swap.html, "box/relax"_fix_box_relax.html, "deform"_fix_deform.html, "deposit"_fix_deposit.html, "drag"_fix_drag.html, "dt/reset"_fix_dt_reset.html, "efield"_fix_efield.html, "enforce2d"_fix_enforce2d.html, "evaporate"_fix_evaporate.html, "external"_fix_external.html, "freeze"_fix_freeze.html, "gcmc"_fix_gcmc.html, "gravity"_fix_gravity.html, "heat"_fix_heat.html, "indent"_fix_indent.html, "langevin"_fix_langevin.html, "lineforce"_fix_lineforce.html, "momentum"_fix_momentum.html, "move"_fix_move.html, "msst"_fix_msst.html, "neb"_fix_neb.html, "nph"_fix_nh.html, "nphug"_fix_nphug.html, "nph/asphere"_fix_nph_asphere.html, "nph/sphere"_fix_nph_sphere.html, "npt"_fix_nh.html, "npt/asphere"_fix_npt_asphere.html, "npt/sphere"_fix_npt_sphere.html, "nve"_fix_nve.html, "nve/asphere"_fix_nve_asphere.html, "nve/asphere/noforce"_fix_nve_asphere_noforce.html, "nve/body"_fix_nve_body.html, "nve/limit"_fix_nve_limit.html, "nve/line"_fix_nve_line.html, "nve/noforce"_fix_nve_noforce.html, "nve/sphere"_fix_nve_sphere.html, "nve/tri"_fix_nve_tri.html, "nvt"_fix_nh.html, "nvt/asphere"_fix_nvt_asphere.html, "nvt/sllod"_fix_nvt_sllod.html, "nvt/sphere"_fix_nvt_sphere.html, "orient/fcc"_fix_orient_fcc.html, "planeforce"_fix_planeforce.html, "poems"_fix_poems.html, "pour"_fix_pour.html, "press/berendsen"_fix_press_berendsen.html, "print"_fix_print.html, "qeq/comb"_fix_qeq_comb.html, "reax/bonds"_fix_reax_bonds.html, "recenter"_fix_recenter.html, "restrain"_fix_restrain.html, "rigid"_fix_rigid.html, "rigid/nph"_fix_rigid.html, "rigid/npt"_fix_rigid.html, "rigid/nve"_fix_rigid.html, "rigid/nvt"_fix_rigid.html, "rigid/small"_fix_rigid.html, "setforce"_fix_setforce.html, "shake"_fix_shake.html, "spring"_fix_spring.html, "spring/rg"_fix_spring_rg.html, "spring/self"_fix_spring_self.html, "srd"_fix_srd.html, "store/force"_fix_store_force.html, "store/state"_fix_store_state.html, "temp/berendsen"_fix_temp_berendsen.html, "temp/rescale"_fix_temp_rescale.html, "thermal/conductivity"_fix_thermal_conductivity.html, "tmd"_fix_tmd.html, "ttm"_fix_ttm.html, "viscosity"_fix_viscosity.html, "viscous"_fix_viscous.html, "wall/colloid"_fix_wall.html, "wall/gran"_fix_wall_gran.html, "wall/harmonic"_fix_wall.html, "wall/lj126"_fix_wall.html, "wall/lj93"_fix_wall.html, "wall/piston"_fix_wall_piston.html, "wall/reflect"_fix_wall_reflect.html, "wall/region"_fix_wall_region.html, "wall/srd"_fix_wall_srd.html :tb(c=8,ea=c) These are fix styles contributed by users, which can be used if "LAMMPS is built with the appropriate package"_Section_start.html#start_3. "addtorque"_fix_addtorque.html, "atc"_fix_atc.html, "colvars"_fix_colvars.html, "imd"_fix_imd.html, "langevin/eff"_fix_langevin_eff.html, "meso"_fix_meso.html, "meso/stationary"_fix_meso_stationary.html, "nph/eff"_fix_nh_eff.html, "npt/eff"_fix_nh_eff.html, "nve/eff"_fix_nve_eff.html, "nvt/eff"_fix_nh_eff.html, "nvt/sllod/eff"_fix_nvt_sllod_eff.html, "qeq/reax"_fix_qeq_reax.html, "reax/c/bonds"_fix_reaxc_bonds.html, "smd"_fix_smd.html, "temp/rescale/eff"_fix_temp_rescale_eff.html :tb(c=6,ea=c) These are accelerated fix styles, which can be used if LAMMPS is built with the "appropriate accelerated package"_Section_accelerate.html. "freeze/cuda"_fix_freeze.html, "addforce/cuda"_fix_addforce.html, "aveforce/cuda"_fix_aveforce.html, "enforce2d/cuda"_fix_enforce2d.html, "gravity/cuda"_fix_gravity.html, "gravity/omp"_fix_gravity.html, +"nph/omp"_fix_nh.html, +"nphug/omp"_fix_nphug.html, +"nph/asphere/omp"_fix_nph_asphere.html, +"nph/sphere/omp"_fix_nph_sphere.html, "npt/cuda"_fix_nh.html, +"npt/omp"_fix_nh.html, +"npt/asphere/omp"_fix_npt_asphere.html, +"npt/sphere/omp"_fix_npt_sphere.html, "nve/cuda"_fix_nh.html, +"nve/omp"_fix_nve.html, "nve/sphere/omp"_fix_nve_sphere.html, "nvt/cuda"_fix_nh.html, +"nvt/omp"_fix_nh.html, +"nvt/asphere/omp"_fix_nvt_asphere.html, +"nvt/sllod/omp"_fix_nvt_sllod.html, +"nvt/sphere/omp"_fix_nvt_sphere.html, "qeq/comb/omp"_fix_qeq_comb.html, +"rigid/omp"_fix_rigid.html, +"rigid/nph/omp"_fix_rigid.html, +"rigid/npt/omp"_fix_rigid.html, +"rigid/nve/omp"_fix_rigid.html, +"rigid/nvt/omp"_fix_rigid.html, +"rigid/small/omp"_fix_rigid.html, "setforce/cuda"_fix_setforce.html, "shake/cuda"_fix_shake.html, "temp/berendsen/cuda"_fix_temp_berendsen.html, "temp/rescale/cuda"_fix_temp_rescale.html, "temp/rescale/limit/cuda"_fix_temp_rescale.html, "viscous/cuda"_fix_viscous.html :tb(c=6,ea=c) :line Compute styles :h4 See the "compute"_compute.html command for one-line descriptions of each style or click on the style itself for a full description: "angle/local"_compute_angle_local.html, "atom/molecule"_compute_atom_molecule.html, "body/local"_compute_body_local.html, "bond/local"_compute_bond_local.html, "centro/atom"_compute_centro_atom.html, "cluster/atom"_compute_cluster_atom.html, "cna/atom"_compute_cna_atom.html, "com"_compute_com.html, "com/molecule"_compute_com_molecule.html, "contact/atom"_compute_contact_atom.html, "coord/atom"_compute_coord_atom.html, "damage/atom"_compute_damage_atom.html, "dihedral/local"_compute_dihedral_local.html, "displace/atom"_compute_displace_atom.html, "erotate/asphere"_compute_erotate_asphere.html, "erotate/sphere"_compute_erotate_sphere.html, "erotate/sphere/atom"_compute_erotate_sphere_atom.html, "event/displace"_compute_event_displace.html, "group/group"_compute_group_group.html, "gyration"_compute_gyration.html, "gyration/molecule"_compute_gyration_molecule.html, "heat/flux"_compute_heat_flux.html, "improper/local"_compute_improper_local.html, "inertia/molecule"_compute_inertia_molecule.html, "ke"_compute_ke.html, "ke/atom"_compute_ke_atom.html, "msd"_compute_msd.html, "msd/molecule"_compute_msd_molecule.html, "pair"_compute_pair.html, "pair/local"_compute_pair_local.html, "pe"_compute_pe.html, "pe/atom"_compute_pe_atom.html, "pressure"_compute_pressure.html, "property/atom"_compute_property_atom.html, "property/local"_compute_property_local.html, "property/molecule"_compute_property_molecule.html, "rdf"_compute_rdf.html, "reduce"_compute_reduce.html, "reduce/region"_compute_reduce.html, "slice"_compute_slice.html, "stress/atom"_compute_stress_atom.html, "temp"_compute_temp.html, "temp/asphere"_compute_temp_asphere.html, "temp/com"_compute_temp_com.html, "temp/deform"_compute_temp_deform.html, "temp/partial"_compute_temp_partial.html, "temp/profile"_compute_temp_profile.html, "temp/ramp"_compute_temp_ramp.html, "temp/region"_compute_temp_region.html, "temp/sphere"_compute_temp_sphere.html, "ti"_compute_ti.html, "voronoi/atom"_compute_voronoi_atom.html :tb(c=6,ea=c) These are compute styles contributed by users, which can be used if "LAMMPS is built with the appropriate package"_Section_start.html#start_3. "ackland/atom"_compute_ackland_atom.html, "ke/eff"_compute_ke_eff.html, "ke/atom/eff"_compute_ke_atom_eff.html, "meso_e/atom"_compute_meso_e_atom.html, "meso_rho/atom"_compute_meso_rho_atom.html, "meso_t/atom"_compute_meso_t_atom.html, "temp/eff"_compute_temp_eff.html, "temp/deform/eff"_compute_temp_deform_eff.html, "temp/region/eff"_compute_temp_region_eff.html, "temp/rotate"_compute_temp_rotate.html :tb(c=6,ea=c) These are accelerated compute styles, which can be used if LAMMPS is built with the "appropriate accelerated package"_Section_accelerate.html. "pe/cuda"_compute_pe.html, "pressure/cuda"_compute_pressure.html, "temp/cuda"_compute_temp.html, "temp/partial/cuda"_compute_temp_partial.html :tb(c=6,ea=c) :line Pair_style potentials :h4 See the "pair_style"_pair_style.html command for an overview of pair potentials. Click on the style itself for a full description: "none"_pair_none.html, "hybrid"_pair_hybrid.html, "hybrid/overlay"_pair_hybrid.html, "adp"_pair_adp.html, "airebo"_pair_airebo.html, "beck"_pair_beck.html, "body"_pair_body.html, "bop"_pair_bop.html, "born"_pair_born.html, "born/coul/long"_pair_born.html, "born/coul/msm"_pair_born.html, "born/coul/wolf"_pair_born.html, "brownian"_pair_brownian.html, "brownian/poly"_pair_brownian.html, "buck"_pair_buck.html, "buck/coul/cut"_pair_buck.html, "buck/coul/long"_pair_buck.html, "buck/coul/msm"_pair_buck.html, "buck/long/coul/long"_pair_buck_long.html, "colloid"_pair_colloid.html, "comb"_pair_comb.html, "coul/cut"_pair_coul.html, "coul/debye"_pair_coul.html, "coul/dsf"_pair_coul.html, "coul/long"_pair_coul.html, "coul/msm"_pair_coul.html, "coul/wolf"_pair_coul.html, "dipole/cut"_pair_dipole.html, "dpd"_pair_dpd.html, "dpd/tstat"_pair_dpd.html, "dsmc"_pair_dsmc.html, "eam"_pair_eam.html, "eam/alloy"_pair_eam.html, "eam/fs"_pair_eam.html, "eim"_pair_eim.html, "gauss"_pair_gauss.html, "gayberne"_pair_gayberne.html, "gran/hertz/history"_pair_gran.html, "gran/hooke"_pair_gran.html, "gran/hooke/history"_pair_gran.html, "hbond/dreiding/lj"_pair_hbond_dreiding.html, "hbond/dreiding/morse"_pair_hbond_dreiding.html, "kim"_pair_kim.html, "lcbop"_pair_lcbop.html, "line/lj"_pair_line_lj.html, "lj/charmm/coul/charmm"_pair_charmm.html, "lj/charmm/coul/charmm/implicit"_pair_charmm.html, "lj/charmm/coul/long"_pair_charmm.html, "lj/charmm/coul/msm"_pair_charmm.html, "lj/class2"_pair_class2.html, "lj/class2/coul/cut"_pair_class2.html, "lj/class2/coul/long"_pair_class2.html, "lj/cut"_pair_lj.html, "lj/cut/coul/cut"_pair_lj.html, "lj/cut/coul/debye"_pair_lj.html, "lj/cut/coul/dsf"_pair_lj.html, "lj/cut/coul/long"_pair_lj.html, "lj/cut/coul/msm"_pair_lj.html, "lj/long/coul/long"_pair_lj_long.html, "lj/cut/tip4p/long"_pair_lj.html, "lj/long/tip4p/long"_pair_lj_long.html, "lj/expand"_pair_lj_expand.html, "lj/gromacs"_pair_gromacs.html, "lj/gromacs/coul/gromacs"_pair_gromacs.html, "lj/smooth"_pair_lj_smooth.html, "lj/smooth/linear"_pair_lj_smooth_linear.html, "lj96/cut"_pair_lj96.html, "lubricate"_pair_lubricate.html, "lubricate/poly"_pair_lubricate.html, "lubricateU"_pair_lubricateU.html, "lubricateU/poly"_pair_lubricateU.html, "meam"_pair_meam.html, "mie/cut"_pair_mie.html, "morse"_pair_morse.html, "peri/lps"_pair_peri.html, "peri/pmb"_pair_peri.html, "reax"_pair_reax.html, "rebo"_pair_airebo.html, "resquared"_pair_resquared.html, "soft"_pair_soft.html, "sw"_pair_sw.html, "table"_pair_table.html, "tersoff"_pair_tersoff.html, "tersoff/zbl"_pair_tersoff_zbl.html, "tri/lj"_pair_tri_lj.html, "yukawa"_pair_yukawa.html, "yukawa/colloid"_pair_yukawa_colloid.html :tb(c=4,ea=c) These are pair styles contributed by users, which can be used if "LAMMPS is built with the appropriate package"_Section_start.html#start_3. "awpmd/cut"_pair_awpmd.html, "coul/diel"_pair_coul_diel.html, "dipole/sf"_pair_dipole.html, "eam/cd"_pair_eam.html, "edip"_pair_edip.html, "eff/cut"_pair_eff.html, "gauss/cut"_pair_gauss.html, "lj/sdk"_pair_sdk.html, "lj/sdk/coul/long"_pair_sdk.html, "lj/sdk/coul/msm"_pair_sdk.html, "lj/sf"_pair_lj_sf.html, "meam/spline"_pair_meam_spline.html, "meam/sw/spline"_pair_meam_sw_spline.html, "reax/c"_pair_reax_c.html, "sph/heatconduction"_pair_sph_heatconduction.html, "sph/idealgas"_pair_sph_idealgas.html, "sph/lj"_pair_sph_lj.html, "sph/rhosum"_pair_sph_rhosum.html, "sph/taitwater"_pair_sph_taitwater.html, "sph/taitwater/morris"_pair_sph_taitwater_morris.html, "tersoff/table"_pair_tersoff.html :tb(c=4,ea=c) These are accelerated pair styles, which can be used if LAMMPS is built with the "appropriate accelerated package"_Section_accelerate.html. "adp/omp"_pair_adp.html, "airebo/omp"_pair_airebo.html, "beck/omp"_pair_beck.html, "born/coul/long/cuda"_pair_born.html, "born/coul/long/gpu"_pair_born.html, "born/coul/long/omp"_pair_born.html, "born/coul/msm/omp"_pair_born.html, "born/coul/wolf/gpu"_pair_born.html, "born/coul/wolf/omp"_pair_born.html, "born/gpu"_pair_born.html, "born/omp"_pair_born.html, "brownian/omp"_pair_brownian.html, "brownian/poly/omp"_pair_brownian.html, "buck/coul/cut/cuda"_pair_buck.html, "buck/coul/cut/gpu"_pair_buck.html, "buck/coul/cut/omp"_pair_buck.html, "buck/coul/long/cuda"_pair_buck.html, "buck/coul/long/gpu"_pair_buck.html, "buck/coul/long/omp"_pair_buck.html, "buck/coul/msm/omp"_pair_buck.html, "buck/cuda"_pair_buck.html, "buck/long/coul/long/omp"_pair_buck_long.html, "buck/gpu"_pair_buck.html, "buck/omp"_pair_buck.html, "colloid/gpu"_pair_colloid.html, "colloid/omp"_pair_colloid.html, "comb/omp"_pair_comb.html, "coul/cut/omp"_pair_coul.html, "coul/debye/omp"_pair_coul.html, "coul/dsf/gpu"_pair_coul.html, "coul/long/gpu"_pair_coul.html, "coul/long/omp"_pair_coul.html, "coul/msm/omp"_pair_coul.html, "coul/wolf"_pair_coul.html, "dipole/cut/gpu"_pair_dipole.html, "dipole/cut/omp"_pair_dipole.html, "dipole/sf/gpu"_pair_dipole.html, "dipole/sf/omp"_pair_dipole.html, "dpd/omp"_pair_dpd.html, "dpd/tstat/omp"_pair_dpd.html, "eam/alloy/cuda"_pair_eam.html, "eam/alloy/gpu"_pair_eam.html, "eam/alloy/omp"_pair_eam.html, "eam/alloy/opt"_pair_eam.html, "eam/cd/omp"_pair_eam.html, "eam/cuda"_pair_eam.html, "eam/fs/cuda"_pair_eam.html, "eam/fs/gpu"_pair_eam.html, "eam/fs/omp"_pair_eam.html, "eam/fs/opt"_pair_eam.html, "eam/gpu"_pair_eam.html, "eam/omp"_pair_eam.html, "eam/opt"_pair_eam.html, "edip/omp"_pair_edip.html, "eim/omp"_pair_eim.html, "gauss/gpu"_pair_gauss.html, "gauss/omp"_pair_gauss.html, "gayberne/gpu"_pair_gayberne.html, "gayberne/omp"_pair_gayberne.html, "gran/hertz/history/omp"_pair_gran.html, "gran/hooke/cuda"_pair_gran.html, "gran/hooke/history/omp"_pair_gran.html, "gran/hooke/omp"_pair_gran.html, "hbond/dreiding/lj/omp"_pair_hbond_dreiding.html, "hbond/dreiding/morse/omp"_pair_hbond_dreiding.html, "line/lj/omp"_pair_line_lj.html, "lj/charmm/coul/charmm/cuda"_pair_charmm.html, "lj/charmm/coul/charmm/omp"_pair_charmm.html, "lj/charmm/coul/charmm/implicit/cuda"_pair_charmm.html, "lj/charmm/coul/charmm/implicit/omp"_pair_charmm.html, "lj/charmm/coul/long/cuda"_pair_charmm.html, "lj/charmm/coul/long/gpu"_pair_charmm.html, "lj/charmm/coul/long/omp"_pair_charmm.html, "lj/charmm/coul/long/opt"_pair_charmm.html, "lj/class2/coul/cut/cuda"_pair_class2.html, "lj/class2/coul/cut/omp"_pair_class2.html, "lj/class2/coul/long/cuda"_pair_class2.html, "lj/class2/coul/long/gpu"_pair_class2.html, "lj/class2/coul/long/omp"_pair_class2.html, "lj/class2/coul/msm/omp"_pair_class2.html, "lj/class2/cuda"_pair_class2.html, "lj/class2/gpu"_pair_class2.html, "lj/class2/omp"_pair_class2.html, "lj/long/coul/long/omp"_pair_lj_long.html, "lj/cut/coul/cut/cuda"_pair_lj.html, "lj/cut/coul/cut/gpu"_pair_lj.html, "lj/cut/coul/cut/omp"_pair_lj.html, "lj/cut/coul/debye/cuda"_pair_lj.html, "lj/cut/coul/debye/gpu"_pair_lj.html, "lj/cut/coul/debye/omp"_pair_lj.html, "lj/cut/coul/dsf/gpu"_pair_lj.html, "lj/cut/coul/long/cuda"_pair_lj.html, "lj/cut/coul/long/gpu"_pair_lj.html, "lj/cut/coul/long/omp"_pair_lj.html, "lj/cut/coul/long/opt"_pair_lj.html, "lj/cut/coul/msm/opt"_pair_lj.html, "lj/cut/cuda"_pair_lj.html, "lj/cut/experimental/cuda"_pair_lj.html, "lj/cut/gpu"_pair_lj.html, "lj/cut/omp"_pair_lj.html, "lj/cut/opt"_pair_lj.html, "lj/cut/tip4p/long/omp"_pair_lj.html, "lj/cut/tip4p/long/opt"_pair_lj.html, "lj/expand/cuda"_pair_lj_expand.html, "lj/expand/gpu"_pair_lj_expand.html, "lj/expand/omp"_pair_lj_expand.html, "lj/gromacs/coul/gromacs/cuda"_pair_gromacs.html, "lj/gromacs/coul/gromacs/omp"_pair_gromacs.html, "lj/gromacs/cuda"_pair_gromacs.html, "lj/gromacs/omp"_pair_gromacs.html, "lj/sdk/gpu"_pair_sdk.html, "lj/sdk/omp"_pair_sdk.html, "lj/sdk/coul/long/gpu"_pair_sdk.html, "lj/sdk/coul/long/omp"_pair_sdk.html, "lj/sdk/coul/msm/omp"_pair_sdk.html, "lj/sf/omp"_pair_lj_sf.html, "lj/smooth/cuda"_pair_lj_smooth.html, "lj/smooth/omp"_pair_lj_smooth.html, "lj/smooth/linear/omp"_pair_lj_smooth_linear.html, "lj96/cut/cuda"_pair_lj96.html, "lj96/cut/gpu"_pair_lj96.html, "lj96/cut/omp"_pair_lj96.html, "lubricate/omp"_pair_lubricate.html, "lubricate/poly/omp"_pair_lubricate.html, "meam/spline/omp"_pair_meam_spline.html, "morse/cuda"_pair_morse.html, "morse/gpu"_pair_morse.html, "morse/omp"_pair_morse.html, "morse/opt"_pair_morse.html, "peri/lps/omp"_pair_peri.html, "peri/pmb/omp"_pair_peri.html, "rebo/omp"_pair_airebo.html, "resquared/gpu"_pair_resquared.html, "resquared/omp"_pair_resquared.html, "soft/omp"_pair_soft.html, "sw/cuda"_pair_sw.html, "sw/omp"_pair_sw.html, "table/gpu"_pair_table.html, "table/omp"_pair_table.html, "tersoff/cuda"_pair_tersoff.html, "tersoff/omp"_pair_tersoff.html, "tersoff/table/omp"_pair_tersoff.html, "tersoff/zbl/omp"_pair_tersoff_zbl.html, "tri/lj/omp"_pair_tri_lj.html, "yukawa/gpu"_pair_yukawa.html, "yukawa/omp"_pair_yukawa.html, "yukawa/colloid/gpu"_pair_yukawa_colloid.html, "yukawa/colloid/omp"_pair_yukawa_colloid.html :tb(c=4,ea=c) :line Bond_style potentials :h4 See the "bond_style"_bond_style.html command for an overview of bond potentials. Click on the style itself for a full description: "none"_bond_none.html, "hybrid"_bond_hybrid.html, "class2"_bond_class2.html, "fene"_bond_fene.html, "fene/expand"_bond_fene_expand.html, "harmonic"_bond_harmonic.html, "morse"_bond_morse.html, "nonlinear"_bond_nonlinear.html, "quartic"_bond_quartic.html, "table"_bond_table.html :tb(c=4,ea=c,w=100) These are bond styles contributed by users, which can be used if "LAMMPS is built with the appropriate package"_Section_start.html#start_3. "harmonic/shift"_bond_harmonic_shift.html, "harmonic/shift/cut"_bond_harmonic_shift_cut.html :tb(c=4,ea=c) These are accelerated bond styles, which can be used if LAMMPS is built with the "appropriate accelerated package"_Section_accelerate.html. "class2/omp"_bond_class2.html, "fene/omp"_bond_fene.html, "fene/expand/omp"_bond_fene_expand.html, "harmonic/omp"_bond_harmonic.html, "harmonic/shift/omp"_bond_harmonic_shift.html, "harmonic/shift/cut/omp"_bond_harmonic_shift_cut.html, "morse/omp"_bond_morse.html, "nonlinear/omp"_bond_nonlinear.html, "quartic/omp"_bond_quartic.html, "table/omp"_bond_table.html :tb(c=4,ea=c,w=100) :line Angle_style potentials :h4 See the "angle_style"_angle_style.html command for an overview of angle potentials. Click on the style itself for a full description: "none"_angle_none.html, "hybrid"_angle_hybrid.html, "charmm"_angle_charmm.html, "class2"_angle_class2.html, "cosine"_angle_cosine.html, "cosine/delta"_angle_cosine_delta.html, "cosine/periodic"_angle_cosine_periodic.html, "cosine/squared"_angle_cosine_squared.html, "harmonic"_angle_harmonic.html, "table"_angle_table.html :tb(c=4,ea=c,w=100) These are angle styles contributed by users, which can be used if "LAMMPS is built with the appropriate package"_Section_start.html#start_3. "sdk"_angle_sdk.html, "cosine/shift"_angle_cosine_shift.html, "cosine/shift/exp"_angle_cosine_shift_exp.html, "dipole"_angle_dipole.html, "fourier"_angle_fourier.html, "fourier/simple"_angle_fourier_simple.html, "quartic"_angle_quartic.html :tb(c=4,ea=c) These are accelerated angle styles, which can be used if LAMMPS is built with the "appropriate accelerated package"_Section_accelerate.html. "charmm/omp"_angle_charmm.html, "class2/omp"_angle_class2.html, "cosine/omp"_angle_cosine.html, "cosine/delta/omp"_angle_cosine_delta.html, "cosine/periodic/omp"_angle_cosine_periodic.html, "cosine/shift/omp"_angle_cosine_shift.html, "cosine/shift/exp/omp"_angle_cosine_shift_exp.html, "cosine/squared/omp"_angle_cosine_squared.html, "dipole/omp"_angle_dipole.html "fourier/omp"_angle_fourier.html, "fourier/simple/omp"_angle_fourier_simple.html, "harmonic/omp"_angle_harmonic.html, "quartic/omp"_angle_quartic.html "table/omp"_angle_table.html :tb(c=4,ea=c,w=100) :line Dihedral_style potentials :h4 See the "dihedral_style"_dihedral_style.html command for an overview of dihedral potentials. Click on the style itself for a full description: "none"_dihedral_none.html, "hybrid"_dihedral_hybrid.html, "charmm"_dihedral_charmm.html, "class2"_dihedral_class2.html, "harmonic"_dihedral_harmonic.html, "helix"_dihedral_helix.html, "multi/harmonic"_dihedral_multi_harmonic.html, "opls"_dihedral_opls.html :tb(c=4,ea=c,w=100) These are dihedral styles contributed by users, which can be used if "LAMMPS is built with the appropriate package"_Section_start.html#start_3. "cosine/shift/exp"_dihedral_cosine_shift_exp.html, "fourier"_dihedral_fourier.html, "nharmonic"_dihedral_nharmonic.html, "quadratic"_dihedral_quadratic.html, "table"_dihedral_table.html :tb(c=4,ea=c) These are accelerated dihedral styles, which can be used if LAMMPS is built with the "appropriate accelerated package"_Section_accelerate.html. "charmm/omp"_dihedral_charmm.html, "class2/omp"_dihedral_class2.html, "cosine/shift/exp/omp"_dihedral_cosine_shift_exp.html, "fourier/omp"_dihedral_fourier.html, "harmonic/omp"_dihedral_harmonic.html, "helix/omp"_dihedral_helix.html, "multi/harmonic/omp"_dihedral_multi_harmonic.html, "nharmonic/omp"_dihedral_nharmonic.html, "opls/omp"_dihedral_opls.html "quadratic/omp"_dihedral_quadratic.html, "table/omp"_dihedral_table.html :tb(c=4,ea=c,w=100) :line Improper_style potentials :h4 See the "improper_style"_improper_style.html command for an overview of improper potentials. Click on the style itself for a full description: "none"_improper_none.html, "hybrid"_improper_hybrid.html, "class2"_improper_class2.html, "cvff"_improper_cvff.html, "harmonic"_improper_harmonic.html, "umbrella"_improper_umbrella.html :tb(c=4,ea=c,w=100) These are improper styles contributed by users, which can be used if "LAMMPS is built with the appropriate package"_Section_start.html#start_3. "cossq"_improper_cossq.html, "fourier"_improper_fourier.html, "ring"_improper_ring.html :tb(c=4,ea=c) These are accelerated improper styles, which can be used if LAMMPS is built with the "appropriate accelerated package"_Section_accelerate.html. "class2/omp"_improper_class2.html, "cossq/omp"_improper_cossq.html, "cvff/omp"_improper_cvff.html, "fourier/omp"_improper_fourier.html, "harmonic/omp"_improper_harmonic.html, "ring/omp"_improper_ring.html, "umbrella/omp"_improper_umbrella.html :tb(c=4,ea=c,w=100) :line Kspace solvers :h4 See the "kspace_style"_kspace_style.html command for an overview of Kspace solvers. Click on the style itself for a full description: "ewald"_kspace_style.html, "ewald/disp"_kspace_style.html, "msm"_kspace_style.html, "msm/cg"_kspace_style.html, "pppm"_kspace_style.html, "pppm/cg"_kspace_style.html, "pppm/disp"_kspace_style.html, "pppm/disp/tip4p"_kspace_style.html, "pppm/tip4p"_kspace_style.html :tb(c=4,ea=c,w=100) These are accelerated Kspace solvers, which can be used if LAMMPS is built with the "appropriate accelerated package"_Section_accelerate.html. "ewald/omp"_kspace_style.html, "msm/omp"_kspace_style.html, "msm/cg/omp"_kspace_style.html, "pppm/cuda"_kspace_style.html, "pppm/gpu"_kspace_style.html, "pppm/omp"_kspace_style.html, "pppm/cg/omp"_kspace_style.html, "pppm/tip4p/omp"_kspace_style.html :tb(c=4,ea=c) diff --git a/doc/fix_nh.txt b/doc/fix_nh.txt index fb91a9ce4..e0983c233 100644 --- a/doc/fix_nh.txt +++ b/doc/fix_nh.txt @@ -1,596 +1,600 @@ "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 nvt command :h3 fix nvt/cuda command :h3 +fix nvt/omp command :h3 fix npt command :h3 fix npt/cuda command :h3 +fix npt/omp command :h3 fix nph command :h3 +fix nph/omp command :h3 [Syntax:] 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} or {scalexy} or {scaleyz} or {scalexz} or {flip} or {fixedpoint} {temp} values = Tstart Tstop Tdamp Tstart,Tstop = external temperature at start/end of run Tdamp = temperature damping parameter (time units) {iso} or {aniso} or {tri} values = Pstart Pstop Pdamp Pstart,Pstop = scalar external pressure at start/end of run (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 component at start/end of run (pressure units) Pdamp = stress damping parameter (time units) {couple} = {none} or {xyz} or {xy} or {yz} or {xz} {tchain} value = N N = length of thermostat chain (1 = single thermostat) {pchain} values = N N length of thermostat chain on barostat (0 = no thermostat) {mtk} value = {yes} or {no} = add in MTK adjustment term or not {tloop} value = M M = number of sub-cycles to perform on thermostat {ploop} value = M M = number of sub-cycles to perform on barostat thermostat {nreset} value = reset reference cell every this many timesteps {drag} value = Df Df = drag factor added to barostat/thermostat (0.0 = no drag) {dilate} value = dilate-group-ID dilate-group-ID = only dilate atoms in this group due to barostat volume changes {scalexy} value = {yes} or {no} = scale xy with ly {scaleyz} value = {yes} or {no} = scale yz with lz {scalexz} value = {yes} or {no} = scale xz with lz {flip} value = {yes} or {no} = allow or disallow box flips when it becomes highly skewed {fixedpoint} values = x y z x,y,z = perform barostat dilation/contraction around this point (distance units) :pre :ule [Examples:] fix 1 all nvt temp 300.0 300.0 100.0 fix 1 water npt temp 300.0 300.0 100.0 iso 0.0 0.0 1000.0 fix 2 jello npt temp 300.0 300.0 100.0 tri 5.0 5.0 1000.0 fix 2 ice nph x 1.0 1.0 0.5 y 2.0 2.0 0.5 z 3.0 3.0 0.5 yz 0.1 0.1 0.5 xz 0.2 0.2 0.5 xy 0.3 0.3 0.5 nreset 1000 :pre [Description:] These commands perform time integration on Nose-Hoover style non-Hamiltonian equations of motion which are designed to generate positions and velocities sampled from the canonical (nvt), isothermal-isobaric (npt), and isenthalpic (nph) ensembles. This updates the position and velocity for atoms in the group each timestep. The thermostatting and barostatting is achieved by adding some dynamic variables which are coupled to the particle velocities (thermostatting) and simulation domain dimensions (barostatting). In addition to basic thermostatting and barostatting, these fixes can also create a chain of thermostats coupled to the particle thermostat, and another chain of thermostats coupled to the barostat variables. The barostat can be coupled to the overall box volume, or to individual dimensions, including the {xy}, {xz} and {yz} tilt dimensions. The external pressure of the barostat can be specified as either a scalar pressure (isobaric ensemble) or as components of a symmetric stress tensor (constant stress ensemble). When used correctly, the time-averaged temperature and stress tensor of the particles will match the target values specified by Tstart/Tstop and Pstart/Pstop. The equations of motion used are those of Shinoda et al in "(Shinoda)"_#Shinoda, which combine the hydrostatic equations of Martyna, Tobias and Klein in "(Martyna)"_#Martyna with the strain energy proposed by Parrinello and Rahman in "(Parrinello)"_#Parrinello. The time integration schemes closely follow the time-reversible measure-preserving Verlet and rRESPA integrators derived by Tuckerman et al. in "(Tuckerman)"_#Tuckerman. :line The thermostat parameters for fix styles {nvt} and {npt} is specified using the {temp} keyword. Other thermostat-related keywords are {tchain}, {tloop} and {drag}, which are discussed below. The thermostat is applied to only the translational degrees of freedom for the particles. The translational degrees of freedom can also have a bias velocity removed 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 10.0 means to relax the temperature in a timespan of (roughly) 10 time units (e.g. tau or fmsec or psec - see the "units"_units.html command). The atoms in the fix group are the only ones whose velocities and positions are updated by the velocity/position update portion of the integration. IMPORTANT NOTE: A Nose-Hoover thermostat will not work well for arbitrary values of {Tdamp}. If {Tdamp} is too small, the temperature can fluctuate wildly; if it is too large, the temperature will take a very long time to equilibrate. A good choice for many models is a {Tdamp} of around 100 timesteps. Note that this is NOT the same as 100 time units for most "units"_units.html settings. :line The barostat parameters for fix styles {npt} and {nph} is specified using one or more of the {iso}, {aniso}, {tri}, {x}, {y}, {z}, {xy}, {xz}, {yz}, and {couple} keywords. These keywords give you the ability to specify all 6 components of an external stress tensor, and to couple various of these components together so that the dimensions they represent are varied together during a constant-pressure simulation. Other barostat-related keywords are {pchain}, {mtk}, {ploop}, {nreset}, {drag}, and {dilate}, which are discussed below. Orthogonal simulation boxes have 3 adjustable dimensions (x,y,z). Triclinic (non-orthogonal) simulation boxes have 6 adjustable dimensions (x,y,z,xy,xz,yz). The "create_box"_create_box.html, "read data"_read_data.html, and "read_restart"_read_restart.html commands specify whether the simulation box is orthogonal or non-orthogonal (triclinic) and explain the meaning of the xy,xz,yz tilt factors. The target pressures for each of the 6 components of the stress tensor can be specified independently via the {x}, {y}, {z}, {xy}, {xz}, {yz} keywords, which correspond to the 6 simulation box dimensions. For each component, the external pressure or tensor component at each timestep is a ramped value during the run from {Pstart} to {Pstop}. If a target pressure is specified for a component, then the corresponding box dimension will change during a simulation. For example, if the {y} keyword is used, the y-box length will change. If the {xy} keyword is used, the xy tilt factor will change. A box dimension will not change if that component is not specified, although you have the option to change that dimension via the "fix deform"_fix_deform.html command. Note that in order to use the {xy}, {xz}, or {yz} keywords, the simulation box must be triclinic, even if its initial tilt factors are 0.0. For all barostat keywords, the {Pdamp} parameter operates like the {Tdamp} parameter, determining the time scale on which pressure is relaxed. For example, a value of 10.0 means to relax the pressure in a timespan of (roughly) 10 time units (e.g. tau or fmsec or psec - see the "units"_units.html command). IMPORTANT NOTE: A Nose-Hoover barostat will not work well for arbitrary values of {Pdamp}. If {Pdamp} is too small, the pressure and volume can fluctuate wildly; if it is too large, the pressure will take a very long time to equilibrate. A good choice for many models is a {Pdamp} of around 1000 timesteps. Note that this is NOT the same as 1000 time units for most "units"_units.html settings. Regardless of what atoms are in the fix group (the only atoms which are time integrated), a global pressure or stress tensor is computed for all atoms. Similarly, when the size of the simulation box is changed, all atoms are re-scaled to new positions, unless the keyword {dilate} is specified with a {dilate-group-ID} for a group that represents a subset of the atoms. This can be useful, for example, to leave the coordinates of atoms in a solid substrate unchanged and controlling the pressure of a surrounding fluid. This option should be used with care, since it can be unphysical to dilate some atoms and not others, because it can introduce large, instantaneous displacements between a pair of atoms (one dilated, one not) that are far from the dilation origin. Also note that for atoms not in the fix group, a separate time integration fix like "fix nve"_fix_nve.html or "fix nvt"_fix_nh.html can be used on them, independent of whether they are dilated or not. :line The {couple} keyword allows two or three of the diagonal components of the pressure tensor to be "coupled" together. The value specified with the keyword determines which are coupled. For example, {xz} means the {Pxx} and {Pzz} components of the stress tensor are coupled. {Xyz} means all 3 diagonal components are coupled. Coupling means two things: the instantaneous stress will be computed as an average of the corresponding diagonal components, and the coupled box dimensions will be changed together in lockstep, meaning coupled dimensions will be dilated or contracted by the same percentage every timestep. The {Pstart}, {Pstop}, {Pdamp} parameters for any coupled dimensions must be identical. {Couple xyz} can be used for a 2d simulation; the {z} dimension is simply ignored. :line The {iso}, {aniso}, and {tri} keywords are simply shortcuts that are equivalent to specifying several other keywords together. The keyword {iso} means couple all 3 diagonal components together when pressure is computed (hydrostatic pressure), and dilate/contract the dimensions together. Using "iso Pstart Pstop Pdamp" is the same as specifying these 4 keywords: x Pstart Pstop Pdamp y Pstart Pstop Pdamp z Pstart Pstop Pdamp couple xyz :pre The keyword {aniso} means {x}, {y}, and {z} dimensions are controlled independently using the {Pxx}, {Pyy}, and {Pzz} components of the stress tensor as the driving forces, and the specified scalar external pressure. Using "aniso Pstart Pstop Pdamp" is the same as specifying these 4 keywords: x Pstart Pstop Pdamp y Pstart Pstop Pdamp z Pstart Pstop Pdamp couple none :pre The keyword {tri} means {x}, {y}, {z}, {xy}, {xz}, and {yz} dimensions are controlled independently using their individual stress components as the driving forces, and the specified scalar pressure as the external normal stress. Using "tri Pstart Pstop Pdamp" is the same as specifying these 7 keywords: x Pstart Pstop Pdamp y Pstart Pstop Pdamp z Pstart Pstop Pdamp xy 0.0 0.0 Pdamp yz 0.0 0.0 Pdamp xz 0.0 0.0 Pdamp couple none :pre :line In some cases (e.g. for solids) the pressure (volume) and/or temperature of the system can oscillate undesirably when a Nose/Hoover barostat and thermostat is applied. The optional {drag} keyword will damp these oscillations, although it alters the Nose/Hoover equations. A value of 0.0 (no drag) leaves the Nose/Hoover formalism unchanged. A non-zero value adds a drag term; the larger the value specified, the greater the damping effect. Performing a short run and monitoring the pressure and temperature is the best way to determine if the drag term is working. Typically a value between 0.2 to 2.0 is sufficient to damp oscillations after a few periods. Note that use of the drag keyword will interfere with energy conservation and will also change the distribution of positions and velocities so that they do not correspond to the nominal NVT, NPT, or NPH ensembles. An alternative way to control initial oscillations is to use chain thermostats. The keyword {tchain} determines the number of thermostats in the particle thermostat. A value of 1 corresponds to the original Nose-Hoover thermostat. The keyword {pchain} specifies the number of thermostats in the chain thermostatting the barostat degrees of freedom. A value of 0 corresponds to no thermostatting of the barostat variables. The {mtk} keyword controls whether or not the correction terms due to Martyna, Tuckerman, and Klein are included in the equations of motion "(Martyna)"_#Martyna. Specifying {no} reproduces the original Hoover barostat, whose volume probability distribution function differs from the true NPT and NPH ensembles by a factor of 1/V. Hence using {yes} is more correct, but in many cases the difference is negligible. The keyword {tloop} can be used to improve the accuracy of integration scheme at little extra cost. The initial and final updates of the thermostat variables are broken up into {tloop} substeps, each of length {dt}/{tloop}. This corresponds to using a first-order Suzuki-Yoshida scheme "(Tuckerman2006)"_#Tuckerman2006. The keyword {ploop} does the same thing for the barostat thermostat. The keyword {nreset} controls how often the reference dimensions used to define the strain energy are reset. If this keyword is not used, or is given a value of zero, then the reference dimensions are set to those of the initial simulation domain and are never changed. If the simulation domain changes significantly during the simulation, then the final average pressure tensor will differ significantly from the specified values of the external stress tensor. A value of {nstep} means that every {nstep} timesteps, the reference dimensions are set to those of the current simulation domain. The {scaleyz}, {scalexz}, and {scalexy} keywords control whether or not the corresponding tilt factors are scaled with the associated box dimensions when barostatting triclinic periodic cells. The default values {yes} will turn on scaling, which corresponds to adjusting the linear dimensions of the cell while preserving its shape. Choosing {no} ensures that the tilt factors are not scaled with the box dimensions. See below for restrictions and default values in different situations. In older versions of LAMMPS, scaling of tilt factors was not performed. The old behavior can be recovered by setting all three scale keywords to {no}. The {flip} keyword allows the tilt factors for a triclinic box to exceed half the distance of the parallel box length, as discussed below. If the {flip} value is set to {yes}, the bound is enforced by flipping the box when it is exceeded. If the {flip} value is set to {no}, the tilt will continue to change without flipping. Note that if applied stress induces large deformations (e.g. in a liquid), this means the box shape can tilt dramatically and LAMMPS will run less efficiently, due to the large volume of communication needed to acquire ghost atoms around a processor's irregular-shaped sub-domain. For extreme values of tilt, LAMMPS may also lose atoms and generate an error. The {fixedpoint} keyword specifies the fixed point for barostat volume changes. By default, it is the center of the box. Whatever point is chosen will not move during the simulation. For example, if the lower periodic boundaries pass through (0,0,0), and this point is provided to {fixedpoint}, then the lower periodic boundaries will remain at (0,0,0), while the upper periodic boundaries will move twice as far. In all cases, the particle trajectories are unaffected by the chosen value, except for a time-dependent constant translation of positions. :line IMPORTANT NOTE: Using a barostat coupled to tilt dimensions {xy}, {xz}, {yz} can sometimes result in arbitrarily large values of the tilt dimensions, i.e. a dramatically deformed simulation box. LAMMPS allows the tilt factors to grow a small amount beyond the normal limit of half the box length (0.6 times the box length), and then performs a box "flip" to an equivalent periodic cell. See the discussion of the {flip} keyword above, to allow this bound to be exceeded, if desired. The flip operation is described in more detail in the doc page for "fix deform"_fix_deform.html. Both the barostat dynamics and the atom trajectories are unaffected by this operation. However, if a tilt factor is incremented by a large amount (1.5 times the box length) on a single timestep, LAMMPS can not accomodate this event and will terminate the simulation with an error. This error typically indicates that there is something badly wrong with how the simulation was constructed, such as specifying values of {Pstart} that are too far from the current stress value, or specifying a timestep that is too large. Triclinic barostatting should be used with care. This also is true for other barostat styles, although they tend to be more forgiving of insults. In particular, it is important to recognize that equilibrium liquids can not support a shear stress and that equilibrium solids can not support shear stresses that exceed the yield stress. One exception to this rule is if the 1st dimension in the tilt factor (x for xy) is non-periodic. In that case, the limits on the tilt factor are not enforced, since flipping the box in that dimension does not change the atom positions due to non-periodicity. In this mode, if you tilt the system to extreme angles, the simulation will simply become inefficient due to the highly skewed simulation box. IMPORTANT NOTE: Unlike the "fix temp/berendsen"_fix_temp_berendsen.html command which performs thermostatting but NO time integration, these fixes perform 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, the {temp} options for fix nvt and fix npt should not normally be used on atoms that also have their temperature controlled by another fix - e.g. by "fix langevin"_fix_nh.html or "fix temp/rescale"_fix_temp_rescale.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 and barostatting. :line These fixes 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. Like other fixes that perform thermostatting, fix nvt and fix npt 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 These fixes can be used with either the {verlet} or {respa} "integrators"_run_style.html. When using one of the barostat fixes with {respa}, LAMMPS uses an integrator constructed according to the following factorization of the Liouville propagator (for two rRESPA levels): :c,image(Eqs/fix_nh1.jpg) This factorization differs somewhat from that of Tuckerman et al., in that the barostat is only updated at the outermost rRESPA level, whereas Tuckerman's factorization requires splitting the pressure into pieces corresponding to the forces computed at each rRESPA level. In theory, the latter method will exhibit better numerical stability. In practice, because Pdamp is normally chosen to be a large multiple of the outermost rRESPA timestep, the barostat dynamics are not the limiting factor for numerical stability. Both factorizations are time-reversible and can be shown to preserve the phase space measure of the underlying non-Hamiltonian equations of motion. :line The fix npt and fix nph commands can be used with rigid bodies or mixtures of rigid bodies and non-rigid particles (e.g. solvent). But there are also "fix rigid/npt"_fix_rigid.html and "fix rigid/nph"_fix_rigid.html commands, which are typically a more natural choice. See the doc page for those commands for more discussion of the various ways to do this. :line -Styles with a {cuda} suffix are functionally the same as the -corresponding style without the suffix. They have been optimized to -run faster, depending on your available hardware, as discussed in -"Section_accelerate"_Section_accelerate.html of the manual. The -accelerated styles take the same arguments and should produce the same -results, except for round-off and precision issues. - -These accelerated styles are part of the USER-CUDA package. They are -only enabled if LAMMPS was built with that package. See the "Making -LAMMPS"_Section_start.html#start_3 section for more info. +Styles with a {cuda}, {gpu}, {omp}, or {opt} suffix are functionally +the same as the corresponding style without the suffix. They have +been optimized to run faster, depending on your available hardware, as +discussed in "Section_accelerate"_Section_accelerate.html of the +manual. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. + +These accelerated styles are part of the USER-CUDA, GPU, USER-OMP and OPT +packages, respectively. They are only enabled if LAMMPS was built with +those packages. See the "Making LAMMPS"_Section_start.html#start_3 +section for more info. You can specify the accelerated styles explicitly in your input script by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. See "Section_accelerate"_Section_accelerate.html of the manual for more instructions on how to use the accelerated styles effectively. :line [Restart, fix_modify, output, run start/stop, minimize info:] These fixes writes 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 {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. IMPORTANT NOTE: If both the {temp} and {press} keywords are used in a single thermo_modify command (or in two separate commands), then the order in which the keywords are specified is important. Note that a "pressure compute"_compute_pressure.html defines its own temperature compute as an argument when it is specified. The {temp} keyword will override this (for the pressure compute being used by fix npt), but only if the {temp} keyword comes after the {press} keyword. If the {temp} keyword comes before the {press} keyword, then the new pressure compute specified by the {press} keyword will be unaffected by the {temp} setting. 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. 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 internal Nose/Hoover thermostat and barostat variables. The number and meaning of the vector values depends on which fix is used and the settings for keywords {tchain} and {pchain}, which specify the number of Nose/Hoover chains for the thermostat and barostat. If no thermostatting is done, then {tchain} is 0. If no barostatting is done, then {pchain} is 0. In the following list, "ndof" is 0, 1, 3, or 6, and is the number of degrees of freedom in the barostat. Its value is 0 if no barostat is used, else its value is 6 if any off-diagonal stress tensor component is barostatted, else its value is 1 if {couple xyz} is used or {couple xy} for a 2d simulation, otherwise its value is 3. The order of values in the global vector and their meaning is as follows. The notation means there are tchain values for eta, followed by tchain for eta_dot, followed by ndof for omega, etc: eta\[tchain\] = particle thermostat displacements (unitless) eta_dot\[tchain\] = particle thermostat velocities (1/time units) omega\[ndof\] = barostat displacements (unitless) omega_dot\[ndof\] = barostat velocities (1/time units) etap\[pchain\] = barostat thermostat displacements (unitless) etap_dot\[pchain\] = barostat thermostat velocities (1/time units) PE_eta\[tchain\] = potential energy of each particle thermostat displacement (energy units) KE_eta_dot\[tchain\] = kinetic energy of each particle thermostat velocity (energy units) PE_omega\[ndof\] = potential energy of each barostat displacement (energy units) KE_omega_dot\[ndof\] = kinetic energy of each barostat velocity (energy units) PE_etap\[pchain\] = potential energy of each barostat thermostat displacement (energy units) KE_etap_dot\[pchain\] = kinetic energy of each barostat thermostat velocity (energy units) PE_strain\[1\] = scalar strain energy (energy units) :ul These fixes can ramp their external temperature and pressure 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. These fixes are not invoked during "energy minimization"_minimize.html. :line [Restrictions:] {X}, {y}, {z} cannot be barostatted if the associated dimension is not periodic. {Xy}, {xz}, and {yz} can only be barostatted if the simulation domain is triclinic and the 2nd dimension in the keyword ({y} dimension in {xy}) is periodic. {Z}, {xz}, and {yz}, cannot be barostatted for 2D simulations. The "create_box"_create_box.html, "read data"_read_data.html, and "read_restart"_read_restart.html commands specify whether the simulation box is orthogonal or non-orthogonal (triclinic) and explain the meaning of the xy,xz,yz tilt factors. For the {temp} keyword, the final Tstop cannot be 0.0 since it would make the external T = 0.0 at some timestep during the simulation which is not allowed in the Nose/Hoover formulation. The {scaleyz yes} and {scalexz yes} keyword/value pairs can not be used for 2D simulations. {scaleyz yes}, {scalexz yes}, and {scalexy yes} options can only be used if the 2nd dimension in the keyword is periodic, and if the tilt factor is not coupled to the barostat via keywords {tri}, {yz}, {xz}, and {xy}. [Related commands:] "fix nve"_fix_nve.html, "fix_modify"_fix_modify.html, "run_style"_run_style.html [Default:] The keyword defaults are tchain = 3, pchain = 3, mtk = yes, tloop = ploop = 1, nreset = 0, drag = 0.0, dilate = all, couple = none, scaleyz = scalexz = scalexy = yes if periodic in 2nd dimension and not coupled to barostat, otherwise no. :line :link(Martyna) [(Martyna)] Martyna, Tobias and Klein, J Chem Phys, 101, 4177 (1994). :link(Parrinello) [(Parrinello)] Parrinello and Rahman, J Appl Phys, 52, 7182 (1981). :link(Tuckerman) [(Tuckerman)] Tuckerman, Alejandre, Lopez-Rendon, Jochim, and Martyna, J Phys A: Math Gen, 39, 5629 (2006). :link(Shinoda) [(Shinoda)] Shinoda, Shiga, and Mikami, Phys Rev B, 69, 134103 (2004). diff --git a/doc/fix_nph_asphere.txt b/doc/fix_nph_asphere.txt index 857ff9fd8..d97d5876e 100644 --- a/doc/fix_nph_asphere.txt +++ b/doc/fix_nph_asphere.txt @@ -1,129 +1,152 @@ "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 nph/asphere command :h3 +fix nph/asphere/omp command :h3 [Syntax:] fix ID group-ID nph/asphere args keyword value ... :pre ID, group-ID are documented in "fix"_fix.html command nph/asphere = style name of this fix command additional barostat related keyword/value pairs from the "fix nph"_fix_nh.html command can be appended :ul [Examples:] fix 1 all nph/asphere iso 0.0 0.0 1000.0 fix 2 all nph/asphere x 5.0 5.0 1000.0 fix 2 all nph/asphere x 5.0 5.0 1000.0 drag 0.2 fix 2 water nph/asphere aniso 0.0 0.0 1000.0 dilate partial :pre [Description:] Perform constant NPH integration to update position, velocity, orientation, and angular velocity each timestep for aspherical or ellipsoidal particles in the group using a Nose/Hoover pressure barostat. P is pressure; H is enthalpy. This creates a system trajectory consistent with the isenthalpic ensemble. This fix differs from the "fix nph"_fix_nh.html command, which assumes point particles and only updates their position and velocity. Additional parameters affecting the barostat are specified by keywords and values documented with the "fix nph"_fix_nh.html command. See, for example, discussion of the {aniso}, and {dilate} keywords. The particles in the fix group are the only ones whose velocities and positions are updated by the velocity/position update portion of the NPH integration. Regardless of what particles are in the fix group, a global pressure is computed for all particles. Similarly, when the size of the simulation box is changed, all particles are re-scaled to new positions, unless the keyword {dilate} is specified with a value of {partial}, in which case only the particles in the fix group are re-scaled. The latter can be useful for leaving the coordinates of particles in a solid substrate unchanged and controlling the pressure of a surrounding fluid. :line This fix computes a temperature and pressure each timestep. To do this, the fix creates its own computes of style "temp/asphere" and "pressure", as if these commands had been issued: compute fix-ID_temp all temp/asphere compute fix-ID_press all pressure fix-ID_temp :pre See the "compute temp/asphere"_compute_temp_asphere.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 "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 + +Styles with a {cuda}, {gpu}, {omp}, or {opt} suffix are functionally +the same as the corresponding style without the suffix. They have +been optimized to run faster, depending on your available hardware, as +discussed in "Section_accelerate"_Section_accelerate.html of the +manual. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. + +These accelerated styles are part of the USER-CUDA, GPU, USER-OMP and OPT +packages, respectively. They are only enabled if LAMMPS was built with +those packages. See the "Making LAMMPS"_Section_start.html#start_3 +section for more info. + +You can specify the accelerated styles explicitly in your input script +by including their suffix, or you can use the "-suffix command-line +switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can +use the "suffix"_suffix.html command in your input script. + +See "Section_accelerate"_Section_accelerate.html of the manual for +more instructions on how to use the accelerated styles effectively. + [Restart, fix_modify, output, run start/stop, minimize info:] This fix writes the state of the Nose/Hoover barostat 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 {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 thermostatting or barostatting procedure. 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 this fix to add the energy change induced by Nose/Hoover barostatting to the system's potential energy as part of "thermodynamic output"_thermo_style.html. This fix computes the same global scalar and global vector of quantities as does the "fix nph"_fix_nh.html command. This fix can ramp its target pressure 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:] This fix is part of the ASPHERE 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. This fix requires that atoms store torque and angular momementum and a quaternion as defined by the "atom_style ellipsoid"_atom_style.html command. All particles in the group must be finite-size. They cannot be point particles, but they can be aspherical or spherical as defined by their shape attribute. [Related commands:] "fix nph"_fix_nh.html, "fix nve_asphere"_fix_nve_asphere.html, "fix nvt_asphere"_fix_nvt_asphere.html, "fix npt_asphere"_fix_npt_asphere.html, "fix_modify"_fix_modify.html [Default:] none diff --git a/doc/fix_nph_sphere.txt b/doc/fix_nph_sphere.txt index 24038971d..9a1350e54 100644 --- a/doc/fix_nph_sphere.txt +++ b/doc/fix_nph_sphere.txt @@ -1,124 +1,147 @@ "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 nph/sphere command :h3 +fix nph/sphere/omp command :h3 [Syntax:] fix ID group-ID nph/sphere args keyword value ... :pre ID, group-ID are documented in "fix"_fix.html command nph/sphere = style name of this fix command additional barostat related keyword/value pairs from the "fix nph"_fix_nh.html command can be appended :ul [Examples:] fix 1 all nph/sphere iso 0.0 0.0 1000.0 fix 2 all nph/sphere x 5.0 5.0 1000.0 fix 2 all nph/sphere x 5.0 5.0 1000.0 drag 0.2 fix 2 water nph/sphere aniso 0.0 0.0 1000.0 dilate partial :pre [Description:] Perform constant NPH integration to update position, velocity, and angular velocity each timestep for finite-size spherical particles in the group using a Nose/Hoover pressure barostat. P is pressure; H is enthalpy. This creates a system trajectory consistent with the isenthalpic ensemble. This fix differs from the "fix nph"_fix_nh.html command, which assumes point particles and only updates their position and velocity. Additional parameters affecting the barostat are specified by keywords and values documented with the "fix nph"_fix_nh.html command. See, for example, discussion of the {aniso}, and {dilate} keywords. The particles in the fix group are the only ones whose velocities and positions are updated by the velocity/position update portion of the NPH integration. Regardless of what particles are in the fix group, a global pressure is computed for all particles. Similarly, when the size of the simulation box is changed, all particles are re-scaled to new positions, unless the keyword {dilate} is specified with a value of {partial}, in which case only the particles in the fix group are re-scaled. The latter can be useful for leaving the coordinates of particles in a solid substrate unchanged and controlling the pressure of a surrounding fluid. :line This fix computes a temperature and pressure each timestep. To do this, the fix creates its own computes of style "temp/sphere" and "pressure", as if these commands had been issued: compute fix-ID_temp all temp/sphere compute fix-ID_press all pressure fix-ID_temp :pre See the "compute temp/sphere"_compute_temp_sphere.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 "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 + +Styles with a {cuda}, {gpu}, {omp}, or {opt} suffix are functionally +the same as the corresponding style without the suffix. They have +been optimized to run faster, depending on your available hardware, as +discussed in "Section_accelerate"_Section_accelerate.html of the +manual. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. + +These accelerated styles are part of the USER-CUDA, GPU, USER-OMP and OPT +packages, respectively. They are only enabled if LAMMPS was built with +those packages. See the "Making LAMMPS"_Section_start.html#start_3 +section for more info. + +You can specify the accelerated styles explicitly in your input script +by including their suffix, or you can use the "-suffix command-line +switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can +use the "suffix"_suffix.html command in your input script. + +See "Section_accelerate"_Section_accelerate.html of the manual for +more instructions on how to use the accelerated styles effectively. + [Restart, fix_modify, output, run start/stop, minimize info:] This fix writes the state of the Nose/Hoover barostat 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 {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 thermostatting or barostatting procedure. 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 this fix to add the energy change induced by Nose/Hoover barostatting to the system's potential energy as part of "thermodynamic output"_thermo_style.html. This fix computes the same global scalar and global vector of quantities as does the "fix nph"_fix_nh.html command. This fix can ramp its target pressure 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:] This fix requires that atoms store torque and angular velocity (omega) and a radius as defined by the "atom_style sphere"_atom_style.html command. All particles in the group must be finite-size spheres. They cannot be point particles. [Related commands:] "fix nph"_fix_nh.html, "fix nve_sphere"_fix_nve_sphere.html, "fix nvt_sphere"_fix_nvt_sphere.html, "fix npt_sphere"_fix_npt_sphere.html, "fix_modify"_fix_modify.html [Default:] none diff --git a/doc/fix_nphug.txt b/doc/fix_nphug.txt index aa880ac01..50b36c00b 100644 --- a/doc/fix_nphug.txt +++ b/doc/fix_nphug.txt @@ -1,206 +1,229 @@ "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 +fix nphug/omp 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 :pre [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 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: :c,image(Eqs/fix_nphug.jpg) where T and Tt are the instantaneous and target temperatures, P and P0 are the instantaneous and reference pressures or axial stresses, 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. When the system reaches a stable equilibrium, the value of Delta should fluctuate about zero. 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 computes a temperature and pressure at 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". 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 +Styles with a {cuda}, {gpu}, {omp}, or {opt} suffix are functionally +the same as the corresponding style without the suffix. They have +been optimized to run faster, depending on your available hardware, as +discussed in "Section_accelerate"_Section_accelerate.html of the +manual. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. + +These accelerated styles are part of the USER-CUDA, GPU, USER-OMP and OPT +packages, respectively. They are only enabled if LAMMPS was built with +those packages. See the "Making LAMMPS"_Section_start.html#start_3 +section for more info. + +You can specify the accelerated styles explicitly in your input script +by including their suffix, or you can use the "-suffix command-line +switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can +use the "suffix"_suffix.html command in your input script. + +See "Section_accelerate"_Section_accelerate.html of the manual for +more instructions on how to use the accelerated styles effectively. + +: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 E0, V0, and P0. 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 instantaneous 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 corresponding 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). diff --git a/doc/fix_npt_asphere.txt b/doc/fix_npt_asphere.txt index e11ef0eb7..fb8fef115 100644 --- a/doc/fix_npt_asphere.txt +++ b/doc/fix_npt_asphere.txt @@ -1,153 +1,176 @@ "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 npt/asphere command :h3 +fix npt/asphere/omp command :h3 [Syntax:] fix ID group-ID npt/asphere keyword value ... :pre ID, group-ID are documented in "fix"_fix.html command npt/asphere = style name of this fix command additional thermostat and barostat related keyword/value pairs from the "fix npt"_fix_nh.html command can be appended :ul [Examples:] fix 1 all npt/asphere temp 300.0 300.0 100.0 iso 0.0 0.0 1000.0 fix 2 all npt/asphere temp 300.0 300.0 100.0 x 5.0 5.0 1000.0 fix 2 all npt/asphere temp 300.0 300.0 100.0 x 5.0 5.0 1000.0 drag 0.2 fix 2 water npt/asphere temp 300.0 300.0 100.0 aniso 0.0 0.0 1000.0 dilate partial :pre [Description:] Perform constant NPT integration to update position, velocity, orientation, and angular velocity each timestep for aspherical or ellipsoidal particles in the group using a Nose/Hoover temperature thermostat and Nose/Hoover pressure barostat. P is pressure; T is temperature. This creates a system trajectory consistent with the isothermal-isobaric ensemble. This fix differs from the "fix npt"_fix_nh.html command, which assumes point particles and only updates their position and velocity. The thermostat is applied to both the translational and rotational degrees of freedom for the aspherical particles, assuming a compute is used which calculates a temperature that includes the rotational degrees of freedom (see below). The translational degrees of freedom can also have a bias velocity removed from them before thermostatting takes place; see the description below. Additional parameters affecting the thermostat and barostat are specified by keywords and values documented with the "fix npt"_fix_nh.html command. See, for example, discussion of the {temp}, {iso}, {aniso}, and {dilate} keywords. The particles in the fix group are the only ones whose velocities and positions are updated by the velocity/position update portion of the NPT integration. Regardless of what particles are in the fix group, a global pressure is computed for all particles. Similarly, when the size of the simulation box is changed, all particles are re-scaled to new positions, unless the keyword {dilate} is specified with a value of {partial}, in which case only the particles in the fix group are re-scaled. The latter can be useful for leaving the coordinates of particles in a solid substrate unchanged and controlling the pressure of a surrounding fluid. :line This fix computes a temperature and pressure each timestep. To do this, the fix creates its own computes of style "temp/asphere" and "pressure", as if these commands had been issued: compute fix-ID_temp all temp/asphere compute fix-ID_press all pressure fix-ID_temp :pre See the "compute temp/asphere"_compute_temp_asphere.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 "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. 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 + +Styles with a {cuda}, {gpu}, {omp}, or {opt} suffix are functionally +the same as the corresponding style without the suffix. They have +been optimized to run faster, depending on your available hardware, as +discussed in "Section_accelerate"_Section_accelerate.html of the +manual. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. + +These accelerated styles are part of the USER-CUDA, GPU, USER-OMP and OPT +packages, respectively. They are only enabled if LAMMPS was built with +those packages. See the "Making LAMMPS"_Section_start.html#start_3 +section for more info. + +You can specify the accelerated styles explicitly in your input script +by including their suffix, or you can use the "-suffix command-line +switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can +use the "suffix"_suffix.html command in your input script. + +See "Section_accelerate"_Section_accelerate.html of the manual for +more instructions on how to use the accelerated styles effectively. + [Restart, fix_modify, output, run start/stop, minimize info:] This fix writes the state of the Nose/Hoover thermostat and barostat 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 {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 thermostatting or barostatting procedure. 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 this fix 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. This fix computes the same global scalar and global vector of quantities as does the "fix npt"_fix_nh.html command. This fix can ramp its target temperature and pressure 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:] This fix is part of the ASPHERE 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. This fix requires that atoms store torque and angular momementum and a quaternion as defined by the "atom_style ellipsoid"_atom_style.html command. All particles in the group must be finite-size. They cannot be point particles, but they can be aspherical or spherical as defined by their shape attribute. [Related commands:] "fix npt"_fix_nh.html, "fix nve_asphere"_fix_nve_asphere.html, "fix nvt_asphere"_fix_nvt_asphere.html, "fix_modify"_fix_modify.html [Default:] none diff --git a/doc/fix_npt_sphere.txt b/doc/fix_npt_sphere.txt index 435acbbd2..e2c2d0d13 100644 --- a/doc/fix_npt_sphere.txt +++ b/doc/fix_npt_sphere.txt @@ -1,148 +1,171 @@ "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 npt/sphere command :h3 +fix npt/sphere/omp command :h3 [Syntax:] fix ID group-ID npt/sphere keyword value ... :pre ID, group-ID are documented in "fix"_fix.html command npt/sphere = style name of this fix command additional thermostat and barostat related keyword/value pairs from the "fix npt"_fix_nh.html command can be appended :ul [Examples:] fix 1 all npt/sphere temp 300.0 300.0 100.0 iso 0.0 0.0 1000.0 fix 2 all npt/sphere temp 300.0 300.0 100.0 x 5.0 5.0 1000.0 fix 2 all npt/sphere temp 300.0 300.0 100.0 x 5.0 5.0 1000.0 drag 0.2 fix 2 water npt/sphere temp 300.0 300.0 100.0 aniso 0.0 0.0 1000.0 dilate partial :pre [Description:] Perform constant NPT integration to update position, velocity, and angular velocity each timestep for finite-sizex spherical particles in the group using a Nose/Hoover temperature thermostat and Nose/Hoover pressure barostat. P is pressure; T is temperature. This creates a system trajectory consistent with the isothermal-isobaric ensemble. This fix differs from the "fix npt"_fix_nh.html command, which assumes point particles and only updates their position and velocity. The thermostat is applied to both the translational and rotational degrees of freedom for the spherical particles, assuming a compute is used which calculates a temperature that includes the rotational degrees of freedom (see below). The translational degrees of freedom can also have a bias velocity removed from them before thermostatting takes place; see the description below. Additional parameters affecting the thermostat and barostat are specified by keywords and values documented with the "fix npt"_fix_nh.html command. See, for example, discussion of the {temp}, {iso}, {aniso}, and {dilate} keywords. The particles in the fix group are the only ones whose velocities and positions are updated by the velocity/position update portion of the NPT integration. Regardless of what particles are in the fix group, a global pressure is computed for all particles. Similarly, when the size of the simulation box is changed, all particles are re-scaled to new positions, unless the keyword {dilate} is specified with a value of {partial}, in which case only the particles in the fix group are re-scaled. The latter can be useful for leaving the coordinates of particles in a solid substrate unchanged and controlling the pressure of a surrounding fluid. :line This fix computes a temperature and pressure each timestep. To do this, the fix creates its own computes of style "temp/sphere" and "pressure", as if these commands had been issued: compute fix-ID_temp all temp/sphere compute fix-ID_press all pressure fix-ID_temp :pre See the "compute temp/sphere"_compute_temp_sphere.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 "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. 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 + +Styles with a {cuda}, {gpu}, {omp}, or {opt} suffix are functionally +the same as the corresponding style without the suffix. They have +been optimized to run faster, depending on your available hardware, as +discussed in "Section_accelerate"_Section_accelerate.html of the +manual. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. + +These accelerated styles are part of the USER-CUDA, GPU, USER-OMP and OPT +packages, respectively. They are only enabled if LAMMPS was built with +those packages. See the "Making LAMMPS"_Section_start.html#start_3 +section for more info. + +You can specify the accelerated styles explicitly in your input script +by including their suffix, or you can use the "-suffix command-line +switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can +use the "suffix"_suffix.html command in your input script. + +See "Section_accelerate"_Section_accelerate.html of the manual for +more instructions on how to use the accelerated styles effectively. + [Restart, fix_modify, output, run start/stop, minimize info:] This fix writes the state of the Nose/Hoover thermostat and barostat 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 {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 thermostatting or barostatting procedure. 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 this fix 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. This fix computes the same global scalar and global vector of quantities as does the "fix npt"_fix_nh.html command. This fix can ramp its target temperature and pressure 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:] This fix requires that atoms store torque and angular velocity (omega) and a radius as defined by the "atom_style sphere"_atom_style.html command. All particles in the group must be finite-size spheres. They cannot be point particles. [Related commands:] "fix npt"_fix_nh.html, "fix nve_sphere"_fix_nve_sphere.html, "fix nvt_sphere"_fix_nvt_sphere.html, "fix npt_asphere"_fix_npt_asphere.html, "fix_modify"_fix_modify.html [Default:] none diff --git a/doc/fix_nve.txt b/doc/fix_nve.txt index 68333011e..b43a78c62 100644 --- a/doc/fix_nve.txt +++ b/doc/fix_nve.txt @@ -1,69 +1,71 @@ "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 nve command :h3 fix nve/cuda command :h3 +fix nve/omp command :h3 [Syntax:] fix ID group-ID nve :pre ID, group-ID are documented in "fix"_fix.html command nve = style name of this fix command :ul [Examples:] fix 1 all nve :pre [Description:] Perform constant NVE integration to update position and velocity for atoms in the group each timestep. V is volume; E is energy. This creates a system trajectory consistent with the microcanonical ensemble. :line -Styles with a {cuda} suffix are functionally the same as the -corresponding style without the suffix. They have been optimized to -run faster, depending on your available hardware, as discussed in -"Section_accelerate"_Section_accelerate.html of the manual. The -accelerated styles take the same arguments and should produce the same -results, except for round-off and precision issues. - -These accelerated styles are part of the USER-CUDA package. They are -only enabled if LAMMPS was built with that package. See the "Making -LAMMPS"_Section_start.html#start_3 section for more info. +Styles with a {cuda}, {gpu}, {omp}, or {opt} suffix are functionally +the same as the corresponding style without the suffix. They have +been optimized to run faster, depending on your available hardware, as +discussed in "Section_accelerate"_Section_accelerate.html of the +manual. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. + +These accelerated styles are part of the USER-CUDA, GPU, USER-OMP and OPT +packages, respectively. They are only enabled if LAMMPS was built with +those packages. See the "Making LAMMPS"_Section_start.html#start_3 +section for more info. You can specify the accelerated styles explicitly in your input script by including their suffix, or you can use the "-suffix command-line switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can use the "suffix"_suffix.html command in your input script. See "Section_accelerate"_Section_accelerate.html of the manual for more instructions on how to use the accelerated styles effectively. :line [Restart, fix_modify, output, run start/stop, minimize info:] No information about this fix is written to "binary restart files"_restart.html. None of the "fix_modify"_fix_modify.html options are relevant to this fix. No global or per-atom quantities are stored by this fix for access by various "output commands"_Section_howto.html#howto_15. No parameter of this fix can be used with the {start/stop} keywords of the "run"_run.html command. This fix is not invoked during "energy minimization"_minimize.html. [Restrictions:] none [Related commands:] "fix nvt"_fix_nh.html, "fix npt"_fix_nh.html [Default:] none diff --git a/doc/fix_nvt_asphere.txt b/doc/fix_nvt_asphere.txt index 8af5be128..7c48f6059 100644 --- a/doc/fix_nvt_asphere.txt +++ b/doc/fix_nvt_asphere.txt @@ -1,129 +1,152 @@ "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 nvt/asphere command :h3 +fix nvt/asphere/omp command :h3 [Syntax:] fix ID group-ID nvt/asphere keyword value ... :pre ID, group-ID are documented in "fix"_fix.html command nvt/asphere = style name of this fix command additional thermostat related keyword/value pairs from the "fix nvt"_fix_nh.html command can be appended :ul [Examples:] fix 1 all nvt/asphere temp 300.0 300.0 100.0 fix 1 all nvt/asphere temp 300.0 300.0 100.0 drag 0.2 :pre [Description:] Perform constant NVT integration to update position, velocity, orientation, and angular velocity each timestep for aspherical or ellipsoidal particles in the group using a Nose/Hoover temperature thermostat. V is volume; T is temperature. This creates a system trajectory consistent with the canonical ensemble. This fix differs from the "fix nvt"_fix_nh.html command, which assumes point particles and only updates their position and velocity. The thermostat is applied to both the translational and rotational degrees of freedom for the aspherical particles, assuming a compute is used which calculates a temperature that includes the rotational degrees of freedom (see below). The translational degrees of freedom can also have a bias velocity removed from them before thermostatting takes place; see the description below. Additional parameters affecting the thermostat are specified by keywords and values documented with the "fix nvt"_fix_nh.html command. See, for example, discussion of the {temp} and {drag} keywords. This fix computes a temperature each timestep. To do this, the fix creates its own compute of style "temp/asphere", as if this command had been issued: compute fix-ID_temp group-ID temp/asphere :pre See the "compute temp/asphere"_compute_temp_asphere.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 + +Styles with a {cuda}, {gpu}, {omp}, or {opt} suffix are functionally +the same as the corresponding style without the suffix. They have +been optimized to run faster, depending on your available hardware, as +discussed in "Section_accelerate"_Section_accelerate.html of the +manual. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. + +These accelerated styles are part of the USER-CUDA, GPU, USER-OMP and OPT +packages, respectively. They are only enabled if LAMMPS was built with +those packages. See the "Making LAMMPS"_Section_start.html#start_3 +section for more info. + +You can specify the accelerated styles explicitly in your input script +by including their suffix, or you can use the "-suffix command-line +switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can +use the "suffix"_suffix.html command in your input script. + +See "Section_accelerate"_Section_accelerate.html of the manual for +more instructions on how to use the accelerated styles effectively. + [Restart, fix_modify, output, run start/stop, minimize info:] This fix writes the state of the Nose/Hoover thermostat 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 {temp} option is supported by this fix. You can use it to assign a "compute"_compute.html you have defined to this fix which will be used in its thermostatting procedure. The "fix_modify"_fix_modify.html {energy} option is supported by this fix to add the energy change induced by Nose/Hoover thermostatting to the system's potential energy as part of "thermodynamic output"_thermo_style.html. This fix computes the same global scalar and global vector of quantities as does the "fix nvt"_fix_nh.html command. 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:] This fix is part of the ASPHERE 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. This fix requires that atoms store torque and angular momementum and a quaternion as defined by the "atom_style ellipsoid"_atom_style.html command. All particles in the group must be finite-size. They cannot be point particles, but they can be aspherical or spherical as defined by their shape attribute. [Related commands:] "fix nvt"_fix_nh.html, "fix nve_asphere"_fix_nve_asphere.html, "fix npt_asphere"_fix_npt_asphere.html, "fix_modify"_fix_modify.html [Default:] none diff --git a/doc/fix_nvt_sllod.txt b/doc/fix_nvt_sllod.txt index d83eb37f5..a7f0e8f60 100644 --- a/doc/fix_nvt_sllod.txt +++ b/doc/fix_nvt_sllod.txt @@ -1,147 +1,170 @@ "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 nvt/sllod command :h3 +fix nvt/sllod/omp command :h3 [Syntax:] fix ID group-ID nvt/sllod keyword value ... :pre ID, group-ID are documented in "fix"_fix.html command nvt/sllod = style name of this fix command additional thermostat related keyword/value pairs from the "fix nvt"_fix_nh.html command can be appended :ul [Examples:] fix 1 all nvt/sllod temp 300.0 300.0 100.0 fix 1 all nvt/sllod temp 300.0 300.0 100.0 drag 0.2 :pre [Description:] Perform constant NVT integration to update positions and velocities each timestep for atoms in the group using a Nose/Hoover temperature thermostat. V is volume; T is temperature. This creates a system trajectory consistent with the canonical ensemble. This thermostat is used for a simulation box that is changing size and/or shape, for example in a non-equilibrium MD (NEMD) simulation. The size/shape change is induced by use of the "fix deform"_fix_deform.html command, so each point in the simulation box can be thought of as having a "streaming" velocity. This position-dependent streaming velocity is subtracted from each atom's actual velocity to yield a thermal velocity which is used for temperature computation and thermostatting. For example, if the box is being sheared in x, relative to y, then points at the bottom of the box (low y) have a small x velocity, while points at the top of the box (hi y) have a large x velocity. These velocities do not contribute to the thermal "temperature" of the atom. IMPORTANT NOTE: "Fix deform"_fix_deform.html has an option for remapping either atom coordinates or velocities to the changing simulation box. To use fix nvt/sllod, fix deform should NOT remap atom positions, because fix nvt/sllod adjusts the atom positions and velocities to create a velocity profile that matches the changing box size/shape. Fix deform SHOULD remap atom velocities when atoms cross periodic boundaries since that is consistent with maintaining the velocity profile created by fix nvt/sllod. LAMMPS will give an error if this setting is not consistent. The SLLOD equations of motion coupled to a Nose/Hoover thermostat are discussed in "(Tuckerman)"_#Tuckerman (eqs 4 and 5), which is what is implemented in LAMMPS in a velocity Verlet formulation. Additional parameters affecting the thermostat are specified by keywords and values documented with the "fix nvt"_fix_nh.html command. See, for example, discussion of the {temp} and {drag} keywords. This fix computes a temperature each timestep. To do this, the fix creates its own compute of style "temp/deform", as if this command had been issued: compute fix-ID_temp group-ID temp/deform :pre See the "compute temp/deform"_compute_temp_deform.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 + +Styles with a {cuda}, {gpu}, {omp}, or {opt} suffix are functionally +the same as the corresponding style without the suffix. They have +been optimized to run faster, depending on your available hardware, as +discussed in "Section_accelerate"_Section_accelerate.html of the +manual. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. + +These accelerated styles are part of the USER-CUDA, GPU, USER-OMP and OPT +packages, respectively. They are only enabled if LAMMPS was built with +those packages. See the "Making LAMMPS"_Section_start.html#start_3 +section for more info. + +You can specify the accelerated styles explicitly in your input script +by including their suffix, or you can use the "-suffix command-line +switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can +use the "suffix"_suffix.html command in your input script. + +See "Section_accelerate"_Section_accelerate.html of the manual for +more instructions on how to use the accelerated styles effectively. + [Restart, fix_modify, output, run start/stop, minimize info:] This fix writes the state of the Nose/Hoover thermostat 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 {temp} option is supported by this fix. You can use it to assign a "compute"_compute.html you have defined to this fix which will be used in its thermostatting procedure. The "fix_modify"_fix_modify.html {energy} option is supported by this fix to add the energy change induced by Nose/Hoover thermostatting to the system's potential energy as part of "thermodynamic output"_thermo_style.html. This fix computes the same global scalar and global vector of quantities as does the "fix nvt"_fix_nh.html command. 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:] This fix works best without Nose-Hoover chain thermostats, i.e. using tchain = 1. Setting tchain to larger values can result in poor equilibration. [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/deform"_compute_temp_deform.html [Default:] Same as "fix nvt"_fix_nh.html, except tchain = 1. :line :link(Tuckerman) [(Tuckerman)] Tuckerman, Mundy, Balasubramanian, Klein, J Chem Phys, 106, 5615 (1997). diff --git a/doc/fix_nvt_sphere.txt b/doc/fix_nvt_sphere.txt index 9cc8d1e08..142be2907 100644 --- a/doc/fix_nvt_sphere.txt +++ b/doc/fix_nvt_sphere.txt @@ -1,125 +1,148 @@ "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 nvt/sphere command :h3 +fix nvt/sphere/omp command :h3 [Syntax:] fix ID group-ID nvt/sphere keyword value ... :pre ID, group-ID are documented in "fix"_fix.html command nvt/sphere = style name of this fix command additional thermostat related keyword/value pairs from the "fix nvt"_fix_nh.html command can be appended :ul [Examples:] fix 1 all nvt/sphere temp 300.0 300.0 100.0 fix 1 all nvt/sphere temp 300.0 300.0 100.0 drag 0.2 :pre [Description:] Perform constant NVT integration to update position, velocity, and angular velocity each timestep for finite-size spherical particles in the group using a Nose/Hoover temperature thermostat. V is volume; T is temperature. This creates a system trajectory consistent with the canonical ensemble. This fix differs from the "fix nvt"_fix_nh.html command, which assumes point particles and only updates their position and velocity. The thermostat is applied to both the translational and rotational degrees of freedom for the spherical particles, assuming a compute is used which calculates a temperature that includes the rotational degrees of freedom (see below). The translational degrees of freedom can also have a bias velocity removed from them before thermostatting takes place; see the description below. Additional parameters affecting the thermostat are specified by keywords and values documented with the "fix nvt"_fix_nh.html command. See, for example, discussion of the {temp} and {drag} keywords. This fix computes a temperature each timestep. To do this, the fix creates its own compute of style "temp/sphere", as if this command had been issued: compute fix-ID_temp group-ID temp/sphere :pre See the "compute temp/sphere"_compute_temp_sphere.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 + +Styles with a {cuda}, {gpu}, {omp}, or {opt} suffix are functionally +the same as the corresponding style without the suffix. They have +been optimized to run faster, depending on your available hardware, as +discussed in "Section_accelerate"_Section_accelerate.html of the +manual. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. + +These accelerated styles are part of the USER-CUDA, GPU, USER-OMP and OPT +packages, respectively. They are only enabled if LAMMPS was built with +those packages. See the "Making LAMMPS"_Section_start.html#start_3 +section for more info. + +You can specify the accelerated styles explicitly in your input script +by including their suffix, or you can use the "-suffix command-line +switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can +use the "suffix"_suffix.html command in your input script. + +See "Section_accelerate"_Section_accelerate.html of the manual for +more instructions on how to use the accelerated styles effectively. + [Restart, fix_modify, output, run start/stop, minimize info:] This fix writes the state of the Nose/Hoover thermostat 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 {temp} option is supported by this fix. You can use it to assign a "compute"_compute.html you have defined to this fix which will be used in its thermostatting procedure. The "fix_modify"_fix_modify.html {energy} option is supported by this fix to add the energy change induced by Nose/Hoover thermostatting to the system's potential energy as part of "thermodynamic output"_thermo_style.html. This fix computes the same global scalar and global vector of quantities as does the "fix nvt"_fix_nh.html command. 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:] This fix requires that atoms store torque and angular velocity (omega) and a radius as defined by the "atom_style sphere"_atom_style.html command. All particles in the group must be finite-size spheres. They cannot be point particles. [Related commands:] "fix nvt"_fix_nh.html, "fix nve_sphere"_fix_nve_sphere.html, "fix nvt_asphere"_fix_nvt_asphere.html, "fix npt_sphere"_fix_npt_sphere.html, "fix_modify"_fix_modify.html [Default:] none diff --git a/doc/fix_rigid.txt b/doc/fix_rigid.txt index e03e6c15c..6792a84b1 100644 --- a/doc/fix_rigid.txt +++ b/doc/fix_rigid.txt @@ -1,674 +1,696 @@ "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 rigid command :h3 fix rigid/nve command :h3 fix rigid/nvt command :h3 fix rigid/npt command :h3 fix rigid/nph command :h3 fix rigid/small command :h3 [Syntax:] fix ID group-ID style bodystyle args keyword values ... :pre ID, group-ID are documented in "fix"_fix.html command :ulb,l style = {rigid} or {rigid/nve} or {rigid/nvt} or {rigid/npt} or {rigid/nph} or {rigid/small} :l bodystyle = {single} or {molecule} or {group} :l {single} args = none {molecule} args = none {group} args = N groupID1 groupID2 ... N = # of groups groupID1, groupID2, ... = list of N group IDs :pre zero or more keyword/value pairs may be appended :l keyword = {langevin} or {temp} or {iso} or {aniso} or {x} or {y} or {z} or {couple} or {tparam} or {pchain} or {dilate} or {force} or {torque} or {infile} :l {langevin} values = Tstart Tstop Tperiod seed Tstart,Tstop = desired temperature at start/stop of run (temperature units) Tdamp = temperature damping parameter (time units) seed = random number seed to use for white noise (positive integer) {temp} values = Tstart Tstop Tdamp Tstart,Tstop = desired temperature at start/stop of run (temperature units) Tdamp = temperature damping parameter (time units) {iso} or {aniso} values = Pstart Pstop Pdamp Pstart,Pstop = scalar external pressure at start/end of run (pressure units) Pdamp = pressure damping parameter (time units) {x} or {y} or {z} values = Pstart Pstop Pdamp Pstart,Pstop = external stress tensor component at start/end of run (pressure units) Pdamp = stress damping parameter (time units) {couple} = {none} or {xyz} or {xy} or {yz} or {xz} {tparam} values = Tchain Titer Torder Tchain = length of Nose/Hoover thermostat chain Titer = number of thermostat iterations performed Torder = 3 or 5 = Yoshida-Suzuki integration parameters {pchain} values = Pchain Pchain = length of the Nose/Hoover thermostat chain coupled with the barostat {dilate} value = dilate-group-ID dilate-group-ID = only dilate atoms in this group due to barostat volume changes {force} values = M xflag yflag zflag M = which rigid body from 1-Nbody (see asterisk form below) xflag,yflag,zflag = off/on if component of center-of-mass force is active {torque} values = M xflag yflag zflag M = which rigid body from 1-Nbody (see asterisk form below) xflag,yflag,zflag = off/on if component of center-of-mass torque is active {infile} filename filename = file with per-body values of mass, center-of-mass, moments of inertia :pre :ule [Examples:] fix 1 clump rigid single fix 1 clump rigid/small molecule fix 1 clump rigid single force 1 off off on langevin 1.0 1.0 1.0 428984 fix 1 polychains rigid/nvt molecule temp 1.0 1.0 5.0 fix 1 polychains rigid molecule force 1*5 off off off force 6*10 off off on fix 1 polychains rigid/small molecule langevin 1.0 1.0 1.0 428984 fix 2 fluid rigid group 3 clump1 clump2 clump3 torque * off off off fix 1 rods rigid/npt molecule temp 300.0 300.0 100.0 iso 0.5 0.5 10.0 fix 1 particles rigid/npt molecule temp 1.0 1.0 5.0 x 0.5 0.5 1.0 z 0.5 0.5 1.0 couple xz fix 1 water rigid/nph molecule iso 0.5 0.5 1.0 :pre [Description:] Treat one or more sets of atoms as independent rigid bodies. This means that each timestep the total force and torque on each rigid body is computed as the sum of the forces and torques on its constituent particles and the coordinates, velocities, and orientations of the atoms in each body are updated so that the body moves and rotates as a single entity. Examples of large rigid bodies are a large colloidal particle, or portions of a large biomolecule such as a protein. Example of small rigid bodies are patchy nanoparticles, such as those modeled in "this paper"_#Zhang by Sharon Glotzer's group, clumps of granular particles, lipid molecules consiting of one or more point dipoles connected to other spheroids or ellipsoids, irregular particles built from line segments (2d) or triangles (3d), and coarse-grain models of nano or colloidal particles consisting of a small number of constituent particles. Note that the "fix shake"_fix_shake.html command can also be used to rigidify small molecules of 2, 3, or 4 atoms, e.g. water molecules. That fix treats the constituent atoms as point masses. These fixes also update the positions and velocities of the atoms in each rigid body via time integration, in the NVE, NVT, NPT, or NPH ensemble, as described below. There are two main variants of this fix, fix rigid and fix rigid/small. The NVE/NVT/NPT/NHT versions belong to one of the two variants, as their style names indicate. IMPORTANT NOTE: Not all of the bodystyle options and keyword/value options are available for both the {rigid} and {rigid/small} variants. See details below. The {rigid} variant is typically the best choice for a system with a small number of large rigid bodies, each of which can extend across the domain of many processors. It operates by creating a single global list of rigid bodies, which all processors contribute to. MPI_Allreduce operations are performed each timestep to sum the contributions from each processor to the force and torque on all the bodies. This operation will not scale well in parallel if large numbers of rigid bodies are simulated. The {rigid/small} variant is typically best for a system with a large number of small rigid bodies. Each body is assigned to the atom closest to the geometrical center of the body. The fix operates using local lists of rigid bodies owned by each processor and information is summed and exchanged via local communication between neighboring processors when ghost atom info is accumlated. This means that the ghost atom cutoff be large enough to cover the distance between the atom that owns the body and every other atom in the body. If the "pair_style"_pair_style.html cutoff is not of sufficient extent to insure this, then the "communicate cutoff"_communicate.html command can be used. Which of the two variants is faster for a particular problem is hard to predict. The best way to decide is to perform a short test run. Both variants should give identical numerical answers for short runs. Long runs should give statistically similar results, but round-off differences will accumulate to produce divergent trajectories. IMPORTANT NOTE: You should not update the atoms in rigid bodies via other time-integration fixes (e.g. "fix nve"_fix_nve.html, "fix nvt"_fix_nvt.html, "fix npt"_fix_npt.html), or you will be integrating their motion more than once each timestep. When performing a hybrid simulation with some atoms in rigid bodies, and some not, a separate time integration fix like "fix nve"_fix_nve.html or "fix nvt"_fix_nh.html should be used for the non-rigid particles. IMPORTANT NOTE: These fixes are overkill if you simply want to hold a collection of atoms stationary or have them move with a constant velocity. A simpler way to hold atoms stationary is to not include those atoms in your time integration fix. E.g. use "fix 1 mobile nve" instead of "fix 1 all nve", where "mobile" is the group of atoms that you want to move. You can move atoms with a constant velocity by assigning them an initial velocity (via the "velocity"_velocity.html command), setting the force on them to 0.0 (via the "fix setforce"_fix_setforce.html command), and integrating them as usual (e.g. via the "fix nve"_fix_nve.html command). :line Each rigid body must have two or more atoms. An atom can belong to at most one rigid body. Which atoms are in which bodies can be defined via several options. For bodystyle {single} the entire fix group of atoms is treated as one rigid body. This option is only allowed for fix rigid and its sub-styles. For bodystyle {molecule}, each set of atoms in the fix group with a different molecule ID is treated as a rigid body. This option is allowed for fix rigid and fix rigid/small, and their sub-styles. Note that atoms with a molecule ID = 0 will be treated as a single rigid body. For a system with atomic solvent (typically this is atoms with molecule ID = 0) surrounding rigid bodies, this may not be what you want. Thus you should be careful to use a fix group that only includes atoms you want to be part of rigid bodies. For bodystyle {group}, each of the listed groups is treated as a separate rigid body. Only atoms that are also in the fix group are included in each rigid body. This option is only allowed for fix rigid and its sub-styles. IMPORTANT NOTE: To compute the initial center-of-mass position and other properties of each rigid body, the image flags for each atom in the body are used to "unwrap" the atom coordinates. Thus you must insure that these image flags are consistent so that the unwrapping creates a valid rigid body (one where the atoms are close together), particularly if the atoms in a single rigid body straddle a periodic boundary. This means the input data file or restart file must define the image flags for each atom consistently or that you have used the "set"_set.html command to specify them correctly. If a dimension is non-periodic then the image flag of each atom must be 0 in that dimension, else an error is generated. The {force} and {torque} keywords discussed next are only allowed for fix rigid and its sub-styles. By default, each rigid body is acted on by other atoms which induce an external force and torque on its center of mass, causing it to translate and rotate. Components of the external center-of-mass force and torque can be turned off by the {force} and {torque} keywords. This may be useful if you wish a body to rotate but not translate, or vice versa, or if you wish it to rotate or translate continuously unaffected by interactions with other particles. Note that if you expect a rigid body not to move or rotate by using these keywords, you must insure its initial center-of-mass translational or angular velocity is 0.0. Otherwise the initial translational or angular momentum the body has will persist. An xflag, yflag, or zflag set to {off} means turn off the component of force of torque in that dimension. A setting of {on} means turn on the component, which is the default. Which rigid body(s) the settings apply to is determined by the first argument of the {force} and {torque} keywords. It can be an integer M from 1 to Nbody, where Nbody is the number of rigid bodies defined. A wild-card asterisk can be used in place of, or in conjunction with, the M argument to set the flags for multiple rigid bodies. This takes the form "*" or "*n" or "n*" or "m*n". If N = the number of rigid bodies, then an asterisk with no numeric values means all bodies from 1 to N. A leading asterisk means all bodies from 1 to n (inclusive). A trailing asterisk means all bodies from n to N (inclusive). A middle asterisk means all types from m to n (inclusive). Note that you can use the {force} or {torque} keywords as many times as you like. If a particular rigid body has its component flags set multiple times, the settings from the final keyword are used. For computational efficiency, you may wish to turn off pairwise and bond interactions within each rigid body, as they no longer contribute to the motion. The "neigh_modify exclude"_neigh_modify.html and "delete_bonds"_delete_bonds.html commands are used to do this. For computational efficiency, you should typically define one fix rigid or fix rigid/small command which includes all the desired rigid bodies. LAMMPS will allow multiple rigid fixes to be defined, but it is more expensive. :line The constituent particles within a rigid body can be point particles (the default in LAMMPS) or finite-size particles, such as spheres or ellipsoids or line segments or triangles. See the "atom_style sphere and ellipsoid and line and tri"_atom_style.html commands for more details on these kinds of particles. Finite-size particles contribute differently to the moment of inertia of a rigid body than do point particles. Finite-size particles can also experience torque (e.g. due to "frictional granular interactions"_pair_gran.html) and have an orientation. These contributions are accounted for by these fixes. Forces between particles within a body do not contribute to the external force or torque on the body. Thus for computational efficiency, you may wish to turn off pairwise and bond interactions between particles within each rigid body. The "neigh_modify exclude"_neigh_modify.html and "delete_bonds"_delete_bonds.html commands are used to do this. For finite-size particles this also means the particles can be highly overlapped when creating the rigid body. :line The {rigid} and {rigid/small} and {rigid/nve} styles perform constant NVE time integration. The only difference is that the {rigid} and {rigid/small} styles use an integration technique based on Richardson iterations. The {rigid/nve} style uses the methods described in the paper by "Miller"_#Miller, which are thought to provide better energy conservation than an iterative approach. The {rigid/nvt} style performs constant NVT integration using a Nose/Hoover thermostat with chains as described originally in "(Hoover)"_#Hoover and "(Martyna)"_#Martyna, which thermostats both the translational and rotational degrees of freedom of the rigid bodies. The rigid-body algorithm used by {rigid/nvt} is described in the paper by "Kamberaj"_#Kamberaj. The {rigid/npt} and {rigid/nph} styles perform constant NPT or NPH integration using a Nose/Hoover barostat with chains. For the NPT case, the same Nose/Hoover thermostat is also used as with {rigid/nvt}. The barostat parameters are specified using one or more of the {iso}, {aniso}, {x}, {y}, {z} and {couple} keywords. These keywords give you the ability to specify 3 diagonal components of the external stress tensor, and to couple these components together so that the dimensions they represent are varied together during a constant-pressure simulation. The effects of these keywords are similar to those defined in "fix npt/nph"_fix_nh.html NOTE: Currently the {rigid/npt} and {rigid/nph} styles do not support triclinic (non-orthongonal) boxes. The target pressures for each of the 6 components of the stress tensor can be specified independently via the {x}, {y}, {z} keywords, which correspond to the 3 simulation box dimensions. For each component, the external pressure or tensor component at each timestep is a ramped value during the run from {Pstart} to {Pstop}. If a target pressure is specified for a component, then the corresponding box dimension will change during a simulation. For example, if the {y} keyword is used, the y-box length will change. A box dimension will not change if that component is not specified, although you have the option to change that dimension via the "fix deform"_fix_deform.html command. For all barostat keywords, the {Pdamp} parameter operates like the {Tdamp} parameter, determining the time scale on which pressure is relaxed. For example, a value of 10.0 means to relax the pressure in a timespan of (roughly) 10 time units (e.g. tau or fmsec or psec - see the "units"_units.html command). Regardless of what atoms are in the fix group (the only atoms which are time integrated), a global pressure or stress tensor is computed for all atoms. Similarly, when the size of the simulation box is changed, all atoms are re-scaled to new positions, unless the keyword {dilate} is specified with a {dilate-group-ID} for a group that represents a subset of the atoms. This can be useful, for example, to leave the coordinates of atoms in a solid substrate unchanged and controlling the pressure of a surrounding fluid. Another example is a system consisting of rigid bodies and point particles where the barostat is only coupled with the rigid bodies. This option should be used with care, since it can be unphysical to dilate some atoms and not others, because it can introduce large, instantaneous displacements between a pair of atoms (one dilated, one not) that are far from the dilation origin. The {couple} keyword allows two or three of the diagonal components of the pressure tensor to be "coupled" together. The value specified with the keyword determines which are coupled. For example, {xz} means the {Pxx} and {Pzz} components of the stress tensor are coupled. {Xyz} means all 3 diagonal components are coupled. Coupling means two things: the instantaneous stress will be computed as an average of the corresponding diagonal components, and the coupled box dimensions will be changed together in lockstep, meaning coupled dimensions will be dilated or contracted by the same percentage every timestep. The {Pstart}, {Pstop}, {Pdamp} parameters for any coupled dimensions must be identical. {Couple xyz} can be used for a 2d simulation; the {z} dimension is simply ignored. The {iso} and {aniso} keywords are simply shortcuts that are equivalent to specifying several other keywords together. The keyword {iso} means couple all 3 diagonal components together when pressure is computed (hydrostatic pressure), and dilate/contract the dimensions together. Using "iso Pstart Pstop Pdamp" is the same as specifying these 4 keywords: x Pstart Pstop Pdamp y Pstart Pstop Pdamp z Pstart Pstop Pdamp couple xyz :pre The keyword {aniso} means {x}, {y}, and {z} dimensions are controlled independently using the {Pxx}, {Pyy}, and {Pzz} components of the stress tensor as the driving forces, and the specified scalar external pressure. Using "aniso Pstart Pstop Pdamp" is the same as specifying these 4 keywords: x Pstart Pstop Pdamp y Pstart Pstop Pdamp z Pstart Pstop Pdamp couple none :pre :line The keyword/value option pairs are used in the following ways. The {langevin} and {temp} and {tparam} keywords perform thermostatting of the rigid bodies, altering both their translational and rotational degrees of freedom. What is meant by "temperature" of a collection of rigid bodies and how it can be monitored via the fix output is discussed below. The {langevin} keyword applies a Langevin thermostat to the constant NVE time integration performed by either the {rigid} or {rigid/small} or {rigid/nve} styles. It cannot be used with the {rigid/nvt} style. 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). The random # {seed} must be a positive integer. The way the Langevin thermostatting operates is explained on the "fix langevin"_fix_langevin.html doc page. IMPORTANT NOTE: When the {langevin} keyword is used with fix rigid versus fix rigid/small, different dynamics will result for parallel runs. This is because of the way random numbers are used in the two cases. The dynamics for the two cases should be statistically similar, but will not be identical, even for a single timestep. The {temp} and {tparam} keywords apply a Nose/Hoover thermostat to the NVT time integration performed by the {rigid/nvt} style. They cannot be used with the {rigid} or {rigid/small} or {rigid/nve} styles. 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). Nose/Hoover chains are used in conjunction with this thermostat. The {tparam} keyword can optionally be used to change the chain settings used. {Tchain} is the number of thermostats in the Nose Hoover chain. This value, along with {Tdamp} can be varied to dampen undesirable oscillations in temperature that can occur in a simulation. As a rule of thumb, increasing the chain length should lead to smaller oscillations. The keyword {pchain} specifies the number of thermostats in the chain thermostatting the barostat degrees of freedom. IMPORTANT NOTE: There are alternate ways to thermostat a system of rigid bodies. You can use "fix langevin"_fix_langevin.html to treat the individual particles in the rigid bodies as effectively immersed in an implicit solvent, e.g. a Brownian dynamics model. For hybrid systems with both rigid bodies and solvent particles, you can thermostat only the solvent particles that surround one or more rigid bodies by appropriate choice of groups in the compute and fix commands for temperature and thermostatting. The solvent interactions with the rigid bodies should then effectively thermostat the rigid body temperature as well without use of the Langevin or Nose/Hoover options associated with the fix rigid commands. The {infile} keyword allows a file of rigid body attributes to be read in from a file, rather then letting LAMMPS compute them. It can only be used with the fix rigid command and its variants. There are 3 such attributes: the total mass of the rigid body, its center-of-mass position, and its 6 moments of inertia. For rigid bodies consisting of point particles or non-overlapping finite-size particles, LAMMPS can compute these values accurately. However, for rigid bodies consisting of finite-size particles which overlap each other, LAMMPS will ignore the overlaps when computing these 3 attributes. The amount of error this induces depends on the amount of overlap. To avoid this issue, the values can be pre-computed (e.g. using Monte Carlo integration). The format of the file is as follows. Note that the file does not have to list attributes for every rigid body integrated by fix rigid. Only bodies which the file specifies will have their computed attributes overridden. The file can contain initial blank lines or comment lines starting with "#" which are ignored. The first non-blank, non-comment line should list N = the number of lines to follow. The N successive lines contain the following information: ID1 masstotal xcm ycm zcm ixx iyy izz ixy ixz iyz ID2 masstotal xcm ycm zcm ixx iyy izz ixy ixz iyz ... IDN masstotal xcm ycm zcm ixx iyy izz ixy ixz iyz :pre The rigid body IDs are all positive integers. For the {single} bodystyle, only an ID of 1 can be used. For the {group} bodystyle, IDs from 1 to Ng can be used where Ng is the number of specified groups. For the {molecule} bodystyle, use the molecule ID for the atoms in a specific rigid body as the rigid body ID. The masstotal and center-of-mass coordinates (xcm,ycm,zcm) are self-explanatory. The center-of-mass should be consistent with what is calculated for the position of the rigid body with all its atoms unwrapped by their respective image flags. If this produces a center-of-mass that is outside the simulation box, LAMMPS wraps it back into the box. The 6 moments of inertia (ixx,iyy,izz,ixy,ixz,iyz) should be the values consistent with the current orientation of the rigid body around its center of mass. The values are with respect to the simulation box XYZ axes, not with respect to the prinicpal axes of the rigid body itself. LAMMPS performs the latter calculation internally. IMPORTANT NOTE: The last point means that you cannot restart a simulation with rigid bodies using the "read_restart"_read_restart.html command and use the same {infile} of rigid body attributes as input for the 2nd simulation, if the rigid bodies have moved or rotated. Instead, you need to produce a new {infile} that reflects the correct attributes for each rigid body at the time of restart. We are thinking about a good way to overcome this issue. :line If you use a "temperature compute"_compute.html with a group that includes particles in rigid bodies, the degrees-of-freedom removed by each rigid body are accounted for in the temperature (and pressure) computation, but only if the temperature group includes all the particles in a particular rigid body. A 3d rigid body has 6 degrees of freedom (3 translational, 3 rotational), except for a collection of point particles lying on a straight line, which has only 5, e.g a dimer. A 2d rigid body has 3 degrees of freedom (2 translational, 1 rotational). IMPORTANT NOTE: You may wish to explicitly subtract additional degrees-of-freedom if you use the {force} and {torque} keywords to eliminate certain motions of one or more rigid bodies. LAMMPS does not do this automatically. The rigid body contribution to the pressure of the system (virial) is also accounted for by this fix. IMPORTANT NOTE: The periodic image flags of atoms in rigid bodies are altered so that the rigid body can be reconstructed correctly when it straddles periodic boundaries. The atom image flags are not incremented/decremented as they would be for non-rigid atoms as the rigid body crosses periodic boundaries. This means you cannot interpret them as you normally would. For example, the image flag values written to a "dump file"_dump.html will be different than they would be if the atoms were not in a rigid body. Likewise the "compute msd"_compute_msd.html will not compute the expected mean-squared displacement for such atoms if the body moves across periodic boundaries. It also means that if you have bonds between a pair of rigid bodies and the bond straddles a periodic boundary, you cannot use the "replicate"_replicate.html command to increase the system size. Note that this fix does define image flags for each rigid body, which are incremented when the rigid body crosses a periodic boundary in the usual way. These image flags have the same meaning as atom images (see the "dump" command) and can be accessed and output as described below. :line If your simlulation is a hybrid model with a mixture of rigid bodies and non-rigid particles (e.g. solvent) there are several ways these rigid fixes can be used in tandem with "fix nve"_fix_nve.html, "fix nvt"_fix_nh.html, "fix npt"_fix_nh.html, and "fix nph"_fix_nh.html. If you wish to perform NVE dynamics (no thermostatting or barostatting), use fix rigid or fix rigid/nve to integrate the rigid bodies, and "fix nve"_fix_nve.html to integrate the non-rigid particles. If you wish to perform NVT dynamics (thermostatting, but no barostatting), you can use fix rigid/nvt for the rigid bodies, and any thermostatting fix for the non-rigid particles ("fix nvt"_fix_nh.html, "fix langevin"_fix_langevin.html, "fix temp/berendsen"_fix_temp_berendsen.html). You can also use fix rigid or fix rigid/nve for the rigid bodies and thermostat them using "fix langevin"_fix_langevin.html on the group that contains all the particles in the rigid bodies. The net force added by "fix langevin"_fix_langevin.html to each rigid body effectively thermostats its translational center-of-mass motion. Not sure how well it does at thermostatting its rotational motion. If you with to perform NPT or NPH dynamics (barostatting), you cannot use both "fix npt"_fix_nh.html and fix rigid/npt (or the nph variants). This is because there can only be one fix which monitors the global pressure and changes the simulation box dimensions. So you have 3 choices: Use fix rigid/npt for the rigid bodies. Use the {dilate} all option so that it will dilate the positions of the non-rigid particles as well. Use "fix nvt"_fix_nh.html (or any other thermostat) for the non-rigid particles. :ulb,l Use "fix npt"_fix_nh.html for the group of non-rigid particles. Use the {dilate} all option so that it will dilate the center-of-mass positions of the rigid bodies as well. Use fix rigid/nvt for the rigid bodies. :l Use "fix press/berendsen"_fix_press_berendsen.html to compute the pressure and change the box dimensions. Use fix rigid/nvt for the rigid bodies. Use "fix nvt"_fix_nh.thml (or any other thermostat) for the non-rigid particles. :l,ule In all case, the rigid bodies and non-rigid particles both contribute to the global pressure and the box is scaled the same by any of the barostatting fixes. You could even use the 2nd and 3rd options for a non-hybrid simulation consisting of only rigid bodies, assuming you give "fix npt"_fix_nh.html an empty group, though it's an odd thing to do. The barostatting fixes ("fix npt"_fix_nh.html and "fix press/berensen"_fix_press_berendsen.html) will monitor the pressure and change the box dimensions, but not time integrate any particles. The integration of the rigid bodies will be performed by fix rigid/nvt. :line +Styles with a {cuda}, {gpu}, {omp}, or {opt} suffix are functionally +the same as the corresponding style without the suffix. They have +been optimized to run faster, depending on your available hardware, as +discussed in "Section_accelerate"_Section_accelerate.html of the +manual. The accelerated styles take the same arguments and should +produce the same results, except for round-off and precision issues. + +These accelerated styles are part of the USER-CUDA, GPU, USER-OMP and OPT +packages, respectively. They are only enabled if LAMMPS was built with +those packages. See the "Making LAMMPS"_Section_start.html#start_3 +section for more info. + +You can specify the accelerated styles explicitly in your input script +by including their suffix, or you can use the "-suffix command-line +switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can +use the "suffix"_suffix.html command in your input script. + +See "Section_accelerate"_Section_accelerate.html of the manual for +more instructions on how to use the accelerated styles effectively. + +:line + [Restart, fix_modify, output, run start/stop, minimize info:] No information about the {rigid} and {rigid/small} and {rigid/nve} fixes are written to "binary restart files"_restart.html. For style {rigid/nvt} the state of the Nose/Hoover thermostat is written 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 {energy} option is supported by the rigid/nvt fix to add the energy change induced by the thermostatting to the system's potential energy as part of "thermodynamic output"_thermo_style.html. The "fix_modify"_fix_modify.html {temp} and {press} options are supported by the rigid/npt and rigid/nph fixes to change the computes used to calculate the instantaneous pressure tensor. Note that the rigid/nvt fix does not use any external compute to compute instantaneous temperature. No global or per-atom quantities are stored by the {rigid/small} fix for access by various "output commands"_Section_howto.html#howto_15. The {rigid} and {rigid/nve} fixes compute a global scalar which can be accessed by various "output commands"_Section_howto.html#howto_15. The scalar value calculated by these fixes is "intensive". The scalar is the current temperature of the collection of rigid bodies. This is averaged over all rigid bodies and their translational and rotational degrees of freedom. The translational energy of a rigid body is 1/2 m v^2, where m = total mass of the body and v = the velocity of its center of mass. The rotational energy of a rigid body is 1/2 I w^2, where I = the moment of inertia tensor of the body and w = its angular velocity. Degrees of freedom constrained by the {force} and {torque} keywords are removed from this calculation. The {rigid/nvt}, {rigid/npt}, and {rigid/nph} fixes compute a global scalar which can be accessed by various "output commands"_Section_howto.html#howto_15. The scalar value calculated by these fixes is "extensive". The scalar is the cumulative energy change due to the thermostatting and barostatting the fix performs. All of the {rigid} fixes (but not the {rigid/small} fix) compute a global array of values which can be accessed by various "output commands"_Section_howto.html#howto_15. The number of rows in the array is equal to the number of rigid bodies. The number of columns is 15. Thus for each rigid body, 15 values are stored: the xyz coords of the center of mass (COM), the xyz components of the COM velocity, the xyz components of the force acting on the COM, the xyz components of the torque acting on the COM, and the xyz image flags of the COM, which have the same meaning as image flags for atom positions (see the "dump" command). The force and torque values in the array are not affected by the {force} and {torque} keywords in the fix rigid command; they reflect values before any changes are made by those keywords. The ordering of the rigid bodies (by row in the array) is as follows. For the {single} keyword there is just one rigid body. For the {molecule} keyword, the bodies are ordered by ascending molecule ID. For the {group} keyword, the list of group IDs determines the ordering of bodies. The array values calculated by these fixes are "intensive", meaning they are independent of the number of atoms in the simulation. No parameter of these fixes can be used with the {start/stop} keywords of the "run"_run.html command. These fixes are not invoked during "energy minimization"_minimize.html. :line [Restrictions:] These fixes are all part of the RIGID 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. [Related commands:] "delete_bonds"_delete_bonds.html, "neigh_modify"_neigh_modify.html exclude [Default:] The option defaults are force * on on on and torque * on on on, meaning all rigid bodies are acted on by center-of-mass force and torque. Also Tchain = Pchain = 10, Titer = 1, Torder = 3. :line :link(Hoover) [(Hoover)] Hoover, Phys Rev A, 31, 1695 (1985). :link(Kamberaj) [(Kamberaj)] Kamberaj, Low, Neal, J Chem Phys, 122, 224114 (2005). :link(Martyna) [(Martyna)] Martyna, Klein, Tuckerman, J Chem Phys, 97, 2635 (1992); Martyna, Tuckerman, Tobias, Klein, Mol Phys, 87, 1117. :link(Miller) [(Miller)] Miller, Eleftheriou, Pattnaik, Ndirango, and Newns, J Chem Phys, 116, 8649 (2002). :link(Zhang) [(Zhang)] Zhang, Glotzer, Nanoletters, 4, 1407-1413 (2004).