Skip to main content

KRATOS Multiphysics ("Kratos") is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.

Project description

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:

Contact search

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

kratosdemapplication-10.4.3-cp314-cp314-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.14Windows x86-64

kratosdemapplication-10.4.3-cp314-cp314-manylinux_2_28_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

kratosdemapplication-10.4.3-cp313-cp313-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.13Windows x86-64

kratosdemapplication-10.4.3-cp313-cp313-manylinux_2_28_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

kratosdemapplication-10.4.3-cp312-cp312-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.12Windows x86-64

kratosdemapplication-10.4.3-cp312-cp312-manylinux_2_28_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

kratosdemapplication-10.4.3-cp311-cp311-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.11Windows x86-64

kratosdemapplication-10.4.3-cp311-cp311-manylinux_2_28_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

kratosdemapplication-10.4.3-cp310-cp310-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.10Windows x86-64

kratosdemapplication-10.4.3-cp310-cp310-manylinux_2_28_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

kratosdemapplication-10.4.3-cp39-cp39-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.9Windows x86-64

kratosdemapplication-10.4.3-cp39-cp39-manylinux_2_28_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

kratosdemapplication-10.4.3-cp38-cp38-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.8Windows x86-64

kratosdemapplication-10.4.3-cp38-cp38-manylinux_2_28_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ x86-64

File details

Details for the file kratosdemapplication-10.4.3-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for kratosdemapplication-10.4.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 e18971ca38ad049ce8c1cb0274bae73970769587d08853adf0f4f375889c7028
MD5 90ee186c38ab4a9653ad940345468b39
BLAKE2b-256 837776f222f8da6631b6535f339d4c8db2794bec7294b9c8ac4acf4c817f15ae

See more details on using hashes here.

File details

Details for the file kratosdemapplication-10.4.3-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kratosdemapplication-10.4.3-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 60bfd6e7700cc15f5474d41229165d99d203fa4184d3aa133a93e20c2ce3cc10
MD5 1aae3004ecff2c8cae0ecb89e93898e2
BLAKE2b-256 c51aa70d48f9e4963a8d4922bba7e73515c620ce6b69f606c7aceacd3e97a9dd

See more details on using hashes here.

File details

Details for the file kratosdemapplication-10.4.3-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for kratosdemapplication-10.4.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 249a5dd8c1b6c3c9a8161ef535b70b645f40cd21ceff419393d90544eda92771
MD5 6e1f81d4c635d874351d8ffe486cec4e
BLAKE2b-256 d825d9f258e7ba9ade5a89151f1e0cdbdf4df60521ba67aeb3e714e32bea105a

See more details on using hashes here.

File details

Details for the file kratosdemapplication-10.4.3-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kratosdemapplication-10.4.3-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d798ce41d72b6f48a3837283db868d606c22cc6bf84ca9322a614f0f84ebac92
MD5 d28bec03ca769ff3b64cd217883890d8
BLAKE2b-256 96388b6ce546c92796de50c2f0a5ae2a28e698e58f8088f6665dce6d75a5a353

See more details on using hashes here.

File details

Details for the file kratosdemapplication-10.4.3-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for kratosdemapplication-10.4.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a2fe5ab72647a449e2e3efbfca133e7a94b4c2928be909829729eb99da3e8b45
MD5 b81bc7346d4941c325a8eec2def4a7ca
BLAKE2b-256 17c043f0ed6d696bf87b9c5feda81199fab353b7f825b7d1e6c31a3d3cd8424e

See more details on using hashes here.

File details

Details for the file kratosdemapplication-10.4.3-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kratosdemapplication-10.4.3-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ee352ac8dd01147b8478e961ee54c65554ce99cab6d2e35c2aecd3962e57b032
MD5 6d01f5f1e260b940dac448555280ddff
BLAKE2b-256 bc72b39aa46689d5d3c4480484d75fb0ed2f83a50976d08dd8dab9a958c185d4

See more details on using hashes here.

File details

Details for the file kratosdemapplication-10.4.3-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for kratosdemapplication-10.4.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 aec1151e757808c882d5e2171a353e9c018a7c740c5819d92b16b1bda4148c07
MD5 454ee7e1a40f5c5970ac7ba162a098c6
BLAKE2b-256 02111f2395151c1edc8cf4948a5655388d32871a7da31620fbae8c385e321ce2

See more details on using hashes here.

File details

Details for the file kratosdemapplication-10.4.3-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kratosdemapplication-10.4.3-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3cb67937554b35678b24b0cd638c42df62775f9795de70d6fbd5e3563958ced6
MD5 ba6d95208f46336e86e22c171d2afd98
BLAKE2b-256 9777db361e54a9f6301e2c942166698a78d42fd3b610e830b3187593d714bac9

See more details on using hashes here.

File details

Details for the file kratosdemapplication-10.4.3-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for kratosdemapplication-10.4.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 09a8536fb02d325dc0a87e85fe3a2a4f71046aac71202e0406103bf70409752e
MD5 64f038090b27ebc8d5ff8b2add756f8a
BLAKE2b-256 8a2370d843513f20717dc1aefcc7c993a72d6405de65142292024b3602bd04ad

See more details on using hashes here.

File details

Details for the file kratosdemapplication-10.4.3-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kratosdemapplication-10.4.3-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 27362c4fb74a6abaf3a589ac7c9d2a9a1d55327fb33862ad9b437431923af34d
MD5 89e88c24d0b1be3bfddfa79fcb704c5d
BLAKE2b-256 faaecd1cbfc3dc7af00e28102b69a5c2e4f8f4628a87864fda872a933f45f143

See more details on using hashes here.

File details

Details for the file kratosdemapplication-10.4.3-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for kratosdemapplication-10.4.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 f6c491205f5b221aa07cf6ea173ae7cfb9d515d8be93aee3d41fc7827b1e8733
MD5 f24e572d054b02f58030e87e15fbf6d0
BLAKE2b-256 79f7286ac78b22b67c25e67393c33f313cfd8714d0dad79e598b6db2ae80cb55

See more details on using hashes here.

File details

Details for the file kratosdemapplication-10.4.3-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kratosdemapplication-10.4.3-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c20aa1cb707da522419c9d2b01103ed3024843cb417a6df9d603d4ef7b741c0d
MD5 2bf220fe4c6704b6a9e09e18d3e9e22f
BLAKE2b-256 debb5de1878d744c917a7c199c7704b94124d64f9e3bc35d6146c14904e9342b

See more details on using hashes here.

File details

Details for the file kratosdemapplication-10.4.3-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for kratosdemapplication-10.4.3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 352bb48be7b9af0a5212dc0a5a2c613f19f2aae3f78f45470ce07197b13445f9
MD5 4c2ed6d2eec3f544e7699a0c48e5b572
BLAKE2b-256 0f81a02b89b894e50d213f07c84356bb925a5060e7a1d8d84dd177a7255d941f

See more details on using hashes here.

File details

Details for the file kratosdemapplication-10.4.3-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kratosdemapplication-10.4.3-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e3274aaf0e118dd01165230f25f33e5f3390578ac318577a1e61c06fb0b624fb
MD5 48c65036f53fb7a6ba6a4e48fc0e522d
BLAKE2b-256 39cb02c399ef2262f799301f67df4bfe911d7021f6b2cb5037625e8428b4e7c3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page