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.2-cp314-cp314-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.14Windows x86-64

kratosdemapplication-10.4.2-cp314-cp314-manylinux_2_28_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.13Windows x86-64

kratosdemapplication-10.4.2-cp313-cp313-manylinux_2_28_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.12Windows x86-64

kratosdemapplication-10.4.2-cp312-cp312-manylinux_2_28_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.11Windows x86-64

kratosdemapplication-10.4.2-cp311-cp311-manylinux_2_28_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.10Windows x86-64

kratosdemapplication-10.4.2-cp310-cp310-manylinux_2_28_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.9Windows x86-64

kratosdemapplication-10.4.2-cp39-cp39-manylinux_2_28_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.8Windows x86-64

kratosdemapplication-10.4.2-cp38-cp38-manylinux_2_28_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ x86-64

kratosdemapplication-10.4.2-1-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.2-1-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.2-1-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.2-1-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.2-1-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.2-1-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.2-1-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.2-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for kratosdemapplication-10.4.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 813514b5a7a85affb3e5af1b9deb0bc4bbd510e46bd1b8c69513f2bbb7f8e5f1
MD5 7a3c790926fba1848dbc7f4799d4b605
BLAKE2b-256 61888619c5e82ed4f6d366d54a90e120591d519c741ee2f0eb11f563f12ce591

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kratosdemapplication-10.4.2-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b9c381e34b3dace09c913f6669769c9aa795fb17e18d8b6f48dbf8d2bb0fec51
MD5 938930305af03a39a93fb7c57f4e8980
BLAKE2b-256 787c9e33b043eaf5f0727cc9f0b0f15803f9ba149fc4ff4d9e5999c82dc1af63

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kratosdemapplication-10.4.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 39d6d155e34d4cbb3ea221141b05268b035500111bd5044c9115e6cb0a3f61ea
MD5 405521cf6fda8aed0394f7571bc25b78
BLAKE2b-256 831449ab953b6f9cf2eac499f8b4e8bb2746ee89a21b152d4da4b81ed380390d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kratosdemapplication-10.4.2-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d41a8b9105e1e66b1f63693db672374a88c5e045777fbcfe61cc320c8d85a95e
MD5 4095c12da852c234121f98123942d4f3
BLAKE2b-256 64053e58a4dc73e7dd6c9d2623f9b16bdd2e9d966f96ab7916d20ae0bebaf100

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kratosdemapplication-10.4.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 484ae4250b59e28caeb38977ef732156597cfcf906e8631bbfbfe781dd8ce671
MD5 dfe4ad0b921fd628a893f0848e1ab25c
BLAKE2b-256 51de66b2a48fd26f39cf9040ec6d9176cb3f84a3c3144ccf5cb33765d233d2b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kratosdemapplication-10.4.2-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6db219919cd9cb452cba8b4e9c2e6e05b23155bedcc6e664faa5371e7f09ab92
MD5 a7298f32b166cdf8bf7a8758c7e7239f
BLAKE2b-256 095d56aa05d1606e422ee738559face85c17655baa13db3cddd7e8b9eba18c15

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kratosdemapplication-10.4.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 61970530d550f2c9ac86eca7ebf78d06b96115e6242cc625dc0669028647214a
MD5 3b792b1049c6e327ea5a0dfde37ffa08
BLAKE2b-256 881c5d54a30aaedf19bfea8768975f4d969a54051097e1e7cbee660c8850687c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kratosdemapplication-10.4.2-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6c47614bbc8e50a78e1081946e9898516400808a12370f130ba4aee1acdd52c6
MD5 0d3299efc3401cb0a324e283c6b0a779
BLAKE2b-256 d93a0cb426fc4d286c6ca34f0d70c37c4d18c2759b0be044f7a1624be4e2e65d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kratosdemapplication-10.4.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 870813c89a8bcfee1f1784008be7e0718f8262567bdeb4a007230944262476e4
MD5 913eeaf20e604d58c80576575de794cc
BLAKE2b-256 f13ea3f318853c67ea191f4a7cc698ddc714cc9fcff45e335d2454bb9b60c310

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kratosdemapplication-10.4.2-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 eacdfa0c2f6e9f4a3030a17a9b2d01a92eb5bfdfe7ae84846aad250ce631839d
MD5 3f65a28e65c29f7b6a61e13b7b951efb
BLAKE2b-256 f6519cc7ecee46e70219c691c693b095849620437effbb232d2a3de5a479bcde

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kratosdemapplication-10.4.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 423eed05b0a15689021bdcdcead8fea599cdf9ccf62e8e5ced136b1cbb7687e7
MD5 5ecc5353a3e5a330efb254c89af6a181
BLAKE2b-256 dd2de9fd78d21b569a06a4b1b759083de4b95a9849208096e3140e81fc5f1e33

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kratosdemapplication-10.4.2-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b42b67711138d60445ee71996faee71236d3831a810bdb1bdd1b7ca3b413344c
MD5 b6267095165fe0ea10c546c963825755
BLAKE2b-256 0df2cff6b696d37f046c5a2f4b9e87e37c589e02afbf030e7265916b85df2f8d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kratosdemapplication-10.4.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 95e70b4a2674beba53ff281927296b1ca628740e7044b209ed5511ca2d0039aa
MD5 127ad13e8c47be31c0cedc145db656ae
BLAKE2b-256 36e21f3abb12fbd8ec0182d176db9986cff522f3c4f1366b2fd1c1ce02332320

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kratosdemapplication-10.4.2-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f0eedb1a61670fad17cf77a651f283442ff40a2837fa6eaafefd82c1d01b21b2
MD5 c53b3d52f937b0dba6486681d2a37fe2
BLAKE2b-256 d4681928566acc134d88e1c5c9aa0207c05b97d2bf27358c0c95796a7d020b32

