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

MPM Application

This application implements the Material Point Method (MPM) with main motivations of simulating non-linear large deformable materials, such as free-surface flows, geomechanical phenomena, and extreme events involving impact, penetration, fragmentation, blast, multi-phase interaction, failure evolution, etc.

MPMApplication

Theory

Particle or meshfree methods are a family of methods in which the state of a system is represented by a set of particles, without a fixed connectivity. As a consequence, these methods are particularly well suited for the analysis of moving discontinuities and large deformations with breaking and fragmentation. This approach does not suffer from the mesh distortion and entanglement issues posed by other Lagrangian discretizations such as the Finite Element Method (FEM).

The Material Point Method (MPM) is an hybrid thechnique which uses a fixed background grid (or mesh) for solving the governing equations in a FEM fashion and set of material particles (MP) for storing all the hystorical variables and material information. The MPM has gained a remarkably increasing popularity due to its capability in simulating problems involving historically dependent materials and large deformations. As MPM is able to combine the strengths of both Eulerian and Lagrangian methods, it has been used in various engineering applications and industrial purposes, in particular in geomechanics and in the environmental fluid dynamics field.

Getting Started

The MPMApplication is part of the Kratos Multiphysics framework and can be obtained in two different ways:

  • by installing the Kratos binaries using the package manager pip (suggested for users that want to use the application like a black-box);
  • by downloading the source code and compiling it (suggested for developers).

Getting Binaries with pip (users)

Kratos binaries are available for Linux, Windows and MacOS and can be installed by using the pip package manager.

Open the terminal and run the following command:

python3 -m pip install KratosMPMApplication

This command will install the following packages:

  • KratosMultiphysics: Kratos Multiphysics Core;
  • KratosMPMApplication: application implementing MPM;
  • KratosLinearSolversApplication: dependency required by MPMApplication.

Build from Source (developers)

Instructions on how to download, compile and run Kratos in your local machine for development and testing purposes are available for Linux, Windows and MacOS distributions in the installation page.

In particular, in order to use the MPMApplication it is also required to compile the auxiliary LinearSolversApplication.

  • In Linux, the following lines must appear in the /path_to_kratos/scripts/standard_configure.sh file:

    export KRATOS_APPLICATIONS=
    add_app ${KRATOS_APP_DIR}/MPMApplication
    add_app ${KRATOS_APP_DIR}/LinearSolversApplication
    
  • In Windows, the following lines must appear in the /path_to_kratos/scripts/standard_configure.sh file:

    set KRATOS_APPLICATIONS=
    CALL :add_app %KRATOS_APP_DIR%\MPMApplication;
    CALL :add_app %KRATOS_APP_DIR%\LinearSolversApplication;
    

GUI

A GUI (Graphic User Interface) for the MPM application is also available within the pre and post processing software GiD. Instructions on how to download and install it are available in the GiDInterface repository. A basic knowledge of GiD is required.

Any software able to handle vtk files can be used for post processing (e.g., Paraview, VisIt).

Examples & Tutorials

  • Use-cases and validation examples are available in the MPM section of the Examples repository.
  • Unit tests of the main features can be found in the tests folder.
  • A step-by-step tutorial using GiD for both pre and post processing is available here.

Features

The following features are currently available and subject to development within the MPMApplication.

Formulations

  • Irreducible formulation (u displacement based)
  • Mixed UP (displacement/pressure) formulation

Element types

  • Updated Lagrangian elements - triangular and quadrilateral (2D) and tetrahedral and hexahedral (3D), structured and unstructured, using classical or partitioned quadrature rules (this latter limited to explicit MPM)
  • Updated Lagrangian axis-symmetric elements - triangular and quadrilateral (2D), structured and unstructured
  • Updated Lagrangian mixed UP elements - triangular (2D) and tetrahedral (3D), structured and unstructured, stabilized using Variational Multiscale Stabilization (VMS) or Pressure Projection techniques

Constitutive laws

Boundary conditions

  • Grid-Based Conditions (conforming): applied directly at the background nodes
  • Material Point-Based Conditions (non-conforming): applied on movable boundary particles
    • Neumann:
    • Dirichlet: fixed, slip or contact condition
      • penalty method
      • Lagrange multiplier method (soon in the master branch)
      • perturbed Lagrangian method (soon in the master branch)
      • interface condition for partitioned coupling with FEM, RBS,...

Time schemes

  • Implicit - Newmark/Bossak prediction and correction scheme for static, quasi-static, and dynamic problems
  • Explicit

