Implementation of the INTERNODES method for two- and three-dimensional problems in contact mechanics.
This code served as a prototype for the inclusion of the method in akantu
in collaboration with @Technici4n.
The INTERNODES method from [1] is implemented for static problems in contact mechanics [2]. The package akantu
is used as a finite element engine to prime the algorithm, wherease the solution is obtained independently with numpy
and scipy
.
Clone the repository
git clone https://github.com/FMatti/Internodes-CM.git
cd Internodes-CM
Optionally create and activate a virtual environment (Python 3.8 is recommended for pip installation of akantu
)
python -m venv .venv
source .venv/bin/activate (on Linux, macOS)
.venv\Scripts\activate.bat (on Windows)
Install the required packages
pip install --upgrade pip
pip install -r requirements.txt
Generate the meshes (replace the placeholders with appropriate values, i.e. for [DIMENSION] you should use 2 or 3 and for the filenames a valid string)
GMSH -[DIMENSION] -o [MESHNAME].msh [GEONAME].geo
The main implementation is found in the file contact_mechanics_internodes.py
. Some examples can be found in the jupyter notebooks.
Internodes-CM
│ README.md
| contact_mechanics_internodes.py (source file of all implementations)
| example2d.ipynb (two-dimensional example)
| example3d.ipynb (three-dimensional example)
| helper.py (helper file containing utility functions)
| plots.ipynb (notebook used to generate plots)
| requirements.txt (list of required packages)
| test_contact_mechanics_internodes.py (tests for source file)
|
└───material (akantu material file)
| | material.dat
|
└───mesh (geometry files to generate meshes)
| | contact2d_circle.geo
| | contact2d_circle_circle.geo
| | contact2d_plane_circle.geo
| | contact3d_plane_sphere.geo
| | contact3d_sphere.geo
| | contact3d_sphere_sphere.geo
|
└───presentation
| | ...
|
└───report
| | ...
[1] Simone Deparis, Davide Forti, and Alfio Quarteroni. A rescaled localized radial basis function interpolation on non-cartesian and nonconforming grids. SIAM Journal on Scientific Computing, 36(6):A2745–A2762, 2014. doi: 10.1137/130947179
[2] Yannis Voet, Guillaume Anciaux, Simone Deparis, and Paola Gervasio. The internodes method for applications in contact mechanics and dedicated preconditioning techniques. Computers & Mathematics with Applications, 127:48–64, 2022. doi: 10.1016/j.camwa.2022.09.019