Overview
Finite strain elasto-plastic simulations are critical in fields such as materials science (metal forming, forging, additive manufacturing) and automotive engineering (crash simulations). These simulations are traditionally carried out using computationally intensive finite element analysis (FEA), which limits their use in optimization tasks (e.g., optimal control, design processes) and real-time applications (e.g., tele-operation, personnel training). In this work, we introduce a benchmark dedicated to highly non-linear elasto-plastic simulations, designed to evaluate and develop neural network models tailored for solving elasto-plastic problems under finite strain conditions, ultimately unlocking the potential for real-time optimization and interactive simulations. The datasets include simulations of 1D and 3D elements, featuring quasi-static sequences of applied loads on complex geometries, and the resulting computed quantities: displacements fields, plastic flow coefficient field, stresses. To specifically evaluate the impact of plasticity on different neural networks, the datasets also feature simulations with identical inputs but employing a purely elastic constitutive law.
Unzip the data
To unzip the split zip archive run :
zip -F data.zip --out single-archive.zip
and :
unzip single-archive.zip
Data format
The data is stored in the hd5
format and follows the structure:
data/
paperclip/
├─ meshes/
│ ├─ mesh3d.json //initial 3D mesh
├─ data.hd5 //simulation results
├─ test.hd5 //simulation results (test set)
├─ params.json //parameters used in data generation
car_hood/
├─ meshes/
│ ├─ base.stl //fine mesh, used for simulations.
│ ├─ coarse.stl //coarse mesh, on which the results are recorded.
│ ├─ bloq0.stl //meshes containing the blocked displacement zones.
│ ├─ bloq1.stl
│ ├─ bloq2.stl
│ ├─ fine_to_coarse.json //conversion table from fine to coarse mesh.
├─ data.hd5 //simulation results
├─ test.hd5 //simulation results (test set)
├─ params.json //parameters used in data generation
The HD5 files are organized according to the model:
data.hd5/
├─ data_0/
│ ├─ loads/ //loading
│ ├─ elastic/ //elastic results
│ ├─ plastic/ //elastoplastic results
│ ...
Scripts provided
Some useful scripts are provided in the code.zip archive.
Visualize and use the data
A visualization script is available. It can be run as follows:
python view_data.py path/to/dataset/ --datum 167
Torch dataloaders are provided in paperclip/loader.py and twizy/loader.py
Generate the figures of the paper
The figures of the paper can be easily reproduced by running the scripts paperclip/stats.py and twizy/stats.py.
Generate new data
To generate new data, cast3m is required. The installation can be done here.
Fill in the path to the cast3m executable in the file tools/castem.json.
Run one of the data generation scripts. Many options are available, detailed in the scripts.
CAST3M, 2024 (https://www-cast3m.cea.fr/index.php?xml=download1)