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 build-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 Couloumb 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:
- Runge-Kutta
- Quaternion based
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
- Miguel Angel Celigueta - Core Development - maceli@cimne.upc.edu
- Salva Latorre - Granular materials - latorre@cimne.upc.edu
- Ferran Arrufat - Cohesive materials - farrufat@cimne.upc.edu
- Guillermo Casas - Fluid coupling - gcasas@cimne.upc.edu
- Joaquín Irazabal - Particle clusters & DEM-Solid interaction - jirazabal@cimne.upc.edu
- Joaquín González-Usúa - Fluid coupling - jgonzalez@cimne.upc.edu
- Chengshun Shang - Bonded partcile models - cshang@cimne.upc.edu
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 developement 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
File details
Details for the file KratosDEMApplication-10.0.0-cp312-cp312-win_amd64.whl
.
File metadata
- Download URL: KratosDEMApplication-10.0.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.31.0 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/6.8.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 528adbb045f1918cb192a87e838e60b5c38ccc73a2bb5575829bbe333a768719 |
|
MD5 | 747f7ac1780155c2e934c4f7c33960f1 |
|
BLAKE2b-256 | 5e597a129b07adbeeffdd694004030ba509c3d345b994118015bbc0427282bd5 |
File details
Details for the file KratosDEMApplication-10.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: KratosDEMApplication-10.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 4.6 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.31.0 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/6.8.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 687a04edf052c0ea2bbc6600423ada98d0cb3f5da9051f3e414b5758a7b2ecef |
|
MD5 | 6ebce096b967a09eb2eab2675537e39a |
|
BLAKE2b-256 | b16a88257c541b3c5f5dd679840fbf7ea56a33f9ae51a7aaa38b3a06cba49873 |
File details
Details for the file KratosDEMApplication-10.0.0-cp311-cp311-win_amd64.whl
.
File metadata
- Download URL: KratosDEMApplication-10.0.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.31.0 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/6.8.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f3066b06fa052a181e251b20bb5903aef71ad1008a82bf7c2cf6b21b445050d |
|
MD5 | e76cdb6f8a0ecb1e005270b6039bfdbf |
|
BLAKE2b-256 | 21affc83d2f8823d7b524b4aef9b301d388b1def8117d162afc7e6f869ce6ba9 |
File details
Details for the file KratosDEMApplication-10.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: KratosDEMApplication-10.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 4.6 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.31.0 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/6.8.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ae5726bf2e33de4a7ec4f48fe516f4549e50bfde992a0620f4cbabe14156922d |
|
MD5 | c52d0a88c988e654bebf82f76bc89d0d |
|
BLAKE2b-256 | 3095560a0c934f859ec26a1cac5dc82acaa8657171d8592837ffb21654f5bc29 |
File details
Details for the file KratosDEMApplication-10.0.0-cp310-cp310-win_amd64.whl
.
File metadata
- Download URL: KratosDEMApplication-10.0.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.31.0 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/6.8.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1ff4a2caac1d405600e46914a3cfba367875662f158453099bc1cffb5ba6a63d |
|
MD5 | 7d119fea1d161c08646a24806d3453f2 |
|
BLAKE2b-256 | f0189e3cbf6736b36eb4901bdbc37db7aa9d5c6bdb5ca980f1898cf7b85c9554 |
File details
Details for the file KratosDEMApplication-10.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: KratosDEMApplication-10.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 4.6 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.31.0 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/6.8.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2040e10dc3dfdad68b302aa05fe4238e860d5ddabd443e3635633c6fe638a75b |
|
MD5 | cdd06c6001d7175668ba0d0bbe40cdf7 |
|
BLAKE2b-256 | 09a6fe3074d9bcf0f016f7faf6cce94df590e7985c862a5b1693e8bb42d5238b |
File details
Details for the file KratosDEMApplication-10.0.0-cp39-cp39-win_amd64.whl
.
File metadata
- Download URL: KratosDEMApplication-10.0.0-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.31.0 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/6.8.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95e59781624f6b8b9ec88689eff5bf15adb8bf6d0c08fc7602798213cbcd554b |
|
MD5 | 948bc27bc9e269c1e44d746ef15d3a2f |
|
BLAKE2b-256 | 4dfe408a6b8d3e2bd5893dbc60b7fecfb880c7773eeb6791ab607d9af5d1c31a |
File details
Details for the file KratosDEMApplication-10.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: KratosDEMApplication-10.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 4.6 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.31.0 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/6.8.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b44b03fc19df4a7822663939212774009f4cc315f3fbfbfc29ea9f78af53418f |
|
MD5 | 183aa911b9cb3a94bbe6398788205cc9 |
|
BLAKE2b-256 | baec37a3a351999f1c88fb3cb7bc42199ce552d0bba979586df99a59a1981f58 |
File details
Details for the file KratosDEMApplication-10.0.0-cp38-cp38-win_amd64.whl
.
File metadata
- Download URL: KratosDEMApplication-10.0.0-cp38-cp38-win_amd64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.8, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.31.0 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/6.8.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 35ab098163f5f44721cc9b3b1cf97934037573aa0da4f464529fd597390b3a1c |
|
MD5 | e38d0a14d35281af938db8edbd3c9281 |
|
BLAKE2b-256 | b72056fe520df513349949ac4a82cb2666ed087b3c6723750469103b783bd8cc |
File details
Details for the file KratosDEMApplication-10.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: KratosDEMApplication-10.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 4.6 MB
- Tags: CPython 3.8, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.31.0 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/6.8.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e2492575947109e2ac55370d1c6f6a8945b62d742f4ccc28fa2759ce5f0ccd3 |
|
MD5 | 606a33254e0fd3afd800726ce878686d |
|
BLAKE2b-256 | 9923ed8e034adcab0fd8e03825100a873ef5c530201e8a9b60b227c5cdc955f8 |