Mechanical-MNIST is a benchmark dataset for mechanical meta-models
The Mechanical MNIST dataset contains the results of 70,000 (60,000 training examples + 10,000 test examples) finite element simulation of a heterogeneous material subject to large deformation. Mechanical MNIST is generated by first converting the MNIST bitmap images (http://www.pymvpa.org/datadb/mnist.html) to 2D heterogeneous blocks of a Neo-Hookean material. Consistent with the MNIST bitmap (28 x 28 pixels), the material domain is a 28 x 28 unit square.
In ``Mechanical MNIST - Uniaxial Extension" (the example featured here), the bottom of the domain is fixed (Dirichlet boundary condition), the left and right edges of the domain are free, and the top of the domain is moved to a set of given fixed displacements. The results of the simulations include: (1) change in strain energy at each step, (2) total reaction force at the top boundary at each step, and (3) full field displacement at each step. All simulations are conducted with the FEniCS computing platform (https://fenicsproject.org).
The full dataset is hosted by OpenBU. Link to the collection: https://open.bu.edu/handle/2144/39371
Link to ``Mechanical MNIST -- Uniaxial Extension'': https://open.bu.edu/handle/2144/38693
Link to ``Mechanical MNIST -- Equibiaxial Extension'': https://open.bu.edu/handle/2144/39428
Link to ``Mechanical MNIST -- Confined Compression'': https://open.bu.edu/handle/2144/39427
Link to ``Mechanical MNIST -- Shear'': https://open.bu.edu/handle/2144/39429
As an example, the ``Uniaxial Extension" dataset can be downloaded with the following commands:
wget https://open.bu.edu/bitstream/handle/2144/38693/MNIST_input_files.zip
wget https://open.bu.edu/bitstream/handle/2144/38693/FEA_psi_results.zip
wget https://open.bu.edu/bitstream/handle/2144/38693/FEA_rxnforce_results.zip
wget https://open.bu.edu/bitstream/handle/2144/38693/FEA_displacement_results_step1.zip
wget https://open.bu.edu/bitstream/handle/2144/38693/FEA_displacement_results_step2.zip
wget https://open.bu.edu/bitstream/handle/2144/38693/FEA_displacement_results_step3.zip
wget https://open.bu.edu/bitstream/handle/2144/38693/FEA_displacement_results_step4.zip
wget https://open.bu.edu/bitstream/handle/2144/38693/FEA_displacement_results_step5.zip
wget https://open.bu.edu/bitstream/handle/2144/38693/FEA_displacement_results_step6.zip
wget https://open.bu.edu/bitstream/handle/2144/38693/FEA_displacement_results_step7.zip
wget https://open.bu.edu/bitstream/handle/2144/38693/FEA_displacement_results_step8.zip
wget https://open.bu.edu/bitstream/handle/2144/38693/FEA_displacement_results_step9.zip
wget https://open.bu.edu/bitstream/handle/2144/38693/FEA_displacement_results_step10.zip
wget https://open.bu.edu/bitstream/handle/2144/38693/FEA_displacement_results_step11.zip
wget https://open.bu.edu/bitstream/handle/2144/38693/FEA_displacement_results_step12.zip
input_data -- folder containing 20 example MNIST bitmaps (10 test, 10 train)
FEA_train_FEniCS.py -- code to generate FEA simulation training dataset
FEA_test_FEniCS.py -- code to generate FEA simulation test dataset
2) a subset of the data (subset of the Uniaxial Extension full dataset found at: https://hdl.handle.net/2144/38693)
mnist_img_train.txt.zip -- the MNIST training bitmaps flattened and zipped (use python reshape((60000,28,28))) to get bitmaps
mnist_img_test.txt.zip -- the MNIST test bitmaps flattened and zipped (use python reshape((10000,28,28))) to get bitmaps
summary_psi_train_all.txt -- total change in strain energy at each step of applied displacement, training dataset, dimension 60K x 13 (call [:,12]) to get final step
summary_psi_test_all.txt -- total change in strain energy at each step of applied displacement, test dataset, dimension 10K x 13 (call [:,12]) to get final step
NOTE: This dataset is distributed under the terms of the Creative Commons Attribution-ShareAlike 3.0 License. The original MNIST bitmaps are from Yann LeCun (Courant Institute, NYU) and Corinna Cortes (Google Labs, New York) on PyMVPA (http://www.pymvpa.org/datadb/mnist.html) licensed with https://creativecommons.org/licenses/by-sa/3.0.
3) the code used to create the metamodels in the paper "Mechanical MNIST: a benchmark dataset for mechanical metamodels" (https://www.sciencedirect.com/science/article/pii/S2352431620300341)
set_up_input_data.py -- import and save the data to be used to train the neural networks
nn_regress_psi_fnn.py -- train a feedforward neural network to predict total change in strain energy from MNIST bitmap with PyTorch
nn_regress_psi_cnn.py -- train a convolutional neural network to predict total change in strain energy from MNIST bitmap with PyTorch
pytorch_model_make_predictions.py -- evaluate the PyTorch models on the test and training data
predict_disp_MLPR.py -- train a MLPR model to predict final displacement from tiny initial displacement with scikit-learn
predict_bitmap_MLPR.py -- train a MLPR model to predict MNIST bitmap from final displacement with scikit-learn
Additional files for recording model results and plotting: el_papers.mplstyle, plot_full_field.py, plot_nn_error.py,