Efficient contact mechanics using elastic half-space methods
Project description
ContactMechanics
Contact mechanics with Python. This code implements computation of contact geometry and pressure of a rigid object on a flat elastic half-space. All calculations assume small deformations; in that limit, the contact of any two objects of arbitrary geometry and elastic moduli can be mapped on that of a rigid indenter on an elastic flat.
The methods that are implemented in this code are described in various papers:
- Fast-Fourier transform (FFT) for the computation of elastic deformation of periodic substrates.
- Decoupling of images for non-periodic calculation with the FFT.
- Hockney, Methods Comput. Phys. 9, 135 (1970)
- Liu, Wang, Liu, Wear 243, 101 (2000)
- Pastewka, Robbins, Appl. Phys. Lett. 108, 221601 (2016)
- Fast solution of nonadhesive, hard-wall interactions.
- Contact plasticity.
Build status
The following badge should say build passing. This means that all automated tests completed successfully for the master branch.
Documentation
Sphinx-generated documentation can be found here.
Installation
Quick install with: python3 -m pip install ContactMechanics
Running contact mechanics simulations
Dependencies
The package requires :
- numpy - https://www.numpy.org/
- NuMPI - https://github.com/imtek-simulation/numpi
- muFFT - https://github.com/muSpectre/muFFT
- SurfaceTopography - https://github.com/ContactEngineering/SurfaceTopography
Optional dependencies:
- runtests - https://github.com/bccp/runtests
Funding
Development of this project is funded by the European Research Council within Starting Grant 757343 and by the Deutsche Forschungsgemeinschaft within projects PA 2023/2 and EXC 2193.