Beyond Basic: Advanced simulations in EDEM using the Application Programming and Coupling Interfaces

May 4th, 2016

EDEM Academic Advanced Workshop

J.P. Morrissey

Institute for Infrastructure & Environment, School of Engineering

Presentation Overview

  • Application Programming & Coupling Interfaces Introduction
  • API Examples
  • Edinburgh Cohesion Model
  • Edinburgh Bonded Model
  • Other applications
  • Multi-Body Dynamics Coupling Examples
  • Jenike Shear Test
  • High Speed Rail
  • Combined API & MBD Usage
  • Caking & Time Consolidation
  • Triaxial testing
  • Concluding Remarks

Section 1

EDEM: Application Programming and Coupling Interfaces

EDEM Application Programming Interface

EDEM simulations can be customized and extended using the EDEM Application Programming Interface (API)​.

With the EDEM API users can write:​

  • Custom contact models to model new particle–particle and particle–geometry interactions​
  • Custom particle body force models to apply new forces and effects to the particles in the simulation​
  • Custom particle factory models to create new methods of particle generation – to define non-standard positions, distributions or flow-rates​
  • Define and work with EDEM Custom Properties, creating custom particle and geometry properties, increasing the scope of user’s custom models​
  • Import 3rd party vector or scalar field data which can be referenced by custom physics models


  • Next: Right Arrow or Space
  • Previous: Left Arrow
  • Start: Home
  • Finish: End
  • Overview: Esc
  • Speaker notes: S
  • Fullscreen: F
  • Zoom: Alt + Click
  • PDF Export: E

Code Highlighting

Inline code: variable

Code block:

porridge = "blueberry"
if porridge == "blueberry":


In-line math: $x + y = z$

Block math:

$$ f\left( x \right) = ;\frac{{2\left( {x + 4} \right)\left( {x - 4} \right)}}{{\left( {x + 4} \right)\left( {x + 1} \right)}} $$


Make content appear incrementally

{{% fragment %}} One {{% /fragment %}}
{{% fragment %}} **Two** {{% /fragment %}}
{{% fragment %}} Three {{% /fragment %}}

Press Space to play!

One **Two** Three

A fragment can accept two optional parameters:

  • class: use a custom style (requires definition in custom CSS)
  • weight: sets the order in which a fragment appears

Speaker Notes

Add speaker notes to your presentation

{{% speaker_note %}}
- Only the speaker can read these notes
- Press `S` key to view
{{% /speaker_note %}}

Press the S key to view the speaker notes!


  • black: Black background, white text, blue links (default)
  • white: White background, black text, blue links
  • league: Gray background, white text, blue links
  • beige: Beige background, dark text, brown links
  • sky: Blue background, thin dark text, blue links
  • night: Black background, thick white text, orange links
  • serif: Cappuccino background, gray text, brown links
  • simple: White background, black text, blue links
  • solarized: Cream-colored background, dark green text, blue links

Custom Slide

Customize the slide style and background

{{< slide background-image="/media/boards.jpg" >}}
{{< slide background-color="#0000FF" >}}
{{< slide class="my-style" >}}

Custom CSS Example

Let’s make headers navy colored.

Create assets/css/reveal_custom.css with:

.reveal section h1,
.reveal section h2,
.reveal section h3 {
  color: navy;