DEM usually assumes simplified geometry (such as spheres) and the actual physics must be expressed by the contact model. We take care to document contact models thoroughly and implement them carefully.

Woo features a complete decoupling of geometry computation and contact model, thus making any new contact model immediately accessible to all contacting shapes. Developing a new contact model is a relatively easy task, once the mathematical formulation is clear (e.g. the ice contact model was developed under a contract, and the source code is not all that complex).

### Adhesive models

Large family of models based on Hertz theory (for non-adhesive contact) adding adhesion in different ways. Adhesion is implemented as described by DMT (Derjaugin-Müller-Torporov), JKR (Johnson-Kenall-Roberts) and Schwarz (which interpolates between DMT and JKR using a parameter). These models are primarily useful for micro-particle (dust) simulations.

### Concrete model

The concrete contact model was developped as one of the Woo author’s thesis. It features cohesion with damage and visco-plasticity, and is as much as possible based on continuum models of damage, viscosity and plasticity. Calibration procedures are also described, based on dimensional analysis.

This is an ancient screenshot, when still running under Yade:

The model was used to simulate complex confined behavior of concrete during fragmentation for the commercial sector (hence no fancy simulations can be shown).

### Pellet model

The pellet contact model was developed from scratch, with pen and paper, during a few days in a company working in the pelletizing industry, and subsequently adjusted and validated. It was supposed to capture the effect of partial breakage (compressive plasticity) and weak adhesion effects.

This video shows a rolling screen which is ridiculously overloaded with pellets:

### Cross-anisotropy

Cross-anisotropy was developed as a part of post-doc project and is described in the documentation. It is the usual linear contact model, but the stiffness is directionally biased so that a prescribed cross-anisotropic stiffness tensor is obtained globally:

This example is a circular hole loaded with hydrostatic pressure. Note how the deformation is bigger in the more compliant sense (vertically) while the elastic wave propagates more quickly in the stiffer sense (horizontally). Since cross-anisotropy plane is not aligned with the tunnel axis, radial pressure causes also axial deformation, which is shown at the end. Displacements are scaled.