LIGGGHTS WWW Site - LIGGGHTS Documentation - LIGGGHTS Commands


pair_style gran/hooke command
pair_style gran/hooke/history command
pair_style gran/hertz/history command
pair_style gran/hooke/history/stiffness command
pair_style gran/hertz/history/stiffness command

Syntax:

pair_style style friction_damp_flag cohesionflag 

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:

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:

pair_coeff

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).

(Zhang) Zhang and Makse, Phys Rev E, 72, p 011301 (2005).