DOI: 10.5281/zenodo.17182394
title: Data of "L. Wu and L. Noels, "Convolutional Neural Network-Based Mapping of Material Micro-Structures to Deep Material Networks for Non-Linear Mechanical Response Prediction""

description: Id: Data of following publication

title = "Convolutional Neural Network-Based Mapping of Material Micro-Structures to Deep Material Networks for Non-Linear Mechanical Response Prediction", journal = "Computer Methods in Applied Mechanics and Engineering", pages = "", year = "2026", doi = "", author = "Ling Wu, Ludovic Noels"

Carbobrake

This research has been funded by the Walloon Region under the agreement no. 2010092-CARBOBRAKE in the context of the M-ERA.Net Join Call 2020. Funded by the European Union under the Grant Agreement no. 958174. Views and opinions expressed are those of the author(s) only and do not necessarily reflect those of the European Union or the European Commission. Neither the European Union nor the granting authority can be held responsible for them.

Directories

To run the finite element simulations you need cm3Libraries.

SVEGenerator

Directory with the micro-structures generators for the three different inclusion shapes.

SVEGenerator_DSK

Directory with the circular inclusions generator.



python3 MicroSample_UDComp.py: Generates micro-structures with or without homogenized properties according to the optional keyword simulation=True or False.

The resulting data are saved in SVEData.


SVEGenerator_ELP

Directory with the elliptical inclusions generator.



python3 MicroSample_UDComp.py: Generates micro-structures with or without homogenized properties according to the optional keyword simulation=True or False.

The resulting data are saved in SVEData.


SVEGenerator_ELP

Directory with the squared inclusions generator.



python3 MicroSample_UDComp.py: Generates micro-structures with or without homogenized properties according to the optional keyword simulation=True or False.

The resulting data are saved in SVEData.


ImData

All the training and testing data used for the paper are stored in this directory. Their use is described here below.

ImData/ImData_DSK

Training and testing data for the circular inclusion SVEs

ImData/ImData_ELP

Training and testing data for the elliptical inclusion SVEs

ImData/ImData_SQU

Training and testing data for the squared inclusion SVEs

CNN

Directory with the different CNNs

CNN/1FamilyComposite

Directory with the CNNs related to only circular inclusions.

CNN/1FamilyComposite/CNN_3 and CNN/1FamilyComposite/CNN_4



python3 Cnn.py:



Training of convolutional encoder-decoder of respectively with 3 and 4 convolution layers in encoder

Using data stored in ImData/ImData_DSK.

Trained CCNs are stored in CNN/1FamilyComposite/CNN_3/ResNNW or CNN/1FamilyComposite/CNN_4/ResNNW.

Warmstart=True or  False for training (with warmstart you need to increase the number of epoch by n_epochs)



python3 PlotLoss_CNN.py: Plots the evolution of the loss functions

python3 Plot_Im.py: Plots the reference micro-structure image and the image generated by the convolutional decoder for comparison. Results are stored in ImData/ImData_DSK


CNN/1FamilyComposite/CNN_Mat



python3 IM_CNNToMat.py:



Training of feed forward NNWs which yield the topological parameters for IB-DMN

Using data stored in ImData/ImData_DSK.

Trained Feed-Forward Neural-Networks are stored in CNN/1FamilyComposite/CNN_Mat/ResNNW. warm_start=True or  False for training (with warmstart you need to increase the number of epoch by n_epochs).

level =4, 5 or  6 defined the IB-DMN level.



python3 PlotLoss.py: Plots the evolution of loss function.

python3 Plot_Cxx.py: Plots the comparison of elastic tensor components from computational homogenization and IB-DMN using the topological parameters extracted from the micro-structure images.

python3 WriteSingleRVEPara.py:



Using the trained Feed-Forward NNWs, the topological parameters are extracted from micro-structure images and written in text files which will serve as input files for nonlinear simulation of IB-DMNs.

Taking as inputs the images in SVESimulations/1FamilyComposite/6SVE_Data

Results are stored in SVESimulations/1FamilyComposite/6SVE_DMN/DMNPara




CNN/3FamilyComposite

Directory with the CNNs considering the 3 families (circular, elliptical and squared inclusions) at the same time.

CNN/3FamilyComposite/CNN_4_All



python3 CNN.py:



Training of convolutional encoder-decoder of respectively with 4 convolution layers in encoder

Using data stored in ImData/ImData_DSK, ImData/ImData_ELP & ImData/ImData_SQU.

Trained CCNs are stored in CNN/3FamilyComposite/CNN_4_All/ResNNW.

Warmstart=True or  False for training (with warmstart you need to increase the number of epoch by n_epochs)



python3 PlotLoss_CNN.py: Plots the evolution of the loss functions

