Model Parameters#

In this subsection, contact detection, force models, time integration, load balancing and adaptive sparse contacts parameters are defined.

subsection model parameters
  subsection contact detection
    # Contact detection method
    # Choices are constant|dynamic
    set contact detection method                = dynamic

    # Particle-particle contact neighborhood size
    set neighborhood threshold                  = 1.3

    set dynamic contact search size coefficient = 0.8
    set frequency                               = 1
  end

  subsection load balancing
    # Choices are none|once|frequent|dynamic|dynamic_with_sparse_contacts
    set load balance method     = none
    set particle weight         = 2000   # Every method, except none
    set step                    = 100000 # if method = once
    set frequency               = 100000 # if method = frequent
    set dynamic check frequency = 10000  # if method = dynamic
    set threshold               = 0.5    # if method = dynamic

  # Particle-particle contact force model
  # Choices are linear|hertz_mindlin_limit_overlap|hertz_mindlin_limit_force|hertz|hertz_JKR|DMT
  set particle particle contact force method = hertz_mindlin_limit_overlap

  # Particle-wall contact force model
  # Choices are linear|nonlinear|JKR|DMT
  set particle wall contact force method = nonlinear

  # DMT cut-off threshold
  set DMT cut-off threshold = 0.1

  # Integration method
  # Choices are euler|velocity_verlet
  set integration method                     = velocity_verlet

  # Rolling resistance method
  # Choices are no_resistance|constant_resistance|viscous_resistance
  set rolling resistance torque method       = constant_resistance

  subsection adaptive sparse contacts
    set enable adaptive sparse contacts = false
    set enable particle advection       = false
    set granular temperature threshold  = 1e-4
    set solid fraction threshold        = 0.4
  end
end

Contact Detection#

Particle-particle contact search is a costly operation in DEM simulations. Contact detection parameters must be optimized to ensure a fast and physically accurate DEM simulation.

  • neighborhood threshold defines the spherical region around each particle which is used to generate the contact list. This parameter should generally be set between 1.3 and 1.5. It must be larger than 1 for contacts to be adequately taken into account.

Lethe defines two contact detection methods: dynamic and constant

contact detection method = dynamic#

Lethe rebuilds the contact lists automatically. In this mode, Lethe stores the displacements of each particle in the simulation since the last contact detection. If the maximum displacement of a particle exceeds the smallest contact search criterion, then the iteration is a contact search iteration and the contact list is rebuilt. The smallest contact search criterion is the minimum of the smallest cell size in the triangulation or the radius of the spherical region in fine search, and it is defined as:

\[\phi=\min({d_c^{min}-r_p^{max},\epsilon(\alpha-1)r_p^{max}})\]

where \({\phi}\), \({d_c^{min}}\), \({r_p^{max}}\), \({\epsilon}\), and \({\alpha}\) denote smallest contact search criterion, minimum cell size (in the triangulation), maximum particle radius (in polydisperse simulations), dynamic contact search size coefficient, and neighborhood threshold.

  • dynamic contact search size coefficient is a safety factor to ensure the late detection of particles will not happen in the simulations with dynamic contact search; and its value should be defined generally in the range of 0.5-1. 0.5 is a rather conservative value. The default value of 0.8 is adequate for most simulations.

  • frequency controls the frequency at which the dynamic contact search is carried out. For most cases, the default value of 1 should be maintained to ensure that the dynamic contact detection is refreshed accurately. Increasing this value between 2 and 5 can decrease the computational cost when a large (>16) number of cores is used since this diminishes the number of MPI communications.

contact detection method = constant#

Contact search will be carried out at constant frequency. For most case (99%), dynamic contact detection should be used instead of constant.

  • frequency is the frequency at which the contact list is renewed. It should be a value between 5 and 50 iterations. Small values of frequency lead to long simulation times, while large values of frequency may lead to late detection of collisions. Late detection of collisions can result in very large particles velocities (popcorn jump of particles in a simulation) or particles leaving the simulation domain.

Contact and Integration Methods#

All contact force models are described in the Discrete Element Method (DEM) section of the theory guide.

  • integration controls the integration method used. Lethe supports euler (1st order) and velocity-verlet (2nd order) time-integrators. The velocity-verlet should be used at all times.

  • particle particle contact force method controls the particle-particle contact force model. The following models are available in Lethe: hertz_mindlin_limit_overlap, hertz_mindlin_limit_force, hertz, hertz_JKR, DMT and linear.

  • particle wall contact force method controls the particle-wall contact force model used. The following models are available: linear, non-linear, JKR and DMT.

  • dmt cut-off threshold controls the distance at witch the non contact forces are being negleted for the DMT cohesive force model.

Note

The neighborhood threshold has to be large enough to correctly consider all non contact forces.

  • rolling resistance method controls the rolling resistance model used. Three rolling resistance models are available: no_resistance, constant_resistance, viscous_resistance

Load Balancing#

Load-balancing updates the distribution of the subdomains between the processes in parallel simulation to achieve better computational performance (less simulation time). Three load-balancing methods are available in Lethe: once, frequent, or dynamic.

The total weight of each cell with particles in load-balancing is defined as:

\[W=1000+W_pn_p\]

where \({W_p}\) is the particle weight and \({n_p}\) is the number of particles in the cell. 1000 is the default weight assigned to one cell.

  • particle weight must be defined for every load balance method.

load balance method = once#

Load balancing will be done only once.

  • step the iteration number at which the load balancing will be carried out.

load balance method = frequent#

Load balancing will be done at a given frequency

  • frequency frequency (in iterations) of the load balancing.

load balance method = dynamic#

Load balancing will be done when the computational load amongst core is too uneven. If

\[L_{max}-L_{min}>{\beta}\bar{L}\]

load balancing will be executed. \({L}\) and \({\beta}\) denote computational load on a process and threshold, respectively.

  • dynamic check frequency frequency (in iterations) at which the load check on all processes is performed.

  • threshold is the maximal load unbalance tolerated by the load balancing.

Adaptive Sparse Contacts (ASC)#

The ASC controls the disabling contact mechanism for performance enhancement. This feature adaptively searches for cells with low particle motion (granular temperature), disabling the computation of contacts for particles within these cells. See how the mechanism works with mobility status in the figure below:

Schematic

The 5 steps of the mobility status identification of cells applied to a hopper case.#

  • enable adaptive sparse contacts enables the feature.

  • enable particle advection enabled the advection of particles from an average source term derived from the average velocity of particles in cell. This is highly recommended for CFD-DEM simulations because of the hydrodynamic forces.

  • granular temperature threshold is the threshold of the granular temperature below which the contacts are disabled.

  • solid fraction threshold is the minimum solid fraction of the cell in which the contacts may be disabled.

Some parameters in the load balance section may be used to improve the performance of the dynamic disabling contacts feature using the dynamic load balancing. .. note:: The load balance method may be set to dynamic_with_sparse_contacts and factors of the weight of the cells by mobility status may be adjusted using the active weight factor and inactive weight factor parameters. There is factor only for active and inactive status, mobile factor is always 1.