From 8f4c6e3720518b9d90d686edf895de9bd07c784b Mon Sep 17 00:00:00 2001
From: sjplimp Syntax:
Examples:
Description:
fix ID group-ID rigid keyword values
+
fix ID group-ID rigid bodystyle args keyword values ...
single values = none
- molecule values = none
- group values = list of group IDs
+
single args = none
+ molecule args = none
+ group args = N groupID1 groupID2 ...
+ N = # of groups
+ groupID1, groupID2, ... = list of N group IDs
+
+ 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
fix 1 clump rigid single
+fix 1 clump rigid single force 1 off off on
fix 1 polychains rigid molecule
-fix 2 fluid rigid group clump1 clump2 clump3
+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
Each body must have two or more atoms. Which atoms are in which -bodies can be defined via several options. +
Each 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 option single the entire group of atoms is treated as one rigid -body. +
For bodystyle single the entire fix group of atoms is treated as one +rigid body.
-For option molecule, each set of atoms in the group with a different -molecule ID is treated as a rigid body. +
For bodystyle molecule, each set of atoms in the fix group with a +different molecule ID is treated as a rigid body.
-For option group, each of the listed groups is treated as a separate -rigid body. Note that only atoms that are also in the fix group are +
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.
-For computational efficiency, you should also turn off pairwise and +
By default, each rigid body is acted on by other atoms which induce a +force and torque on its center of mass, causing it to translate and +rotate. Components of the 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. 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. +
+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). +
+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 and delete_bonds commands are used to do this. @@ -83,7 +123,13 @@ degree-of-freedom must be subtracted manually using the compute_modify command. E.g. for a simulation of 10 such rigid bodies, use "compute_modify thermo_temp extra 13", after the thermo_style command, where 3 is the default setting and an -additional 10 degrees-of-freedom are subtracted. +additional 10 degrees-of-freedom are subtracted. You may also wish to +manually subtract additional degrees-of-freedom if you use the force +and torque keywords to eliminate certain motions of the rigid body. +Alternatively, you can define the temperature compute +to exclude atoms in rigid bodies, which may be a better strategy, +i.e. measure the temperature of the free atoms around the rigid body +or bodies.
IMPORTANT NOTE: The periodic image flags of atoms in rigid bodies are modified when the center-of-mass of the rigid body moves across a @@ -103,11 +149,32 @@ the system size.
No information about this fix is written to binary restart files. None of the fix_modify options -are relevant to this fix. No global scalar or vector or per-atom -quantities are stored by this fix for access by various output -commands. No parameter of this fix can be -used with the start/stop keywords of the run command. -This fix is not invoked during energy minimization. +are relevant to this fix. +
+This fix computes a global vector of quantities which can be accessed +by various output commands. For each rigid +body, 12 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, and the xyz components of the torque +acting on the COM. The force and torque values in the vector 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 total length of the vector is 12*Nbody where Nbody is the number +of rigid bodies defined by the fix. Thus the 15th value in the vector +would be the z-coord of the COM of the 2nd rigid body. LAMMPS chooses +the ordering of the rigid bodies internally. The ordering of the +rigid bodies 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 vector values calculated by +this fix 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 command. This fix is not invoked during energy +minimization.
Restrictions:
@@ -124,13 +191,17 @@ rigid body. stationary. A better way to do this 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. +move. Alternatively, you can also set the force on those atoms to 0.0 +via the fix setforce command.Related commands:
delete_bonds, neigh_modify exclude
-Default: none +
Default: +
+The option defaults are force * 1 1 1 and torque * 1 1 1, meaning +all rigid bodies are acted on by center-of-mass force and torque.