python3 Plot_Im.py: Plots the reference micro-structure image and the image generated by the convolutional decoder for comparison. Results are stored in ImData/ImData_DSK


CNN/3FamilyComposite/CNN_Mat_All



python3 DataCheck.py:



Make sure the generated SVEs are correct (because of the boolean operationis ordering the physical might be wrong)

The Path can be changed to span the different data bases



python3 Im_CNNToMat.py:



Training of feed forward NNWs which yield the topological parameters for IB-DMN

Using data stored in ImData/ImData_DSK, ImData/ImData_ELP & ImData/ImData_SQU.

Trained Feed-Forward Neural-Networks are stored in CNN/3FamilyComposite/CNN_Mat_All/ResNNW. warm_start=True or  False for training (with warmstart you need to increase the number of epoch by n_epochs).

level =4, 5 or  6 defined the IB-DMN level.



python3 PlotLoss.py: Plots the evolution of loss function.

python3 Plot_Cxx.py: Plots the comparison of elastic tensor components from computational homogenization and IB-DMN using the topological parameters extracted from the micro-structure images.

python3 WriteSingleRVEPara.py:



Using the trained Feed-Forward NNWs, the topological parameters are extracted from micro-structure images and written in text files which will serve as input files for nonlinear simulation of IB-DMNs.

Taking as inputs the images in SVESimulations/1FamilyComposite/6SVE_Data and in SVESimulations/3FamilyComposite/SVE_Data

Results are stored in SVESimulations/3FamilyComposite/SVE_DMN_NONASSOCIATED/DMNPara




SVESimulations

Directory with the DNS and DMN predictions for the different SVEs.

SVESimulations/1FamilyComposite

Directory with the SVE simulations related to only circular inclusions, and consideirng the IB-DMN trained for circular inclusions only.

6SVE_Data



This directory keeps the images of 6 SVEs for monotonic loading and 1 SVE for cyclic loading, and their *.geo files for direct finite element simulations.


6SVE_DNS & 6SVE_DNS_NONASSOCIATED



Direct numerical simulations with J2-isotropic hardening (in 6SVE_DNS) and with non-associated pressure dependent material law (in 6SVE_DNS_NONASSOCIATED)

python3 Rve_Test.py: This function calls respectively ShearTest.py, TensileTest.py and Unistrain.py for running the direct finite element simulations on 6 SVEs subject to shearing or tensile and uni-axial stain loading cases (set TestKey = 'Shear' or 'Tensile' or 'UniStrain').

python3 Cyclic_Shear.py: Running the direct finite element simulations on a SVE under cyclic shear loading.

python3 Cyclic_Tensile.py: Running the direct finite element simulations on a SVE under cyclic tensile loading.

6SVE_DNS/Path_Res and 6SVE_DNS_NONASSOCIATED/Path_Res: Keeps the results of direct finite element simulations.


6SVE_DMN & 6SVE_DMN_NONASSOCIATED



6SVE_DMN/DMNPara & 6SVE_DMN_NONASSOCIATED/DMNPara: Keeps the text files of the topological parameters which serve as input files for nonlinear simulations of the IB-DMNs.

6SVE_DMN/DMN_simulation & 6SVE_DMN_NONASSOCIATED/DMN_simulation: Keeps the nonlinear simulation results of IB-DMN of all the SVEs.

python3 Simulation.py: Runs the IB-DMN nonlinear simulations under monotonic loading using the the parameter files in directory 6SVE_DMN/DMNPara & 6SVE_DMN_NONASSOCIATED/DMNPara.

python3 CyclicDMN.py: Runs the IB-DMN nonlinear simulations under cyclic loading using the parameter files in directory 6SVE_DMN/DMNPara & 6SVE_DMN_NONASSOCIATED/DMNPara.

python3 Plot_DNS_DMN.py: Plots the comparison of the nonlinear simulation results of DNS and DMN under monotonic loading.

python3 Plot_Cyclic_DNS_DMN.py: Plots the comparison of the nonlinear simulation results of DNS and DMN under cyclic loading.

python3 Error_DNS_DMN.py: Evaluate the RMS error of DMN wth recpect to DNS.


SVESimulations/3FamilyComposite

Directory with the SVE simulations considering the 3 families and considering the IB-DMN trained with the 3 families at the same time (circular, elliptical and squared inclusions) at the same time.

SVE_Data



This directory keeps the images of elliptical and squared SVEs for monotonic loading and for cyclic loading, and their *.geo files for direct finite element simulations.


SVE_DNS_NONASSOCIATED



Direct numerical simulations with non-associated pressure dependent material law