Other features

  • Partitioned coupling with Finite Element Method (FEM) - weak and strong coupling of nonconforming discretization
  • Partitioned coupling with the Discrete Element Method (DEM)
  • Partitioned coupling with the Rigid Body Solver (RBS)
  • Material point erase features - to delete material points outside the interest domain

References

Recommended references for implementation details of MPM in Kratos:

  • Singer, V., (2024). Partitioned Coupling Strategies to Simulate the Impact of Granular Mass Flows on Flexible Protective Structures, PhD Thesis, Technical University of Munich.
  • Singer, V., Teschemacher, T., Larese, A., Wüchner, R., Bletzinger, K.U. (2024). Lagrange multiplier imposition of non-conforming essential boundary conditions in implicit Material Point Method, Computational Mechanics, 73, 1311–1333 DOI: 10.1007/s00466-023-02412-w.
  • Singer, V., Sautter, K.B., Larese, A., Wüchner, R., Bletzinger K.-U., (2023) Partitioned Coupling Approaches for the Simulation of Natural Hazards Impacting Protective Structures, VIII International Conference on Particle-Based Methods. DOI: 10.23967/c.particles.2023.002.
  • Singer, V., Larese, A., Wüchner, R., Bletzinger K.-U., (2023). Partitioned MPM-FEM Coupling Approach for Advanced Numerical Simulation of Mass-Movement Hazards Impacting Flexible Protective Structures, X International Conference on Computational Methods for Coupled Problems in Science and Engineering. DOI: 10.23967/c.coupled.2023.026.
  • Singer, V., Sautter, K.B., Larese, A., Wüchner, R., Bletzinger, K.-U. (2022). A partitioned material point method and discrete element method coupling scheme, Advanced Modeling and Simulation in Engineering Sciences, 9(16). DOI: doi.org/10.1186/s40323-022-00229-5.
  • Wilson, P., (2022). A computational impact analysis approach leveraging non-conforming spatial, temporal and methodological discretisations, PhD Thesis, University of Queensland. DOI: 10.14264/3e10f66.
  • Singer, V., Bodhinanda, C., Larese, A., Wüchner, R., Bletzinger K.-U., (2021). A Staggered Material Point Method and Finite Element Method Coupling Scheme Using Gauss Seidel Communication Pattern, 9th edition of the International Conference on Computational Methods for Coupled Problems in Science and Engineering. DOI: 10.23967/coupled.2021.006.
  • Chandra, B., Singer, V., Teschemacher, T., Wuechner, R., & Larese, A. (2021). Nonconforming Dirichlet boundary conditions in implicit material point method by means of penalty augmentation, Acta Geotechnica, 16(8), 2315-2335. DOI: 10.1007/s11440-020-01123-3.
  • Wilson, P., Wüchner, R., & Fernando, D. (2021). Distillation of the material point method cell crossing error leading to a novel quadrature‐based C0 remedy, International Journal for Numerical Methods in Engineering, 122(6), 1513-1537. DOI: 10.1002/nme.6588.
  • Iaconeta, I., Larese, A., Rossi, R., & Oñate, E. (2018). A stabilized mixed implicit Material Point Method for non-linear incompressible solid mechanics, Computational Mechanics, 1-18. DOI: 10.1007/s00466-018-1647-9.
  • Iaconeta, I., Larese, A., Rossi, R., & Zhiming, G. (2016). Comparison of a material point method and a Galerkin meshfree method for the simulation of cohesive-frictional materials, Materials, 10(10), p. 1150. DOI: 10.3390/ma10101150.

License

The MPMApplication is Open Source. The main code and program structure is available and aimed to grow with the need of any user willing to expand it. The BSD 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.

Contact

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.

