A Machine Learning-Based Surrogate Modeling Framework for Predicting the History-Dependent Deformation of Dual Phase Microstructures
Department of Metallurgical Engineering and Materials Science, Indian Institute of Technology Bombay, Mumbai, India
A Machine Learning (ML)-based surrogate modeling framework is developed to predict the heterogeneous deformation behavior of dual phase microstructures. The deformation is first simulated using a dislocation density-based J2 plasticity Finite Element (FE) model, whose results form the basis for surrogate model training and validation. Long Short Term Memory (LSTM)-based ML models, with different architectures, are employed to predict the spatio-temporal evolution of three output variables: effective strain, von Mises effective stress, and the stress triaxiality ratio. Two metrics, the mean average error (MAE) and the coefficient of determination,
The LSTM model predictions have been published in a recent article. Please cite this reference if you are using the codes shared in this repository: Khandelwal, S., Basu, S., Patra, A., “A machine learning-based surrogate modeling framework for predicting the history-dependent deformation of dual phase microstructures”, Materials Today Communications, 2021, https://doi.org/10.1016/j.mtcomm.2021.102914.
LSTM-based RNN: A LSTM-based RNN model capable of predicting the microstructure evolution during deformation of dual phase microstructures by just looking at the microstructure after 1% strain. We have predicted three variables using this model: effective strain, effective stress and stress triaxiality ratio.
The model analysis, predictions and results for different microstructures can be produced using this.
Here's a brief introduction to what each file in this repository does
script/pred_all_dataset.py
: takes a particular model and makes predictions for all the given microstructures using the model. It stores the results in a separate folder for each microstructure with appropriate names.script/window_lstm.py
: this script consists of the LSTM model's architecture and training. 5 mircostructure's data has been used to train the model. The script saves the model and plots the evolution of loss with each epoch.window-lstm-predictions.ipynb
: this notebook consists of the LSTM model's architecture and training with proper explaination for each code blockwindow-lstm-training.ipynb
: this notebook consists of the plots made for the analysis of the predictions made using this model.
The model is completely developed in Tensorflow 2.0 with some helper functions from scipy and scikit-learn. It would be recommended to run it as jupyter notebook for a clear step by step understanding of the work that has been done. To install the required packages, create a virtual environment and simply run
pip install -r requirements.txt
then launch a jupyter-notebook and open window-lstm-predictions.ipynb
to start training your model.
This dropbox folder contains the model trained by us along with data for microstructure 14. Here are details about the different files in the folder
LSTM_model_trained_to_5_datasets.rar
: contains the trained tensforflow model saved usingmodel.save()
in tensforflow. The model can be loaded and directly used for preditctions throughtf.keras.models.load_model()
function.microstructure14.csv
: is a csv file containing data extracted by the data-extraction script. It contains the values of each variable at each timestep for every material point in the microstructure.microstructure14-out.csv
: is the output file generated at the end of the J2 Plasticity simulation. This file contains the global variable values which are the same for the entire microstrcture at a given timestamp. This file is used for generating stress-strain plots and discretising the data.