"LIGGGHTS(R)-PUBLIC WWW Site"_liws - "LIGGGHTS(R)-PUBLIC Documentation"_ld - "LIGGGHTS(R)-PUBLIC Commands"_lc :c

:link(liws,http://www.cfdem.com)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)

:line

gran model hooke model :h3

[Syntax:]

model hooke \[other model_type/model_name pairs as described "here"_pair_gran.html \] keyword values :pre
zero or more keyword/value pairs may be appended to the end (after all models are specified) :l
  {tangential_damping} values = 'on' or 'off'
    on = activates tangential damping
    off = no tangential damping
  {ktToKnUser} values = 'on' or 'off'
    on = uses a different kt, namely kt = 2/7 * kn.
    off = standard implementation kt = kn.
  {limitForce} values = 'on' or 'off'
    on = ensures that the normal force is never attractive (an artefact that can occur at the end of a collision).
    off = standard implementation that might lead to attractive forces.
  {viscous} = 'on' or 'off'
    on = restitution coefficient varies with a local Stokes number of the particle. Requires additional global properties to be specified
    off = no modification to the restitution coefficient
  {heating_normal_hooke} values = 'on' or 'off'
    on = model contributes to surface heating in the frame of "surface sphere/heatable"_gran_surface_sphere_heatable.html
    off = model does not contributes to surface heating
  {disableNormalWhenBonded} values = 'on' or 'off'
    on = if the "cohesion bond"_gran_cohesion_bond.html model is used, then the normal force is only added if the two particles are not bonded
    of = the normal force is always added if two particles overlap
  {computeDissipatedEnergy} values = 'on' or 'off'
    on = the normal model saves the dissipated energy for each contact for the
    use in "fix calculate/dissipated_energy"_fix_calculate_dissipated_energy.html
    of = no values are saved
  {computeElasticPotential} values = 'on' or 'off'
    on = the normal model saves the current elastic potential for each contact
    for the use in "fix calculate/normal_elastic_energy"_fix_calculate_elastic_energy.html :pre

[Description:]

This granular model uses 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:

:c,image(Eqs/pair_gran_html_60b8ced2.png)

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 spring 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 controlled by the "tangential model"_Section_gran_models.html in action

Keyword {tangential_damping} can be used to eliminate the second part of the force in
tangential direction.

The quantities in the equations are as follows:

delta_n = d - r = overlap distance of 2 particles  :ulb,l
k_n = elastic constant for normal contact :l
k_t = elastic constant for tangential contact :l
gamma_n = viscoelastic damping constant for normal contact :l
gamma_t = viscoelastic damping constant for tangential contact :l
delta_t = tangential displacement vector between 2 spherical particles which is truncated to satisfy a frictional yield criterion :l
rmu = coefficient of rolling friction :l
contactradius = contact radius, equal to particle radius - 0.5 * delta_n :l
v_n = normal component of the relative velocity of the 2 particles :l
v_t = tangential component of the relative velocity of the 2 particles :l
w_r = relative rotational velocity of the 2 particles :l
:ule

The Kn, Kt, gamma_n, and gamma_t coefficients are calculated as follows from the material properties:

:c,image(Eqs/pair_gran_html_147eaf38.png)

:c,image(Eqs/pair_gran_html_m225ba7de.png)

To define those material properties, it is mandatory to use multiple "fix property/global"_fix_property.html commands:

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) :pre

IMPORTANT NOTE: You have to use atom styles beginning from 1, e.g. 1,2,3,...

The "characteristic impact velocity" is additionally used for hooke:

fix id all property/global characteristicVelocity scalar value
    (value=value for characteristic impact velocity) :pre

IMPORTANT NOTE: You have to use atom styles beginning from 1, e.g. 1,2,3,...

When the "cohesion model bond"_gran_cohesion_bond.html is used the
{disableNormalWhenBonded} keyword can be used. If this parameter is set to 'on'
then the normal model will only compute its contribution if the two neighboring
particles do not have an active bond. If a bond breaks and the particles overlap
the current {delta_n} will be set to zero so that no sudden repulsion takes
place. This is handled internally by having an offset value that shrinks to zero
once the particles start drifting apart.

[Force Limiting:]

Note, that not using limitForce might lead to attractive forces between particles and walls, 
especially in case the coefficient of restitution is small. Be sure you include this key word 
for the pair style and the wall model if you like to avoid this.

[Viscous model:]

Using option {viscous} = stokes adapts the coefficient of restitution as proposed by
"(Legendre)"_#Legendre, {viscous} = off performs no modification.

One has to provide the 3 peratomtypepair parameters via a "fix property/global"_fix_property.html
command needed for the viscous damping:

fix id all property/global FluidViscosity peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
    (value_ij=value for fluid viscosity 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 CriticalStokes peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
    (value_ij=value for critical Stokes number 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 MaximumRestitution peratomtypepair n_atomtypes value_11 value_12 .. value_21 value_22 .. .
    (value_ij=value for maximum coefficient of restitution between atom type i and j; n_atomtypes is the number of atom types you want to use in your simulation) :pre

IMPORTANT NOTE: You have to use atom styles beginning from 1, e.g. 1,2,3,...

This model contributes to surface heating in the frame of 
"surface sphere/heatable"_gran_surface_sphere_heatable.html if the 
appropriate flag is activated  (only available in the PREMIUM version).

[Restrictions:]

If using SI units, youngsModulus must be > 5e6
If using CGS units, youngsModulus must be > 5e5
When using {viscous}, FluidViscosity has to be  > 0
When using the limitForce, the specified coefficient of restitution is only approximate. This might 
become problematic for low coefficients of resitution as showin in Schwager and Poschel.

{heating_normal_hertz} may not be available in your version of the software.

[Coarse-graining information:]

Using "coarsegraining"_coarsegraining.html in
combination with this command should lead to
statistically equivalent dynamics and system state.

NOTE: "Coarsegraining"_coarsegraining.html may or 
may not be available in LIGGGHTS(R)-PUBLIC.

[Default:]

{viscous} = 'off'
{tangential_damping} = 'on'
{ktToKnUser} = 'off'
{limitForce} = 'off'
{heating_normal_hooke} = 'off'

:link(Legendre)
[(Legendre)] Legendre, Daniel and Guiraud. Phys. Fluids 17, 097105 (2005).

[(Di Renzo)] Alberto Di Renzo, Francesco Paolo Di Maio, Chemical Engineering Science, 59 (3), p 525-541 (2004).

[(Ai)] Jun Ai, Jian-Fei Chen, J. Michael Rotter, Jin Y. Ooi, Powder Technology, 206 (3), p 269-282 (2011).

[(Brilliantov)] Brilliantov, Spahn, Hertzsch, Poschel, Phys Rev E, 53, p 5382-5392 (1996).

[(Schwager)] Schwager, Poschel, Gran Matt, 9, p 465-469 (2007).

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

