This repository contains the code used in the cours HYPER (Numerical Methods for NonLinear Mechanics) at the École Centrale de Nantes.
This cours describes the fundamentals of Hyper-elastic materials and how to implement finite element method with them.
Hyper-elastic materials are used when the hypothesis of small deformations is not valid anymore.
For exemple, applying pressure in a steel cylinder is different from applying pressure in a rubber pipe, which makes the pipe inflates and reduces its thickness:
The main difference between the approachs are:
- Linear elastic materials
- Valid for small deformations
- The stiffness matrix is constant
- Linear problem: solves a directly a single linear system
- Hyper-elastic materials
- Valid for small and large deformations
- Needs recalculation of stiffness matrix, to consider the deformed space
- Non-linear problems: Needs to 'walk', solving a linear system for each step
Python is used to implement the finite element method, along with the libraries:
- Numpy: Used for tensor calculs
- Gmsh: Used to get the mesh and elements
- Scipy: Used to get the mesh and elements
To install them, you can either use Anaconda that installs all you need, or you can install them manually:
pip install numpy
pip install scipy
pip install gmsh
After getting the libraries and downloading your own copy, you can test it with pytest
:
pip install pytest
pytest
There are some examples in the folder examples
explaining how to run