Skip to main content

DEM Application

This application focuses on the Discrete Element Method (DEM), a particles method for modeling the bulk behavior of granular materials and many geomaterials such as coal, ores, soil, rocks, aggregates, pellets, tablets and powders.

The DEMpack Team at CIMNE is in charge of all developments related to the DEM.

For the coupling between DEM and Fluids, go to the Swimming DEM Application.

For the coupling between DEM and thermal effects, go to the Thermal DEM Application.

Getting started

This application is part of the Kratos Multiphysics Platform. Instructions on how to get you a copy of the project up and running on your local machine for development and testing purposes are available for both Linux and Windows systems.

Prerequisites

Build Kratos and, before that, make sure that you add

-DDEM_APPLICATION=ON

amongst the compilation options, so the DEM application is compiled.

No auxiliar external libraries are needed.

Theory

The DEM is a numerical method that has been applied to simulate and analyze flow behavior in a wide range of disciplines including mechanical and process engineering, pharmaceutical, materials science, agricultural engineering and more. Coupling with fluid is already available through the Swimming-DEM application, also integrated in the Kratos Multiphysics Platform.

The fundamental theoretical background corresponding to the discontinuous (granular matter) part of the code can be found in the DEM literature easily.

Contact laws

The contact laws are implemented in this folder. Note that the letter 'D' or 'd' in the file name stands for 'discontiuum'. It is related to non cohesive or slightly cohesive contacts.

Linear repulsive force

The most simple representation of a repulsive contact force between a sphere and a wall is given by a linear law, where the force acting on the sphere when contacting the wall is a linear function of the indentation, which in turn would bring a quadratic dependence with the contact radius.

Non-Linear repulsive force

Hertz solved in 1882 the non-cohesive normal contact between a sphere and a plane. In 1971 Johnson, Kendall and Roberts presented the solution (JKR-Theory) for the same problem in this case adding cohesive behaviour. Not much later, Derjaguin, Müller and Toporov published similar results (DMT-Theory). Both theories are very close and correct and, while the JKR theory is adequate to the study of flexible, large spheres, the DMT theory is specially suited to represent the behaviour of rigid, small ones.

Numerical approach

The application includes two types of DEM elements used for different purposes:

  • Spheric Particle - Base element used to simulate granular materials (non cohesive or slightly cohesive)
  • Spheric Continuum Particle - With specific built-in variables to simulate fracture in cohesive materials. It can also be understood as a discretization method of the continuum by using spheres.

And has the following easy-to-use capabilities:

  • Interaction with FEM-based walls - Objects that cannot be crossed by DEM spheres. The user can choose to impose Linear-periodic conditions or rigid body conditions.
  • Inlets - Inject new particles while running the simulation linked to some material properties. With user defined granulometry, mass flow and particle type (single particle or clusters). Inlets are based on FEM-based walls and boundary conditions can also be applied to them.
  • Initial conditions on particle elements.
  • Boundary conditions on particle elements.

It also includes several predefined cluster formations to be used.

DEM strategies

Non-cohesive materials strategy

Once contact between two spheres occurs, the forces at the contact point are computed. The interaction between the two contacting spheres can be represented by two forces with the same module but opposite directions. This force F can be decomposed into its normal and shear components Fn and Fs, respectively. The contact interface for the simplest formulation is characterized by the normal and tangential stiffness Kn and Ks, respectively, a frictional device obeying the Coulomb law with a frictional coefficient, and a dashpot defined by a contact damping coefficient.

In order to represent irregular particles with spheres, a numerical correction is used. The rolling friction imposes a virtual moment opposite to particle rotation and dependent on its size.

Continuum materials strategy

For continuum materials simulations, the contact between particles can resist tractions up to a certain limit, when breakage occurs. Depending on the chosen constitutive law, the computation of the forces changes. In the basic versions, a bond strategy is used, but more advanced laws use a non-local stress-tensor based strategy.

DEM integration schemes

The standard translational and rotational equations for the motion of rigid bodies are used to compute the dynamics of the spheres and clusters. The following schemes can be chosen separately for translation and rotation:

  • Symplectic Euler
  • Velocity Verlet
  • Forward Euler
  • Taylor

Also, two rotational specific integration schemes are available:

The contact detection basically consists in determining, for every target object, which other objects are in contact with it, and then apply the corresponding interaction. It is usually not needed to perform a search at every time step, which is generally limited by the stability of the explicit integration of the equations of motion. A bins based technique is used for this purpose.

Available interfaces

DEM

This is the package that allows a user to create, run and analyze results of a DEM simulation for discontinuum / granular / little-cohesive materials. Requires GiD - Pre and Post Processing software. It has both 2D and 3D versions. Check the manuals, follow the tutorials or play with the preloaded sample problems in order to learn how this application works.

Cohesive-DEM

This package combines the features of the previous one also with the simulation of continuum/cohesive materials. It also offers the possibility of tackling both 2D and 3D problems. Check also the manuals or tutorials or load the test examples in the GUI in order to learn how this problem type works.