kratosmpmapplication-10.2.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (19.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

kratosmpmapplication-10.2.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (19.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

kratosmpmapplication-10.2.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (19.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

kratosmpmapplication-10.2.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (19.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

kratosmpmapplication-10.2.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (19.5 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

kratosmpmapplication-10.2.3-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (19.5 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

KratosMPMApplication-10.2.3-cp312-cp312-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.12Windows x86-64

KratosMPMApplication-10.2.3-cp311-cp311-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.11Windows x86-64

KratosMPMApplication-10.2.3-cp310-cp310-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.10Windows x86-64

KratosMPMApplication-10.2.3-cp39-cp39-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.9Windows x86-64

KratosMPMApplication-10.2.3-cp38-cp38-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.8Windows x86-64

File details

Details for the file kratosmpmapplication-10.2.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for kratosmpmapplication-10.2.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 03f2fd53910cab3783ed8b97f337f1cc3301955f0e75713fc62572d5106b696b
MD5 1ca6f24fb7b31f041e393c1fe2101829
BLAKE2b-256 62c3a0c0c6c9f6a0dfc77359490a11572f484bb840723b0da3d8570ef4613b4c

See more details on using hashes here.

File details

Details for the file kratosmpmapplication-10.2.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for kratosmpmapplication-10.2.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 1d799f422bc710ba3a1a7b8f840204b55a7f8705d7663a344373716114110a5d
MD5 e8485ab4df7e6285e0b8fb1be0f74ef0
BLAKE2b-256 40a414139aac658cdb3ee99fb1ee5384923839e3a9be69e770d6cb91a6a5fc6a

See more details on using hashes here.

File details

Details for the file kratosmpmapplication-10.2.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for kratosmpmapplication-10.2.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 1c6177c4b136aa36332f72e3edaa8e0b616a683760ba7b5139cf58f67acbdb5a
MD5 1c1fd72903a5c780f63291e3df9117c8
BLAKE2b-256 9a60c2835f520557dacd6d2c9ae2fe2282c398e1cf4c893c95cd3daa9f38eea2

See more details on using hashes here.

File details

Details for the file kratosmpmapplication-10.2.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for kratosmpmapplication-10.2.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 80b6408b687dc93f5efc576a7eddcad45c8f41d25cb9b6b866706d5d8c7f507e
MD5 bb0a23413d2d9c0263742c1db3d7eda4
BLAKE2b-256 9f93d83a32fff8a4c06a9d15abb120a68477639aa9d5a630fa76b55d925719ea

See more details on using hashes here.

File details

Details for the file kratosmpmapplication-10.2.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for kratosmpmapplication-10.2.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 49b14443370c99157d4b1fbcaaf55e997a22a6a28464a5829712401d1f963a0a
MD5 b6492fa45807e48f9bf70d73e1b37797
BLAKE2b-256 6e7e16da090decc13e675e3183cfa810cda5f238d65b9f0461ae70f4f308cbf0

See more details on using hashes here.

File details

Details for the file kratosmpmapplication-10.2.3-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for kratosmpmapplication-10.2.3-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 a98a264fd4bc126c0e121efc1fc52ff2b606e1f8caf5762d847fff3757957aa1
MD5 a9c4d5937f7aabdab06809a275a67020
BLAKE2b-256 3746960fdb1e207cc21afb386d08309d19e2885be1b38bae796527a774c7b252

See more details on using hashes here.

File details

Details for the file KratosMPMApplication-10.2.3-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for KratosMPMApplication-10.2.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 714b67de89d261d776671ef449facb8be7d7e94d0445307a80c7fcfeb01ab1cb
MD5 dd7cee494557de5cf3e94327eb4f07c9
BLAKE2b-256 a0b8911f4636b20f473bc885c0a0d8c9de88c2e4e7f3a0305fa7c9cd44741a89

See more details on using hashes here.

File details

Details for the file KratosMPMApplication-10.2.3-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for KratosMPMApplication-10.2.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 31a1e33c3c05f1334b245a0ceee773992433294bdf6419c13569e0f33ffdc6c3
MD5 edde72f99622d04004b0a7a492fb17bc
BLAKE2b-256 7a476cd210ae2094ab230433f89f2dd1129ff9cf4b34fd991356e093e9750604

See more details on using hashes here.

File details

Details for the file KratosMPMApplication-10.2.3-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for KratosMPMApplication-10.2.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3795b887c24841b09fc3969dc08aa67d93d80290398c4f5e80777496a0d8a3e2
MD5 2ab3e0adf6f2b70e150bb4c296ad66b2
BLAKE2b-256 2de1892caaf8f0807272095d4a348555cc9875ea3c4a9cf7a7465263726d6a1f

See more details on using hashes here.

File details

Details for the file KratosMPMApplication-10.2.3-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for KratosMPMApplication-10.2.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 da48adc46059db0d900c4114c4469c4d092c27cb16844806070cd98be0e3e6a9
MD5 8ac1a7ea5d089f710368993a1f8cec5c
BLAKE2b-256 68e1f556c566c1cc3d9876aaa82329fc3f9dd1e183f0f0978080c1a70581f81d

See more details on using hashes here.

File details

Details for the file KratosMPMApplication-10.2.3-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for KratosMPMApplication-10.2.3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 400e655d2ac2222feca591a3c6723b6ee622ed0286bd3376afb9071c8991c6e3
MD5 967e2bdc3856d4ceec7e420014b84a0a
BLAKE2b-256 2b4a34ad91448afa5a6cbfb9e60b1d76ba350965eb645933dec0665baa23f61f

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