normal model hertz/fragmentation/bruchmueller

Purpose

Calculating the normal force between particles as done in normal model hertz and, in addition, enabling particle fragmentation according to the Bruchmueller model, either in resolved or unresolved mode.

_images/fragmentation_resolvedUnresolved.png

Figure 1: sketch illutration the difference between resolved and unresolved fragementation mode.

Warning

GPU support for this command has not been tested and may not work as expected.

Syntax

model hertz/fragmentation/bruchmueller [other model_type/model_name pairs as described here ] settings keyword values
  • zero or more keyword/value pairs may be appended after the keyword settings (after all models are specified)

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.
tangential_damping values = 'on' or 'off'
   on = activates tangential damping
   off = no tangential damping
unresolved_fragmentation = 'on' or 'off'
   on  = fragmentation is handled in an unresolved manner and the resulting fragment particle size
   distribution is stored for each particle.
   off = fragmentation is resolved and smaller fragment particles are created

Associated material properties

Material properties

  • youngsModulus (Y): the Youngs modulus of a material [pressure]

  • poissonsRatio (\nu): the Poisson’s ratio, i.e. the ratio of transverse to axial strain [–]

  • breakageE0timesD (E_{impact,0}d): product between minimum impact energy E_{impact,0} [energy] and particle diameter d [length]

  • breakageProbabilityParam (\beta): breakage probability parameter of the material [1/(energy*length)]

  • breakageSizeParam (A): maximum achievable breakage index t_{10} of the material [–]

  • energyDissipationCoeff: quantifies energy dissipation due to impact (active only if unresolved_fragmentation on). Acts as an additional coefficient of restitution modeling inelastic effects during particle fragmentation [–]

Material interaction properties

  • coefficientRestitution (e): the coefficient of restitution of two materials [–]

Description

This granular model calculates the Hertzian normal force as in the hertz normal model.

Additionally it models the particle fragmentation using a resolved or unresolved approach. Fragmentation is tracked by checking every time-step if a specific criterion is fulfilled by each particle. In case of the resolved approach, particles where fragmentation events are detected are replaced by a set of daughter particles (i.e., the fragments) every N time-steps (currently this value is hard-coded to 20). In the unresolved approach, the particle size distribution (PSD) of the fragments is saved as a per-particle quantity and no additional DEM particles are created. The model implementation largely follows the paper by Bruchmueller.

Both resolved and unresolved approaches use the same criterion for checking fragmentation, namely when the impact energy E_{impact} [energy] surpasses the minimum impact energy E_{impact,0} [energy]. The impact energy for each particle-particle and particle-wall contact is calculated as follows:

E_{impact} (t+dt) = E_{impact}(t)+F_n v_n dt

where F_n is the magnitude of the normal contact force, v_n [velocity] the relative normal velocity, and dt [time] the simulation time-step. The summation starts with the start of the contact and ends when the sign of v_n [velocity] changes, as outlined in Bruchmueller. When the calculation of E_{impact} [energy] is finished, it is compared to the minimum impact energy that causes damage E_{impact,0} [energy] Note that E_{impact,0} [energy] times the particle diameter d [length] is specified as a material property called breakageE0timesD. If E_{impact} > E_{impact,0} then the surplus energy E_{impact} - E_{impact,0} is added to the accumulated damage energy E_{damage} [energy]. The probability for fragmentation is then:

p = 1 - e^{-\beta E_{damage} d},

where \beta [1/(energy*length)] is a material parameter that quantifies the fracture resistance and d [length] is the particle diameter. For the resolved fragmentation, a simplified version of the size distribution calculation as outlined in Bruchmueller is used when fragmentation occurs:

t_{10} = A p

t_{25} = 0.5 t_{10}

t_{50} = 0.26 t_{10}

where t_{10}, t_{25}, t_{50} are the cumulative mass percentage of fragment particles larger than 10%, 25%, and 50% of the original particle size, and A [–] is the maximum achiavable t_{10} and ranges from 0 to 50. The value of A [–] is set by the material property breakageSizeParam. There is a hard-coded maximum number of fragments (which is set to 50) in order not to insert too many fragments.

Warning

Actual fragmentation is performed if and only if the simulation exclusively contains spheres. If nonspherical particles are present, only the damage energy per particle is tracked.

All fragment particles are inserted with the same size, but grow or shrink to fulfil the fragment particle size distribution. Currently, the growth rate is hard-coded to 3 volume percentage per time-step.

For the unresolved model the fragment size distribution from Bruchmueller is adapted to yield fragments which successively decrease in size by a factor of two such that fragments of size d/2, d/4, d/8, and so on are created from the original particle with diameter d. The number of fragment sizes and the size of the stored PSD can be controlled via the keywords described in fix fragmentation/bruchmueller/unresolved.

For the unresolved model the Sauter diameter is stored in a separate fix property/atom with the name dSauter. For unfragmented particles this quantity is initialized with the particle diameter. For particles with a fragment PSD, it is computed from the number of fragments per size class n_i as

d_\mathrm{Sauter} = \frac{\sum_i{d_i^3 n_i}}{\sum_i{d_i^2 n_i}}

Restrictions

See Hertz normal model.

The unresolved Bruchmueller model only works with spherical particles.

Coarse-graining information:

Using coarsegraining in combination with this command might lead to different dynamics or system state and thus to inconsistencies.

Default

limitForce = ‘off’, tangential_damping = ‘on’, unresolved_fragmentation = ‘off’

Literature

[1] Bruchmueller et al, Modelling discrete fragmentation of brittle particles, Powder Technology 208 (2011) 731-739