LIGGGHTS WWW Site - LIGGGHTS Documentation - LIGGGHTS Commands
Syntax:
pair_style style friction_damp_flag cohesionflag
style = gran/hooke or gran/hooke/history or gran/hertz/history
friction_damp_flag =
0 if both
tangential damping and rolling friction are not included,
1 if
tangential damping is included, but rolling friction not,
2 if
rolling friction is included but tangential damping not,
3 if
both tangential damping and rolling friction is included.
cohesionflag = 0 or 1 if macroscopic cohesion is excluded or included
Examples:
pair_style gran/hooke/history 1 0 pair_style gran/hooke 1 1
LIGGGHTS vs. LAMMPS Info:
This LIGGGHTS command offers the following improvements vs. LAMMPS: The stiffness and damping coefficients k_n, k_t, gamma_n, gamma_t are now derived from the material properties. Also, a new model for macroscopic cohesion is introduced.
General description:
The gran styles use the following formula for the frictional force between two granular particles, when the distance r between two particles of radii Ri and Rj is less than their contact distance d = Ri + Rj. There is no force between the particles when r > d:
In
the first term is the normal force between the two particles and the
second term is the tangential force. The normal force has 2 terms, a
contact force and a damping force. The tangential force also has 2
terms: a shear force and a damping force. The shear force is a
"history" effect that accounts for the tangential
displacement (“tangential overlap”) between the particles for the
duration of the time they are in contact. This term is included in
pair styles hooke/history and hertz/history, but is not
included in pair style hooke. The tangential damping and the
rolling friction can be controlled via the friction_damp_flag.
The quantities in the equations are as follows:
delta_n = d - r = overlap distance of 2 particles
k_n = elastic constant for normal contact
k_t = elastic constant for tangential contact
gamma_n = viscoelastic damping constant for normal contact
gamma_t = viscoelastic damping constant for tangential contact
delta_t = tangential displacement vector between 2 spherical particles which is truncated to satisfy a frictional yield criterion
rmu = coefficient of rolling friction
contactradius = contact radius, equal to particle radius – 0.5 * delta_n
v_n = normal component of the relative velocity of the 2 particles
v_t = tangential component of the relative velocity of the 2 particles
w_r = relative rotational velocity of the 2 particles
Hertz/history:
For hertz/history, the Kn, Kt, gamma_n, and gamma_t coefficients are calculated as follows from the material properties:
Hooke
and hooke/history:
For hooke and hooke/history, the k_n, k_t, gamma_n, and gamma_t coefficients are calculated as follows from the material properties:
Therby, the following definitions apply to two particles in contact:
To
define those material properties, it is mandatory to use multiple
fixes of type global/property to define them (see doc for
fix_property for details):
fix id all property/global youngsModulus peratomtype value_1 value_2 ...
(value_i=value for Youngs Modulus of atom type i)
fix id all property/global poissonsRatio peratomtype value_1 value_2 ...
(value_i=value for Poisson ratio of atom type i)
fix id all property/global coefficientRestitution peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
(value_ij=value for the coefficient of restitution between atom type i and j; n_atomtypes is the number of atom types you want to use in your simulation)
fix id all property/global coefficientFriction peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
(value_ij=value for the (static) coefficient of friction between atom type i and j; n_atomtypes is the number of atom types you want to use in your simulation)
The "characteristic impact velocity" is only used for hooke styles:
fix id all property/global characteristicVelocity scalar value
(value=value for characteristic impact velocity)
Hertz/history/stiffness and hooke/history/stiffness:
For these styles, the forces are implemented for hooke by default as
This
is the default option for hooke where specified damping coefficient
is multiplied by the effective mass. Optional, this multiplication
can be omitted (absolute damping implementation), so that
This
can be chosen by the way how gamma_n_specified and gamma_t_specified
are defined (see below).
For hertz, they are implemented as
The
k_n_specified, k_t_specified, gamma_n_specified, and
gamma_t_specified coefficients are given by the user as follows from
the material properties:
fix id all property/global kn peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
(value_ij=value for k_n between atom type i and j; n_atomtypes is the number of atom types you want to use in your simulation)
fix id all property/global kt peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
(value_ij=value for k_t between atom type i and j; n_atomtypes is the number of atom types you want to use in your simulation)
fix id all property/global gamman peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
(value_ij=value for gamma_n between atom type i and j; n_atomtypes is the number of atom types you want to use in your simulation)
fix id all property/global gammat peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
(value_ij=value for gamma_t between atom type i and j; n_atomtypes is the number of atom types you want to use in your simulation)
For the hooke model, the absolute damping implementation is used by specifying the damping coefficients gamman,gammat as follows:
fix id all property/global gamman_abs peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
(value_ij=value for gamma_n between atom type i and j; n_atomtypes is the number of atom types you want to use in your simulation)
fix id all property/global gammat_abs peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
(value_ij=value for gamma_t between atom type i and j; n_atomtypes is the number of atom types you want to use in your simulation)
General comments, cohesion model, rolling friction model:
IMPORTANT NOTE: You have to use atom styles beginning from 1, e.g. 1,2,3,...
For all pair styles, the coefficient of friction cof is the upper limit of the tangential force through the Coulomb criterion Ft = cof *Fn, where Ft and Fn are the total tangential and normal force components in the formulas above. Thus in the Hookean case, the tangential force between 2 particles grows according to a tangential spring and dash-pot model until Ft/Fn = cof and is then held at Ft = Fn*cof until the particles lose contact. In the Hertzian case, a similar analogy holds, though the spring is no longer linear.
The rolling friction contribution adds an additional torque contribution, equal to
torque_rf = rmu*k_n*delta_n*w_r_shear/mag(w_r_shear)*(R*).
w_r_shear is the projection of w_r into the shear plane, where
w_r = (contactradius1*w1+contactradius2*w2)/(contactradius1+contactradius2)
If the rolling friction model is activated, the coefficient of rolling friction (rmu) must be defined as
fix id all property/global coefficientRollingFriction peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
(value_ij=value for the coefficient of rolling friction between atom type i and j; n_atomtypes is the number of atom types you want to use in your simulation)
If
cohesionflag = 1, the linear cohesion model is activated. If
two particle are in contact, it adds an additional normal force
tending to maintain the contact, which writes F = k A, where A is the
particle contact area and k is the cohesion energy density in J/m³.
If you are using the linear cohesion model, you must also define the
cohesion energy density:
fix id all property/global cohesionEnergyDensity peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
(value_ij=value for the cohesion energy density (in Energy/Length^3 units) between atom type i and j; n_atomtypes is the number of atom types you want to use in your simulation)
IMPORTANT NOTE: The cohesion model has been derived for the Hertzian Style, it may note be appropriate for the Hookean styles.
For granular styles there are no additional coefficients to set for each pair of atom types via the pair_coeff command. All settings are global and are made via the pair_style command. However you must still use the pair_coeff for all pairs of granular atom types. For example the command
pair_coeff * *
should be used if all atoms in the simulation interact via a granular potential (i.e. one of the pair styles above is used). If a granular potential is used as a sub-style of pair_style hybrid, then specific atom types can be used in the pair_coeff command to determine which atoms interact via a granular potential.
Mixing, shift, table, tail correction, restart, rRESPA info:
The pair_modify mix, shift, table, and tail options are not relevant for granular pair styles.
These pair styles write their information to binary restart files, so a pair_style command does not need to be specified in an input script that reads a restart file.
IMPORTANT NOTE: The material properties are not written to restart files! Thus, if you restart a simulation, you have to re-define them (by using the fixes mentioned above).
These pair styles can only be used via the pair keyword of the run_style respa command. They do not support the inner, middle, outer keywords.
Restrictions: none
These pair styles require that atoms store torque and angular velocity (omega) as defined by the atom_style. They also require a per-particle radius is stored. The granular atom style does all of this.
This pair style requires you to use the communicate vel yes option so that velocites are stored by ghost atoms.
Only unit system that are self-consistent (si, cgs, lj) can be used with this pair style.
Related commands:
Default: none
(Brilliantov) Brilliantov, Spahn, Hertzsch, Poschel, Phys Rev E, 53, p 5382-5392 (1996).
(Silbert) Silbert, Ertas, Grest, Halsey, Levine, Plimpton, Phys Rev E, 64, p 051302 (2001).