From 8f4c6e3720518b9d90d686edf895de9bd07c784b Mon Sep 17 00:00:00 2001 From: sjplimp Date: Tue, 13 Jan 2009 14:38:26 +0000 Subject: [PATCH] git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@2452 f3b2605a-c512-4ea7-a41b-209d697bcdaa --- doc/fix_rigid.html | 117 ++++++++++++++++++++++++++++++++++++--------- doc/fix_rigid.txt | 116 +++++++++++++++++++++++++++++++++++--------- doc/units.html | 7 ++- doc/units.txt | 7 ++- 4 files changed, 199 insertions(+), 48 deletions(-) diff --git a/doc/fix_rigid.html b/doc/fix_rigid.html index e51b61000f..2c489dfe35 100644 --- a/doc/fix_rigid.html +++ b/doc/fix_rigid.html @@ -13,25 +13,41 @@

Syntax:

-
fix ID group-ID rigid keyword values 
+
fix ID group-ID rigid bodystyle args keyword values ... 
 

Examples:

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 
 

Description:

@@ -46,20 +62,44 @@ for simulating a system of colloidal particles. a constant-energy time integration, so you should not update the same atoms via other fixes (e.g. nve, nvt, npt).

-

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.

diff --git a/doc/fix_rigid.txt b/doc/fix_rigid.txt index 63b030dfc0..c06f2b9550 100644 --- a/doc/fix_rigid.txt +++ b/doc/fix_rigid.txt @@ -10,21 +10,35 @@ fix rigid :h3 [Syntax:] -fix ID group-ID rigid keyword values :pre +fix ID group-ID rigid 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 -keyword = {single} or {molecule} or {group} :l - {single} values = none - {molecule} values = none - {group} values = list of group IDs :pre +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 = {force} or {torque} :l + {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 :pre :ule [Examples:] 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 :pre +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:] @@ -39,20 +53,44 @@ 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). -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"_neigh_modify.html and "delete_bonds"_delete_bonds.html commands are used to do this. @@ -76,7 +114,13 @@ degree-of-freedom must be subtracted manually using the "compute_modify"_compute_modify.html 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"_compute.html +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 @@ -96,11 +140,32 @@ the system size. 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 scalar or vector or per-atom -quantities are stored by this fix for access by various "output -commands"_Section_howto.html#4_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. +are relevant to this fix. + +This fix computes a global vector of quantities which can be accessed +by various "output commands"_Section_howto.html#4_15. 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"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. [Restrictions:] @@ -117,11 +182,16 @@ You should not use this fix if you just want to hold group of atoms 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"_fix_setforce.html command. [Related commands:] "delete_bonds"_delete_bonds.html, "neigh_modify"_neigh_modify.html 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. + diff --git a/doc/units.html b/doc/units.html index 27daf61bf0..2d9c086aa6 100644 --- a/doc/units.html +++ b/doc/units.html @@ -49,6 +49,7 @@ results from a unitless LJ simulation into physical quantities.
  • energy = epsilon, where E* = E / epsilon
  • velocity = sigma/tau, where v* = v tau / sigma
  • force = epsilon/sigma, where f* = f sigma / epsilon +
  • torque = epsilon, where t* = t / epsilon
  • temperature = reduced LJ temperature, where T* = T Kb / epsilon
  • pressure = reduced LJ pressure, where P* = P sigma^3 / epsilon
  • viscosity = reduced LJ viscosity, where eta* = eta sigma^3 / epsilon / tau @@ -64,6 +65,7 @@ results from a unitless LJ simulation into physical quantities.
  • energy = Kcal/mole
  • velocity = Angstroms/femtosecond
  • force = Kcal/mole-Angstrom +
  • torque = Kcal/mole
  • temperature = degrees K
  • pressure = atmospheres
  • viscosity = Poise @@ -79,6 +81,7 @@ results from a unitless LJ simulation into physical quantities.
  • energy = eV
  • velocity = Angstroms/picosecond
  • force = eV/Angstrom +
  • torque = eV
  • temperature = degrees K
  • pressure = bars
  • viscosity = Poise @@ -94,6 +97,7 @@ results from a unitless LJ simulation into physical quantities.
  • energy = Joules
  • velocity = meters/second
  • force = Newtons +
  • torque = Newton-meters
  • temperature = degrees K
  • pressure = Pascals
  • viscosity = Pascal*second @@ -107,8 +111,9 @@ results from a unitless LJ simulation into physical quantities.
  • distance = centimeters
  • time = seconds
  • energy = ergs -
  • velocity = cm/second +
  • velocity = centimeters/second
  • force = dynes +
  • torque = dyne-centimeters
  • temperature = degrees K
  • pressure = dyne/cm^2 or barye = 1.0e-6 bars
  • viscosity = Poise diff --git a/doc/units.txt b/doc/units.txt index 6560180604..0aebddeba8 100644 --- a/doc/units.txt +++ b/doc/units.txt @@ -46,6 +46,7 @@ time = tau, where tau = t* = t (epsilon / m / sigma^2)^1/2 energy = epsilon, where E* = E / epsilon velocity = sigma/tau, where v* = v tau / sigma force = epsilon/sigma, where f* = f sigma / epsilon +torque = epsilon, where t* = t / epsilon temperature = reduced LJ temperature, where T* = T Kb / epsilon pressure = reduced LJ pressure, where P* = P sigma^3 / epsilon viscosity = reduced LJ viscosity, where eta* = eta sigma^3 / epsilon / tau @@ -61,6 +62,7 @@ time = femtoseconds energy = Kcal/mole velocity = Angstroms/femtosecond force = Kcal/mole-Angstrom +torque = Kcal/mole temperature = degrees K pressure = atmospheres viscosity = Poise @@ -76,6 +78,7 @@ time = picoseconds energy = eV velocity = Angstroms/picosecond force = eV/Angstrom +torque = eV temperature = degrees K pressure = bars viscosity = Poise @@ -91,6 +94,7 @@ time = seconds energy = Joules velocity = meters/second force = Newtons +torque = Newton-meters temperature = degrees K pressure = Pascals viscosity = Pascal*second @@ -104,8 +108,9 @@ mass = grams distance = centimeters time = seconds energy = ergs -velocity = cm/second +velocity = centimeters/second force = dynes +torque = dyne-centimeters temperature = degrees K pressure = dyne/cm^2 or barye = 1.0e-6 bars viscosity = Poise