Syntax:
fix ID group-ID rigid keyword values
single values = none molecule values = none group values = list of group IDs
Examples:
fix 1 clump rigid single fix 1 polychains rigid molecule fix 2 fluid rigid group clump1 clump2 clump3
Description:
Treat one or more sets of atoms as a rigid body. This means that each timestep the total force and torque on the rigid body is computed and the coordinates and velocities of the atoms are updated so that they move as a rigid body. This can be useful for freezing one or more portions of a large biomolecule, or for simulating a system of colloidal particles.
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, temp/rescale, langevin).
For single the entire group of atoms is treated as one rigid body.
For molecule, each set of atoms in the group with a different molecule ID is treated as a rigid body.
For 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 included in each rigid body.
For computational efficiency, you should also 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.
For computational efficiency, you should ideally define one rigid fix which includes all the desired rigid bodies. LAMMPS will allow multiple rigid fixes to be defined, but it is more expensive.
The degrees-of-freedom removed by rigid bodies are accounted for in temperature and pressure computations. Similary, the rigid body contribution to the pressure virial is also accounted for.
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.
If the atoms in a single rigid body initially straddle a periodic boundary, the input data file must define the image flags for each atom correctly, so that LAMMPS can "unwrap" the atoms into a valid rigid body.
Because this fix uses constant-energy integration, it means you cannot easily control the temperature of an ensemble of rigid bodies. You can try to use other fixes (langevin, temp/rescale) for this purpose, but the effects are not always satisfactory. If you are simulating a system that also contains non-rigid atoms (e.g. solvent), then you can thermostat those atoms and hope they will couple to the rigid bodies. The right solution is probably to enhance this fix to allow for direct temperature control of the rigid bodies.
Related commands:
delete_bonds, neigh_modify exclude
Default: none