Fluid-DEM

This package allows you to simulate a wide spectrum of problems involving the interaction of granular DEM and fluids. This application has only a 3D version. Check also for existing manuals or tutorials to get a feel of how to work with this application.

Contact

License

The DEM application is OPEN SOURCE. The main code and program structure is available and aimed to grow with the need of any users willing to expand it. The BSD (Berkeley Software Distribution) licence allows to use and distribute the existing code without any restriction, but with the possibility to develop new parts of the code on an open or close basis depending on the developers.

New GIDInterface for Kratos

The new GIDInterface currently under development can be found here. Based on the customLib, it includes the interfaces for most of the Kratos applications in addition to the new DEM interface.

FAQ

What to do if particles behave strangely

  • Check the Young Modulus. Materials with high stiffness may require smaller time steps to ensure stability.
  • Check the material density.
  • Check the time step. If the time step is too large, the elements can fail to interact with each other. In the worst case scenarios, the simulation may even crash.
  • Check the frequency of neighbours' search. If the search is not done frequently enough, new contacts may not be detected.
  • Check the restitution coefficient of the material. Explicit integration schemes gain energy noticeably unless an enough small time step is used. If the time step is large (but stable), use the restitution coefficient to compensate for the gain of energy to obtain more realistic results.

Metadata

Release files for KratosDEMApplication 10.4.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for KratosDEMApplication 10.4.4
File
kratosdemapplication-10.4.4-py3-none-any.whl Python 3 none any Details
kratosdemapplication-10.4.4-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
kratosdemapplication-10.4.4-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details
kratosdemapplication-10.4.4-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
kratosdemapplication-10.4.4-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
kratosdemapplication-10.4.4-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
kratosdemapplication-10.4.4-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
kratosdemapplication-10.4.4-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
kratosdemapplication-10.4.4-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
kratosdemapplication-10.4.4-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
kratosdemapplication-10.4.4-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
kratosdemapplication-10.4.4-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
kratosdemapplication-10.4.4-cp39-cp39-manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64 Details
kratosdemapplication-10.4.4-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
kratosdemapplication-10.4.4-cp38-cp38-manylinux_2_28_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ x86-64 Details

Total release size: 75.3 MB

Release files / kratosdemapplication-10.4.4-py3-none-any.whl

Download URL kratosdemapplication-10.4.4-py3-none-any.whl
Size 26.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
3829ca0c37e52c5ddecd3222a199c34f812f47dd8b1f18920f02fdbec8096ad7
BLAKE2b-256 checksum
How to use checksums
8c6fe0a05a545e77ddde6f6e0740363355c6dcaf85d51ba301f096911743a6d3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / kratosdemapplication-10.4.4-cp314-cp314-win_amd64.whl

Download URL kratosdemapplication-10.4.4-cp314-cp314-win_amd64.whl
Size 2.1 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
88f277cf3c8bba785cd71896cd18ef776b7d188f09a7510a7d1b7bcaa1cfa6f1
BLAKE2b-256 checksum
How to use checksums
b32250f48ee480045005783ac8a5f06a7a95e92e8017dcc5d9debd53111b0622
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / kratosdemapplication-10.4.4-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL kratosdemapplication-10.4.4-cp314-cp314-manylinux_2_28_x86_64.whl
Size 4.9 MB
Tags CPython 3.14 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c24369a821587605da055d76dd99367baff90f316cf344ab8700f7bf231d0828
BLAKE2b-256 checksum
How to use checksums
2e26742357ad67d87a979cce98d7b63fb00d3d898c2a429344cb8b3a6bf5d5b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / kratosdemapplication-10.4.4-cp313-cp313-win_amd64.whl

Download URL kratosdemapplication-10.4.4-cp313-cp313-win_amd64.whl
Size 2.0 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
b2c3e846fbb39b15d0d4673863ed89f11890a562a74fccae06a77ebc42088195
BLAKE2b-256 checksum
How to use checksums
eed90068f7efdba9e0f3367ed45ed5dcf3483ee7a526b260fe391d9bad90a83d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / kratosdemapplication-10.4.4-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL kratosdemapplication-10.4.4-cp313-cp313-manylinux_2_28_x86_64.whl
Size 4.9 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c03e293ddf5c66e80028683b6c348882b4311aa2d0d72888480f7b5348aaa1ad
BLAKE2b-256 checksum
How to use checksums
e066d66e56990b6a40bbb4ad6399af9528d9a0a223b96fe1180cf185506dc533
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / kratosdemapplication-10.4.4-cp312-cp312-win_amd64.whl