python3 Rve_Test.py: This function calls respectively ShearTest.py, TensileTest.py and Unistrain.py for running the direct finite element simulations on SVEs subject to shearing or tensile and uni-axial stain loading cases (set TestKey = 'Shear' or 'Tensile' or 'UniStrain').

python3 Cyclic_Shear.py: Running the direct finite element simulations on a SVE under cyclic shear loading.

python3 Cyclic_Tensile.py: Running the direct finite element simulations on a SVE under cyclic tensile loading.

SVE_DNS_NONASSOCIATED/Path_Res: Keeps the results of direct finite element simulations.


SVE_DMN_NONASSOCIATED



DMNPara: Keeps the text files of the topological parameters which serve as input files for nonlinear simulations of the IB-DMNs.

DMN_simulation: Keeps the nonlinear simulation results of IB-DMN of all the SVEs.

python3 Simulation.py: Runs the IB-DMN nonlinear simulations under monotonic loading using the the parameter files in directory DMNPara.

python3 CyclicDMN.py: Runs the IB-DMN nonlinear simulations under cyclic loading using the parameter files in directory DMNPara.

python3 Plot_DNS_DMN.py: Plots the comparison of the nonlinear simulation results of DNS and DMN under monotonic loading.

python3 Plot_Cyclic_DNS_DMN.py: Plots the comparison of the nonlinear simulation results of DNS and DMN under cyclic loading.

python3 Error_DNS_DMN.py: Evaluate the RMS error of DMN with respect to DNS.


SVESimulations/SVE_StrainConcentration

Directory with the SVE simulations of exponential hadering J2-plasticity with strain concentration tensors extraction. The IB-DMN trained with the 3 families at the same time (circular, elliptical and squared inclusions) at the same time is used fro the IB-DMN simulations.

SVE_Data



This directory keeps the images of circular SVE 4, and its *.geo files for direct finite element simulations.


SVE_DNS



Direct numerical simulations with J2-plasticity and saturation material law

python3 Rve_Test.py: This function calls respectively ShearTest.py, TensileTest.py and Unistrain.py for running the direct finite element simulations on SVE subject to shearing or tensile and uni-axial stain loading cases (set TestKey = 'Shear' or 'Tensile' or 'UniStrain'). Only Tensile test is considered in the paper.

SVE_DNS/Path_Res: Keeps the results of direct finite element simulations.


SVE_DMN



DMNPara: Keeps the text files of the topological parameters which serve as input files for nonlinear simulations of the IB-DMNs.

DMN_simulation: Keeps the nonlinear simulation results of IB-DMN.

python3 Simulation.py: Runs the IB-DMN nonlinear simulations under monotonic loading using the the parameter files in directory DMNPara.

python3 Plot_DNS_DMN.py: Plots the comparison of the nonlinear simulation results of DNS and DMN under monotonic loading.

python3 CDF.py: compare the cumulative distribution functions of strain distribution in the DMN with respect to DNS at different macro-scale strain values.


Reproduce paper figures



Fig. 4: Run python3 Plot_Im.py from CNN/1FamilyComposite/CNN_3 or 1FamilyComposite/CNN_4. Results are stored in ImData/ImData_DSK.

Fig. 5: Run python3 PlotLoss_CNN.py from CNN/1FamilyComposite/CNN_3 and 1FamilyComposite/CNN_4.

Fig. 6: Run python3 PlotLoss.py from CNN/1FamilyComposite/CNN_Mat.

Fig. 7: Run python3 Plot_Cxx.py from CNN/1FamilyComposite/CNN_Mat.

Fig. 9: Run python3 Plot_DNS_DMN.py from SVESimulations/1FamilyComposite/6SVE_DMN_NONASSOCIATED.

Fig. 10: Run python3 Plot_Cyclic_DNS_DMN.py from SVESimulations/1FamilyComposite6SVE_DMN_NONASSOCIATED.

Fig. 11: Run python3 Plot_Im.py from CNN/3FamilyComposite/CNN_4_All with appropriate typeInc= 'DSK'  #'ELP' # or 'SQU'. Results are stored either in ImData/ImData_DSK, ImData/ImData_DSK or ImData/ImData_SQU.

Fig. 13: Run python3 Plot_DNS_DMN.py from SVESimulations/3FamilyComposite/SVE_DMN_NONASSOCIATED.

Fig. 14-16: Run python3 Plot_Cyclic_DNS_DMN.py from SVESimulations/3FamilyComposite/SVE_DMN_NONASSOCIATED.

Fig. 17: Run python3 Plot_DNS_DMN.py from SVESimulations/SVE_StrainConcentration/SVE_DMN.

Fig. 18: Run python3 CDF.py from SVESimulations/SVE_StrainConcentration/SVE_DMN.