See more details on using hashes here.

File details

Details for the file kratosdemapplication-10.4.2-1-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kratosdemapplication-10.4.2-1-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5ec6b2c13d0d4611db41786a4aff4678ba20be72ec20a44226c82e32be96283f
MD5 57056785c06bbb9857582daf98951551
BLAKE2b-256 3ae2929e647253350c4a53a3ce506000ba30f13021c526f2aabf3febb96daeb3

See more details on using hashes here.

File details

Details for the file kratosdemapplication-10.4.2-1-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kratosdemapplication-10.4.2-1-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dd8887158235786da6e044ad080ea1586697851ce3494c6f41b573b0ebd359fa
MD5 785ab64cbbc7552c74224299687bf128
BLAKE2b-256 de6cbb322f41818ac93b600c184b35e123d4a6811e71180044a5431113ef8392

See more details on using hashes here.

File details

Details for the file kratosdemapplication-10.4.2-1-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kratosdemapplication-10.4.2-1-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6cae21ff53893e64837213c98b6bb6ca02ec15d7d88c14f84e92159c4256a2af
MD5 8248cd16cd69c2acafb848ed0c10175f
BLAKE2b-256 1fc54a329b995037fe98b0f171c1cc65811beabe40a5d673e623f2afc7dbbfa4

See more details on using hashes here.

File details

Details for the file kratosdemapplication-10.4.2-1-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kratosdemapplication-10.4.2-1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8166da9d8f8ca41eb15e3125c8405c57d3dd75ad33b57034a1095942658d0793
MD5 078306aa1a72f738df2a27631a452678
BLAKE2b-256 a64ee4d15ffa75af844b240756a43f34bd81c7e2efb1bb1558e647bd0d65d35e

See more details on using hashes here.

File details

Details for the file kratosdemapplication-10.4.2-1-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kratosdemapplication-10.4.2-1-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 975759bdc9c1a1dc501352f9419b6b5a6cd1514f95c3ad421cb862cded0307f5
MD5 f96f1b99327172f0f97baf66a7936eab
BLAKE2b-256 56d57d72e929783c2c84216101f209612955ae0256f83d72ea3b71f6d3207f5b

See more details on using hashes here.

File details

Details for the file kratosdemapplication-10.4.2-1-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kratosdemapplication-10.4.2-1-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f0284071a6a1e20d8ef523ed970fd8ad76c1a1a1ceb0307d020fb6648505f9d7
MD5 bde16eeee583c5b3a21767d3a0c5da53
BLAKE2b-256 421eba5496d6a2b14ad76289b60f0fe0b6caacb64676ddbb34e48458e34f88a2

See more details on using hashes here.

File details

Details for the file kratosdemapplication-10.4.2-1-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kratosdemapplication-10.4.2-1-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8b171ec203a61b0b7ffa033a536a7b16cde09f04d57c039ce3c9ea476fc3ec16
MD5 604b6e67a874f7f8095dea866df14fba
BLAKE2b-256 61670b302117c64b1028d8ddc2639109bbc16d2ae1b9b106f7574a4500acce54

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