Download URL kratosdemapplication-10.4.4-cp312-cp312-win_amd64.whl
Size 2.0 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
3425fa77bc36ff7da36113dddc1236f074f76cd7f268a1e6509db7b77af35431
BLAKE2b-256 checksum
How to use checksums
efca803b60395511993d83415c0012f6ffa118d1c3c00f1597afe0f199b65fcd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / kratosdemapplication-10.4.4-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL kratosdemapplication-10.4.4-cp312-cp312-manylinux_2_28_x86_64.whl
Size 4.9 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
620eb237bf75f6dcda9dac0ac323906435c1de70c9a698df1ced4f00d0d4ea6f
BLAKE2b-256 checksum
How to use checksums
70d4945ec33d415a6b0209f127fd45c4aa9dda239898a737b4d2021cdfdd9e48
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / kratosdemapplication-10.4.4-cp311-cp311-win_amd64.whl

Download URL kratosdemapplication-10.4.4-cp311-cp311-win_amd64.whl
Size 2.0 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
37036b085b6402cd44a85fa378a8fc6c1beb5f331897c6e704bff86fdd8ba4b0
BLAKE2b-256 checksum
How to use checksums
ea5f59b33253c9555169d3ea1813f4f33a8b34ffc296258b7093e66cddf4986f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / kratosdemapplication-10.4.4-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL kratosdemapplication-10.4.4-cp311-cp311-manylinux_2_28_x86_64.whl
Size 4.9 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b08739b1cca5512e931e73cadc33ddc565483c8580eb71668e33e610fe87f192
BLAKE2b-256 checksum
How to use checksums
87a16df214645fd39676c8a588e81209a1730ad119f657a3a665c1fb694af9ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / kratosdemapplication-10.4.4-cp310-cp310-win_amd64.whl

Download URL kratosdemapplication-10.4.4-cp310-cp310-win_amd64.whl
Size 2.0 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
4446c5453173eef8149dd805443b3ddb85775b7e6b708f5e598d8b6e3c5248d9
BLAKE2b-256 checksum
How to use checksums
92eea335e920d5a30eed612835ae313f3a44dd31bd12c064fef62338243c6cdd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / kratosdemapplication-10.4.4-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL kratosdemapplication-10.4.4-cp310-cp310-manylinux_2_28_x86_64.whl
Size 4.9 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
62b6df0c29d952d3b1b6a3e02a5207e9eefc3701512e28166d07c9a7d5cc8eb8
BLAKE2b-256 checksum
How to use checksums
a223cd4f4cee20320e590973e0e320704714f9158b056a2a048351dae34cb8a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / kratosdemapplication-10.4.4-cp39-cp39-win_amd64.whl

Download URL kratosdemapplication-10.4.4-cp39-cp39-win_amd64.whl
Size 2.0 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
f8896f6585fad71f1dec186220a4275619ad1c07f9c13e8896f80b0a20228fea
BLAKE2b-256 checksum
How to use checksums
2bf8cc6852dfe58fc2f54fdf1ce6bd3d597a3ad814777a63931289568471d52a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / kratosdemapplication-10.4.4-cp39-cp39-manylinux_2_28_x86_64.whl

Download URL kratosdemapplication-10.4.4-cp39-cp39-manylinux_2_28_x86_64.whl
Size 4.9 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
4909b3b1b1844fc21d2745b7c80e79743f6159e1ebe9cf79591c87c4a9949df1
BLAKE2b-256 checksum
How to use checksums
f45f170a4723476655d8fe909b377dbb50c2290a821734ea9a22c0b8606027f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / kratosdemapplication-10.4.4-cp38-cp38-win_amd64.whl

Download URL kratosdemapplication-10.4.4-cp38-cp38-win_amd64.whl
Size 2.0 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
5416a2ce1f18ae130f5d2e4add92eca1e8d18173eb39e3122e6e8b0931d1f757
BLAKE2b-256 checksum
How to use checksums
344c1a6ba323e27c222296cbd1e67606ad85e3f23a5b9bec89a2297bd0a20cc7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / kratosdemapplication-10.4.4-cp38-cp38-manylinux_2_28_x86_64.whl

Download URL kratosdemapplication-10.4.4-cp38-cp38-manylinux_2_28_x86_64.whl
Size 4.9 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
31fd3af186afad5639ddc30417bd610b724cb5ae4264328bc6036b62297eb7f2
BLAKE2b-256 checksum
How to use checksums
361a024fa7b38508690dc0f00965b50c68f063ef86f0ef1c0d475aa3e63831ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release history Release notifications | RSS feed

This release

10.4.4 This release

15 release files

10.2.2

6 release files

10.2.0

5 release files

9.5.2

10 release files

9.5.1

10 release files

9.5

10 release files

9.4.6

4 release files

9.4.5

8 release files

9.4.4

8 release files

9.4.3

8 release files

9.4.2

8 release files

9.4.1

8 release files

9.4

8 release files

9.3.2

8 release files

9.3.1

8 release files

9.3

8 release files

9.2.2

5 release files

9.2.1

10 release files

9.2.0

10 release files

9.1.4

9 release files

9.1.2

9 release files

9.1.1

4 release files

9.1.0

9 release files

9.0.3

5 release files

9.0.2

9 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page