forked from lijiext/lammps
git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@4079 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
parent
7cb9a802ad
commit
2fc3c9fbff
|
@ -329,9 +329,9 @@ of each style or click on the style itself for a full description:
|
|||
<TR ALIGN="center"><TD ><A HREF = "fix_move.html">move</A></TD><TD ><A HREF = "fix_nh.html">nph</A></TD><TD ><A HREF = "fix_nph_asphere.html">nph/asphere</A></TD><TD ><A HREF = "fix_nph_sphere.html">nph/sphere</A></TD><TD ><A HREF = "fix_nh.html">npt</A></TD><TD ><A HREF = "fix_npt_asphere.html">npt/asphere</A></TD><TD ><A HREF = "fix_npt_sphere.html">npt/sphere</A></TD><TD ><A HREF = "fix_nve.html">nve</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "fix_nve_asphere.html">nve/asphere</A></TD><TD ><A HREF = "fix_nve_limit.html">nve/limit</A></TD><TD ><A HREF = "fix_nve_noforce.html">nve/noforce</A></TD><TD ><A HREF = "fix_nve_sphere.html">nve/sphere</A></TD><TD ><A HREF = "fix_nh.html">nvt</A></TD><TD ><A HREF = "fix_nvt_asphere.html">nvt/asphere</A></TD><TD ><A HREF = "fix_nvt_sllod.html">nvt/sllod</A></TD><TD ><A HREF = "fix_nvt_sphere.html">nvt/sphere</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "fix_orient_fcc.html">orient/fcc</A></TD><TD ><A HREF = "fix_planeforce.html">planeforce</A></TD><TD ><A HREF = "fix_poems.html">poems</A></TD><TD ><A HREF = "fix_pour.html">pour</A></TD><TD ><A HREF = "fix_press_berendsen.html">press/berendsen</A></TD><TD ><A HREF = "fix_print.html">print</A></TD><TD ><A HREF = "fix_reax_bonds.html">reax/bonds</A></TD><TD ><A HREF = "fix_recenter.html">recenter</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "fix_rigid.html">rigid</A></TD><TD ><A HREF = "fix_setforce.html">setforce</A></TD><TD ><A HREF = "fix_shake.html">shake</A></TD><TD ><A HREF = "fix_spring.html">spring</A></TD><TD ><A HREF = "fix_spring_rg.html">spring/rg</A></TD><TD ><A HREF = "fix_spring_self.html">spring/self</A></TD><TD ><A HREF = "fix_store_coord.html">store/coord</A></TD><TD ><A HREF = "fix_store_force.html">store/force</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "fix_temp_berendsen.html">temp/berendsen</A></TD><TD ><A HREF = "fix_temp_rescale.html">temp/rescale</A></TD><TD ><A HREF = "fix_thermal_conductivity.html">thermal/conductivity</A></TD><TD ><A HREF = "fix_tmd.html">tmd</A></TD><TD ><A HREF = "fix_ttm.html">ttm</A></TD><TD ><A HREF = "fix_viscosity.html">viscosity</A></TD><TD ><A HREF = "fix_viscous.html">viscous</A></TD><TD ><A HREF = "fix_wall.html">wall/colloid</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "fix_wall_gran.html">wall/gran</A></TD><TD ><A HREF = "fix_wall.html">wall/harmonic</A></TD><TD ><A HREF = "fix_wall.html">wall/lj126</A></TD><TD ><A HREF = "fix_wall.html">wall/lj93</A></TD><TD ><A HREF = "fix_wall_reflect.html">wall/reflect</A></TD><TD ><A HREF = "fix_wall_region.html">wall/region</A>
|
||||
<TR ALIGN="center"><TD ><A HREF = "fix_rigid.html">rigid</A></TD><TD ><A HREF = "fix_rigid.html">rigid/nve</A></TD><TD ><A HREF = "fix_rigid.html">rigid/nvt</A></TD><TD ><A HREF = "fix_setforce.html">setforce</A></TD><TD ><A HREF = "fix_shake.html">shake</A></TD><TD ><A HREF = "fix_spring.html">spring</A></TD><TD ><A HREF = "fix_spring_rg.html">spring/rg</A></TD><TD ><A HREF = "fix_spring_self.html">spring/self</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "fix_store_coord.html">store/coord</A></TD><TD ><A HREF = "fix_store_force.html">store/force</A></TD><TD ><A HREF = "fix_temp_berendsen.html">temp/berendsen</A></TD><TD ><A HREF = "fix_temp_rescale.html">temp/rescale</A></TD><TD ><A HREF = "fix_thermal_conductivity.html">thermal/conductivity</A></TD><TD ><A HREF = "fix_tmd.html">tmd</A></TD><TD ><A HREF = "fix_ttm.html">ttm</A></TD><TD ><A HREF = "fix_viscosity.html">viscosity</A></TD></TR>
|
||||
<TR ALIGN="center"><TD ><A HREF = "fix_viscous.html">viscous</A></TD><TD ><A HREF = "fix_wall.html">wall/colloid</A></TD><TD ><A HREF = "fix_wall_gran.html">wall/gran</A></TD><TD ><A HREF = "fix_wall.html">wall/harmonic</A></TD><TD ><A HREF = "fix_wall.html">wall/lj126</A></TD><TD ><A HREF = "fix_wall.html">wall/lj93</A></TD><TD ><A HREF = "fix_wall_reflect.html">wall/reflect</A></TD><TD ><A HREF = "fix_wall_region.html">wall/region</A>
|
||||
</TD></TR></TABLE></DIV>
|
||||
|
||||
<P>These are fix styles contributed by users, which can be used if
|
||||
|
|
|
@ -431,6 +431,8 @@ of each style or click on the style itself for a full description:
|
|||
"reax/bonds"_fix_reax_bonds.html,
|
||||
"recenter"_fix_recenter.html,
|
||||
"rigid"_fix_rigid.html,
|
||||
"rigid/nve"_fix_rigid.html,
|
||||
"rigid/nvt"_fix_rigid.html,
|
||||
"setforce"_fix_setforce.html,
|
||||
"shake"_fix_shake.html,
|
||||
"spring"_fix_spring.html,
|
||||
|
|
|
@ -207,7 +207,9 @@ list of fix styles available in LAMMPS:
|
|||
<LI><A HREF = "fix_press_berendsen.html">press/berendsen</A> - pressure control by Berendsen barostat
|
||||
<LI><A HREF = "fix_print.html">print</A> - print text and variables during a simulation
|
||||
<LI><A HREF = "fix_reax_bonds.html">reax/bonds</A> - write out ReaxFF bond information <A HREF = "fix_recenter.html">recenter</A> - constrain the center-of-mass position of a group of atoms
|
||||
<LI><A HREF = "fix_rigid.html">rigid</A> - constrain one or more clusters of atoms to move as a rigid body
|
||||
<LI><A HREF = "fix_rigid.html">rigid</A> - constrain one or more clusters of atoms to move as a rigid body with NVE integration
|
||||
<LI><A HREF = "fix_rigid.html">rigid/nve</A> - constrain one or more clusters of atoms to move as a rigid body with alternate NVE integration
|
||||
<LI><A HREF = "fix_rigid.html">rigid/nvt</A> - constrain one or more clusters of atoms to move as a rigid body with NVT integration
|
||||
<LI><A HREF = "fix_setforce.html">setforce</A> - set the force on each atom
|
||||
<LI><A HREF = "fix_shake.html">shake</A> - SHAKE constraints on bonds and/or angles
|
||||
<LI><A HREF = "fix_spring.html">spring</A> - apply harmonic spring force to group of atoms
|
||||
|
|
|
@ -207,7 +207,11 @@ list of fix styles available in LAMMPS:
|
|||
"recenter"_fix_recenter.html - constrain the center-of-mass position \
|
||||
of a group of atoms
|
||||
"rigid"_fix_rigid.html - constrain one or more clusters of atoms to \
|
||||
move as a rigid body
|
||||
move as a rigid body with NVE integration
|
||||
"rigid/nve"_fix_rigid.html - constrain one or more clusters of atoms to \
|
||||
move as a rigid body with alternate NVE integration
|
||||
"rigid/nvt"_fix_rigid.html - constrain one or more clusters of atoms to \
|
||||
move as a rigid body with NVT integration
|
||||
"setforce"_fix_setforce.html - set the force on each atom
|
||||
"shake"_fix_shake.html - SHAKE constraints on bonds and/or angles
|
||||
"spring"_fix_spring.html - apply harmonic spring force to group of atoms
|
||||
|
|
|
@ -9,15 +9,19 @@
|
|||
|
||||
<HR>
|
||||
|
||||
<H3>fix rigid
|
||||
<H3>fix rigid command
|
||||
</H3>
|
||||
<H3>fix rigid/nve command
|
||||
</H3>
|
||||
<H3>fix rigid/nvt command
|
||||
</H3>
|
||||
<P><B>Syntax:</B>
|
||||
</P>
|
||||
<PRE>fix ID group-ID rigid bodystyle args keyword values ...
|
||||
<PRE>fix ID group-ID style bodystyle args keyword values ...
|
||||
</PRE>
|
||||
<UL><LI>ID, group-ID are documented in <A HREF = "fix.html">fix</A> command
|
||||
|
||||
<LI>rigid = style name of this fix command
|
||||
<LI>style = <I>rigid</I> or <I>rigid/nve</I> or <I>rigid/nvt</I>
|
||||
|
||||
<LI>bodystyle = <I>single</I> or <I>molecule</I> or <I>group</I>
|
||||
|
||||
|
@ -29,9 +33,21 @@
|
|||
</PRE>
|
||||
<LI>zero or more keyword/value pairs may be appended
|
||||
|
||||
<LI>keyword = <I>force</I> or <I>torque</I>
|
||||
<LI>keyword = <I>temp</I> or <I>press</I> or <I>tparam</I> or <I>pparam</I> or <I>force</I> or <I>torque</I>
|
||||
|
||||
<PRE> <I>force</I> values = M xflag yflag zflag
|
||||
<PRE> <I>temp</I> values = Tstart Tstop Tperiod
|
||||
Tstart,Tstop = desired temperature at start/stop of run (temperature units)
|
||||
Tdamp = temperature damping parameter (time units)
|
||||
<I>press</I> values = Pstart Pstop Pperiod
|
||||
Pstart,Pstop = desired temperature at start/stop of run (pressure units)
|
||||
Pdamp = pressure damping parameter (time units)
|
||||
<I>tparam</I> 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
|
||||
<I>pparam</I> values = Pchain
|
||||
Pchain = length of Nose/Hoover barostat chain
|
||||
<I>force</I> 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
|
||||
<I>torque</I> values = M xflag yflag zflag
|
||||
|
@ -44,9 +60,8 @@
|
|||
</P>
|
||||
<PRE>fix 1 clump rigid single
|
||||
fix 1 clump rigid single force 1 off off on
|
||||
fix 1 polychains rigid molecule
|
||||
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 2 fluid rigid group 3 clump1 clump2 clump3
|
||||
fix 2 fluid rigid group 3 clump1 clump2 clump3 torque * off off off
|
||||
</PRE>
|
||||
<P><B>Description:</B>
|
||||
|
@ -71,26 +86,26 @@ 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.
|
||||
</P>
|
||||
<P>The constituent particles within a rigid body can be point particles
|
||||
(the default in LAMMPS) or finite-size particles, such as spheroids
|
||||
and ellipsoids. See the <A HREF = "shape.html">shape</A> command and <A HREF = "atom_style.html">atom_style
|
||||
granular</A> 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 <A HREF = "pair_gran.html">frictional granular
|
||||
interactions</A>) and have an orientation. These
|
||||
contributions are accounted for by the fix.
|
||||
<P>These fixes also update the positions and velocities of the atoms in
|
||||
each rigid body via time integration. The <I>rigid</I> and <I>rigid/nve</I>
|
||||
styles do this via constant NVE integration. The only difference is
|
||||
that the <I>rigid</I> style uses an integration technique based on
|
||||
Richardson iterations. The <I>rigid/nve</I> style uses the methods
|
||||
described in the paper by <A HREF = "#Miller">Miller</A>, which are thought to
|
||||
provide better energy conservation than an iterative approach.
|
||||
</P>
|
||||
<P>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 <A HREF = "neigh_modify.html">neigh_modify
|
||||
exclude</A> and <A HREF = "delete_bonds.html">delete_bonds</A>
|
||||
commands are used to do this. For finite-size particles this also
|
||||
means the particles can be highly overlapped when creating the rigid
|
||||
body.
|
||||
<P>The <I>rigid/nvt</I> style performs constant NVT integration using a
|
||||
Nose/Hoover thermostat with chains as described originally in
|
||||
<A HREF = "#Hoover">(Hoover)</A> and <A HREF = "#Martyna">(Martyna)</A>, which thermostats both
|
||||
the translational and rotational degrees of freedom of the rigid
|
||||
bodies. The rigid-body algorithm used by <I>rigid/nvt</I> is described in
|
||||
the paper by <A HREF = "#Kamberaj">Kamberaj</A>.
|
||||
</P>
|
||||
<P>IMPORTANT NOTE: This fix is overkill if you simply want to hold a
|
||||
<P>IMPORTANT NOTE: You should not update the atoms in rigid bodies via
|
||||
other time-integration fixes (e.g. nve, nvt, npt), or you will be
|
||||
integrating their motion more than once each timestep.
|
||||
</P>
|
||||
<P>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"
|
||||
|
@ -101,9 +116,26 @@ command), setting the force on them to 0.0 (via the <A HREF = "fix_setforce.html
|
|||
setforce</A> command), and integrating them as usual
|
||||
(e.g. via the <A HREF = "fix_nve.html">fix nve</A> command).
|
||||
</P>
|
||||
<P>IMPORTANT NOTE: This fix updates the positions and velocities of the
|
||||
rigid atoms with a constant-energy time integration, so you should not
|
||||
update the same atoms via other fixes (e.g. nve, nvt, npt).
|
||||
<HR>
|
||||
|
||||
<P>The constituent particles within a rigid body can be point particles
|
||||
(the default in LAMMPS) or finite-size particles, such as spheroids
|
||||
and ellipsoids. See the <A HREF = "shape.html">shape</A> command and <A HREF = "atom_style.html">atom_style
|
||||
granular</A> 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 <A HREF = "pair_gran.html">frictional granular
|
||||
interactions</A>) and have an orientation. These
|
||||
contributions are accounted for by these fixes.
|
||||
</P>
|
||||
<P>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 <A HREF = "neigh_modify.html">neigh_modify
|
||||
exclude</A> and <A HREF = "delete_bonds.html">delete_bonds</A>
|
||||
commands are used to do this. For finite-size particles this also
|
||||
means the particles can be highly overlapped when creating the rigid
|
||||
body.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
|
@ -155,24 +187,51 @@ bond interactions within each rigid body, as they no longer contribute
|
|||
to the motion. The <A HREF = "neigh_modify.html">neigh_modify exclude</A> and
|
||||
<A HREF = "delete_bonds.html">delete_bonds</A> commands are used to do this.
|
||||
</P>
|
||||
<P>For computational efficiency, you should define one fix rigid which
|
||||
includes all the desired rigid bodies. LAMMPS will allow multiple
|
||||
rigid fixes to be defined, but it is more expensive.
|
||||
<P>For computational efficiency, you should typically define one fix
|
||||
rigid which includes all the desired rigid bodies. LAMMPS will allow
|
||||
multiple rigid fixes to be defined, but it is more expensive.
|
||||
</P>
|
||||
<P>This fix uses constant-energy NVE-style integration, so you may need
|
||||
to impose additional constraints to control the temperature of an
|
||||
ensemble of rigid bodies. You can use <A HREF = "fix_langevin.html">fix
|
||||
langevin</A> for this purpose to treat the system as
|
||||
<HR>
|
||||
|
||||
<P>As stated above, the <I>rigid</I> and <I>rigid/nve</I> styles perform constant
|
||||
NVE time integration. Thus the <I>temp</I>, <I>press</I>, and <I>tparam</I> keywords
|
||||
cannot be used with these styles.
|
||||
</P>
|
||||
<P>The <I>rigid/nvt</I> style performs constant NVT time integration, using a
|
||||
temperature it computes for the rigid bodies which includes their
|
||||
translational and rotational motion. The <I>temp</I> keyword must be used
|
||||
with this style. The desired temperature at each timestep is a ramped
|
||||
value during the run from <I>Tstart</I> to <I>Tstop</I>. The <I>Tdamp</I> 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 <A HREF = "units.html">units</A> command).
|
||||
</P>
|
||||
<P>Nose/Hoover chains are used in conjunction with this thermostat. The
|
||||
<I>tparam</I> keyword can optionally be used to change the chain settings
|
||||
used. <I>Tchain</I> is the number of thermostats in the Nose Hoover chain.
|
||||
This value, along with <I>Tdamp</I> 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.
|
||||
</P>
|
||||
<P>There are alternate ways to thermostat a system of rigid bodies. You
|
||||
can use <A HREF = "fix_langevin.html">fix langevin</A> to treat the system as
|
||||
effectively immersed in an implicit solvent, e.g. a Brownian dynamics
|
||||
model. Or you can thermostat only the non-rigid atoms that surround
|
||||
one or more rigid bodies (i.e. explicit solvent) by appropriate choice
|
||||
of groups in the compute and fix commands for temperature and
|
||||
thermostatting.
|
||||
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.
|
||||
</P>
|
||||
<P>If you calculate a temperature for particles in the 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.
|
||||
<HR>
|
||||
|
||||
<P>If you use a <A HREF = "compute.html">temperature compute</A> 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.
|
||||
</P>
|
||||
<P>A 3d rigid body has 6 degrees of freedom (3 translational, 3
|
||||
rotational), except for a collection of point particles lying on a
|
||||
|
@ -181,7 +240,7 @@ degrees of freedom (2 translational, 1 rotational).
|
|||
</P>
|
||||
<P>IMPORTANT NOTE: You may wish to explicitly subtract additional
|
||||
degrees-of-freedom if you use the <I>force</I> and <I>torque</I> keywords to
|
||||
eliminate certain motions of one or more rigid bodies, as LAMMPS does
|
||||
eliminate certain motions of one or more rigid bodies. LAMMPS does
|
||||
not do this automatically.
|
||||
</P>
|
||||
<P>The rigid body contribution to the pressure of the system (virial) is
|
||||
|
@ -201,13 +260,22 @@ between a pair of rigid bodies and the bond straddles a periodic
|
|||
boundary, you cannot use the <A HREF = "replicate">replicate</A> command to increase
|
||||
the system size.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<P><B>Restart, fix_modify, output, run start/stop, minimize info:</B>
|
||||
</P>
|
||||
<P>No information about this fix is written to <A HREF = "restart.html">binary restart
|
||||
files</A>. None of the <A HREF = "fix_modify.html">fix_modify</A> options
|
||||
are relevant to this fix.
|
||||
<P>No information about the <I>rigid</I> and <I>rigid/nve</I> fixes are written to
|
||||
<A HREF = "restart.html">binary restart files</A>. For style <I>rigid/nvt</I> the state
|
||||
of the Nose/Hoover thermostat is written to <A HREF = "restart.html">binary restart
|
||||
files</A>. See the <A HREF = "read_restart.html">read_restart</A> 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.
|
||||
</P>
|
||||
<P>This fix computes a global array of values which can be accessed by
|
||||
<P>None of the <A HREF = "fix_modify.html">fix_modify</A> options are relevant to these
|
||||
fixes.
|
||||
</P>
|
||||
<P>These fixes compute a global array of values which can be accessed by
|
||||
various <A HREF = "Section_howto.html#4_15">output commands</A>. The number of rows
|
||||
in the array is equal to the number of rigid bodies. The number of
|
||||
columns is 12. Thus for each rigid body, 12 values are stored: the
|
||||
|
@ -224,17 +292,19 @@ For the <I>single</I> keyword there is just one rigid body. For the
|
|||
For the <I>group</I> keyword, the list of group IDs determines the ordering
|
||||
of bodies.
|
||||
</P>
|
||||
<P>The array values calculated by this fix are "intensive".
|
||||
<P>The array values calculated by these fixes are "intensive", meaning
|
||||
they are independent of the number of atoms in the simulation.
|
||||
</P>
|
||||
<P>No parameter of this fix can be used with the <I>start/stop</I> keywords of
|
||||
the <A HREF = "run.html">run</A> command. This fix is not invoked during <A HREF = "minimize.html">energy
|
||||
minimization</A>.
|
||||
<P>No parameter of these fixes can be used with the <I>start/stop</I> keywords
|
||||
of the <A HREF = "run.html">run</A> command. These fixes are not invoked during
|
||||
<A HREF = "minimize.html">energy minimization</A>.
|
||||
</P>
|
||||
<P><B>Restrictions:</B>
|
||||
</P>
|
||||
<P>This fix performs an MPI_Allreduce each timestep that is proportional
|
||||
in length to the number of rigid bodies. Hence it will not scale well
|
||||
in parallel if large numbers of rigid bodies are simulated.
|
||||
<P>These fixes performs an MPI_Allreduce each timestep that is
|
||||
proportional in length to the number of rigid bodies. Hence they will
|
||||
not scale well in parallel if large numbers of rigid bodies are
|
||||
simulated.
|
||||
</P>
|
||||
<P>If the atoms in a single rigid body initially straddle a periodic
|
||||
boundary, the input data file must define the image flags for each
|
||||
|
@ -248,11 +318,30 @@ exclude
|
|||
</P>
|
||||
<P><B>Default:</B>
|
||||
</P>
|
||||
<P>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.
|
||||
<P>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 = 10, Titer = 1, Torder = 3.
|
||||
</P>
|
||||
<HR>
|
||||
|
||||
<A NAME = "Hoover"></A>
|
||||
|
||||
<P><B>(Hoover)</B> Hoover, Phys Rev A, 31, 1695 (1985).
|
||||
</P>
|
||||
<A NAME = "Kamberaj"></A>
|
||||
|
||||
<P><B>(Kamberaj)</B> Kamberaj, Low, Neal, J Chem Phys, 122, 224114 (2005).
|
||||
</P>
|
||||
<A NAME = "Martyna"></A>
|
||||
|
||||
<P><B>(Martyna)</B> Martyna, Klein, Tuckerman, J Chem Phys, 97, 2635 (1992);
|
||||
Martyna, Tuckerman, Tobias, Klein, Mol Phys, 87, 1117.
|
||||
</P>
|
||||
<A NAME = "Miller"></A>
|
||||
|
||||
<P><B>(Miller)</B> Miller, Eleftheriou, Pattnaik, Ndirango, and Newns,
|
||||
J Chem Phys, 116, 8649 (2002).
|
||||
</P>
|
||||
<A NAME = "Zhang"></A>
|
||||
|
||||
<P><B>(Zhang)</B> Zhang, Glotzer, Nanoletters, 4, 1407-1413 (2004).
|
||||
|
|
|
@ -6,14 +6,16 @@
|
|||
|
||||
:line
|
||||
|
||||
fix rigid :h3
|
||||
fix rigid command :h3
|
||||
fix rigid/nve command :h3
|
||||
fix rigid/nvt command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
fix ID group-ID rigid bodystyle args keyword values ... :pre
|
||||
fix ID group-ID style bodystyle args keyword values ... :pre
|
||||
|
||||
ID, group-ID are documented in "fix"_fix.html command :ulb,l
|
||||
rigid = style name of this fix command :l
|
||||
style = {rigid} or {rigid/nve} or {rigid/nvt} :l
|
||||
bodystyle = {single} or {molecule} or {group} :l
|
||||
{single} args = none
|
||||
{molecule} args = none
|
||||
|
@ -22,7 +24,19 @@ bodystyle = {single} or {molecule} or {group} :l
|
|||
groupID1, groupID2, ... = list of N group IDs :pre
|
||||
|
||||
zero or more keyword/value pairs may be appended :l
|
||||
keyword = {force} or {torque} :l
|
||||
keyword = {temp} or {press} or {tparam} or {pparam} or {force} or {torque} :l
|
||||
{temp} values = Tstart Tstop Tperiod
|
||||
Tstart,Tstop = desired temperature at start/stop of run (temperature units)
|
||||
Tdamp = temperature damping parameter (time units)
|
||||
{press} values = Pstart Pstop Pperiod
|
||||
Pstart,Pstop = desired temperature at start/stop of run (pressure units)
|
||||
Pdamp = pressure damping parameter (time units)
|
||||
{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
|
||||
{pparam} values = Pchain
|
||||
Pchain = length of Nose/Hoover barostat chain
|
||||
{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
|
||||
|
@ -35,9 +49,8 @@ keyword = {force} or {torque} :l
|
|||
|
||||
fix 1 clump rigid single
|
||||
fix 1 clump rigid single force 1 off off on
|
||||
fix 1 polychains rigid molecule
|
||||
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 2 fluid rigid group 3 clump1 clump2 clump3
|
||||
fix 2 fluid rigid group 3 clump1 clump2 clump3 torque * off off off :pre
|
||||
|
||||
[Description:]
|
||||
|
@ -62,26 +75,26 @@ 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.
|
||||
|
||||
The constituent particles within a rigid body can be point particles
|
||||
(the default in LAMMPS) or finite-size particles, such as spheroids
|
||||
and ellipsoids. See the "shape"_shape.html command and "atom_style
|
||||
granular"_atom_style.html 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 the fix.
|
||||
These fixes also update the positions and velocities of the atoms in
|
||||
each rigid body via time integration. The {rigid} and {rigid/nve}
|
||||
styles do this via constant NVE integration. The only difference is
|
||||
that the {rigid} style uses 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.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
IMPORTANT NOTE: This fix is overkill if you simply want to hold a
|
||||
IMPORTANT NOTE: You should not update the atoms in rigid bodies via
|
||||
other time-integration fixes (e.g. nve, nvt, npt), or you will be
|
||||
integrating their motion more than once each timestep.
|
||||
|
||||
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"
|
||||
|
@ -92,9 +105,26 @@ 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).
|
||||
|
||||
IMPORTANT NOTE: This fix updates the positions and velocities of the
|
||||
rigid atoms with a constant-energy time integration, so you should not
|
||||
update the same atoms via other fixes (e.g. nve, nvt, npt).
|
||||
:line
|
||||
|
||||
The constituent particles within a rigid body can be point particles
|
||||
(the default in LAMMPS) or finite-size particles, such as spheroids
|
||||
and ellipsoids. See the "shape"_shape.html command and "atom_style
|
||||
granular"_atom_style.html 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
|
||||
|
||||
|
@ -146,24 +176,51 @@ 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 define one fix rigid which
|
||||
includes all the desired rigid bodies. LAMMPS will allow multiple
|
||||
rigid fixes to be defined, but it is more expensive.
|
||||
For computational efficiency, you should typically define one fix
|
||||
rigid which includes all the desired rigid bodies. LAMMPS will allow
|
||||
multiple rigid fixes to be defined, but it is more expensive.
|
||||
|
||||
This fix uses constant-energy NVE-style integration, so you may need
|
||||
to impose additional constraints to control the temperature of an
|
||||
ensemble of rigid bodies. You can use "fix
|
||||
langevin"_fix_langevin.html for this purpose to treat the system as
|
||||
:line
|
||||
|
||||
As stated above, the {rigid} and {rigid/nve} styles perform constant
|
||||
NVE time integration. Thus the {temp}, {press}, and {tparam} keywords
|
||||
cannot be used with these styles.
|
||||
|
||||
The {rigid/nvt} style performs constant NVT time integration, using a
|
||||
temperature it computes for the rigid bodies which includes their
|
||||
translational and rotational motion. The {temp} keyword must be used
|
||||
with this 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).
|
||||
|
||||
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.
|
||||
|
||||
There are alternate ways to thermostat a system of rigid bodies. You
|
||||
can use "fix langevin"_fix_langevin.html to treat the system as
|
||||
effectively immersed in an implicit solvent, e.g. a Brownian dynamics
|
||||
model. Or you can thermostat only the non-rigid atoms that surround
|
||||
one or more rigid bodies (i.e. explicit solvent) by appropriate choice
|
||||
of groups in the compute and fix commands for temperature and
|
||||
thermostatting.
|
||||
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.
|
||||
|
||||
If you calculate a temperature for particles in the 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.
|
||||
: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
|
||||
|
@ -172,7 +229,7 @@ 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, as LAMMPS does
|
||||
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
|
||||
|
@ -192,13 +249,22 @@ between a pair of rigid bodies and the bond straddles a periodic
|
|||
boundary, you cannot use the "replicate"_replicate command to increase
|
||||
the system size.
|
||||
|
||||
: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 information about the {rigid} 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.
|
||||
|
||||
This fix computes a global array of values which can be accessed by
|
||||
None of the "fix_modify"_fix_modify.html options are relevant to these
|
||||
fixes.
|
||||
|
||||
These fixes compute a global array of values which can be accessed by
|
||||
various "output commands"_Section_howto.html#4_15. The number of rows
|
||||
in the array is equal to the number of rigid bodies. The number of
|
||||
columns is 12. Thus for each rigid body, 12 values are stored: the
|
||||
|
@ -215,17 +281,19 @@ For the {single} keyword there is just one rigid body. For the
|
|||
For the {group} keyword, the list of group IDs determines the ordering
|
||||
of bodies.
|
||||
|
||||
The array values calculated by this fix are "intensive".
|
||||
The array values calculated by these fixes are "intensive", meaning
|
||||
they are independent of the number of atoms in the simulation.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
This fix performs an MPI_Allreduce each timestep that is proportional
|
||||
in length to the number of rigid bodies. Hence it will not scale well
|
||||
in parallel if large numbers of rigid bodies are simulated.
|
||||
These fixes performs an MPI_Allreduce each timestep that is
|
||||
proportional in length to the number of rigid bodies. Hence they will
|
||||
not scale well in parallel if large numbers of rigid bodies are
|
||||
simulated.
|
||||
|
||||
If the atoms in a single rigid body initially straddle a periodic
|
||||
boundary, the input data file must define the image flags for each
|
||||
|
@ -239,10 +307,25 @@ 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.
|
||||
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 = 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).
|
||||
|
|
|
@ -109,11 +109,13 @@ since if the maximum tilt factor is 5 (as in this example), then
|
|||
configurations with tilt = ..., -15, -5, 5, 15, 25, ... are all
|
||||
equivalent.
|
||||
</P>
|
||||
<P>Many crystal structures are defined using three lattice constants <I>a</I>, <I>b</I>,
|
||||
and <I>c</I>, and three angles <I>alpha</I>, <I>beta</I> and <I>gamma</I>. The relationships between
|
||||
these quantities and the LAMMPS box dimensions are as follows:
|
||||
<P>Many crystal structures are defined using three lattice constants <I>a</I>,
|
||||
<I>b</I>, and <I>c</I>, and three angles <I>alpha</I>, <I>beta</I> and <I>gamma</I>. The
|
||||
relationships between these quantities and the LAMMPS box dimensions
|
||||
(lx,ly,lz) = (xhi-zlo,yhi-ylo,zhi-zlo) and tilt factors (xy,xz,yz) are
|
||||
as follows:
|
||||
</P>
|
||||
<CENTER><IMG SRC = "Eqs/box.jpg">
|
||||
<CENTER><IMG SRC = "Eqs/box.jpg">
|
||||
</CENTER>
|
||||
<P>When a triclinic system is used, the simulation domain must be
|
||||
periodic in any dimensions with a non-zero tilt factor, as defined by
|
||||
|
@ -271,7 +273,7 @@ appended to it, which indicate which image of a periodic simulation
|
|||
box the atom is in. These may be important to include for some kinds
|
||||
of analysis.
|
||||
</P>
|
||||
<DIV ALIGN=center><TABLE WIDTH="0%" BORDER=1 >
|
||||
<DIV ALIGN=center><TABLE BORDER=1 >
|
||||
<TR><TD >angle</TD><TD > atom-ID molecule-ID atom-type x y z</TD></TR>
|
||||
<TR><TD >atomic</TD><TD > atom-ID atom-type x y z</TD></TR>
|
||||
<TR><TD >bond</TD><TD > atom-ID molecule-ID atom-type x y z</TD></TR>
|
||||
|
@ -687,7 +689,7 @@ style dipole or ellipsoid.
|
|||
<UL><LI>one line per atom
|
||||
<LI>line syntax: depends on atom style
|
||||
</UL>
|
||||
<DIV ALIGN=center><TABLE WIDTH="0%" BORDER=1 >
|
||||
<DIV ALIGN=center><TABLE BORDER=1 >
|
||||
<TR><TD >all styles except those listed</TD><TD > atom-ID vx vy vz</TD></TR>
|
||||
<TR><TD >dipole</TD><TD > atom-ID vx vy vz wx wy wz</TD></TR>
|
||||
<TR><TD >ellipsoid</TD><TD > atom-ID vx vy vz lx ly lz</TD></TR>
|
||||
|
|
|
@ -106,11 +106,13 @@ since if the maximum tilt factor is 5 (as in this example), then
|
|||
configurations with tilt = ..., -15, -5, 5, 15, 25, ... are all
|
||||
equivalent.
|
||||
|
||||
Many crystal structures are defined using three lattice constants {a}, {b},
|
||||
and {c}, and three angles {alpha}, {beta} and {gamma}. The relationships between
|
||||
these quantities and the LAMMPS box dimensions are as follows:
|
||||
Many crystal structures are defined using three lattice constants {a},
|
||||
{b}, and {c}, and three angles {alpha}, {beta} and {gamma}. The
|
||||
relationships between these quantities and the LAMMPS box dimensions
|
||||
(lx,ly,lz) = (xhi-zlo,yhi-ylo,zhi-zlo) and tilt factors (xy,xz,yz) are
|
||||
as follows:
|
||||
|
||||
:c,image(Eqs/box.jpg)
|
||||
:c,image(Eqs/box.jpg)
|
||||
|
||||
When a triclinic system is used, the simulation domain must be
|
||||
periodic in any dimensions with a non-zero tilt factor, as defined by
|
||||
|
|
Loading…
Reference in New Issue