Data of "Stochastic Deep Material Networks as Efficient Surrogates for Stochastic Homogenisation of Non-linear Heterogeneous Materials"
DOI10.5281/zenodo.14861537Zenodo14861537MaRDI QIDQ6703075FDOQ6703075
Dataset published at Zenodo repository.
Publication date: 12 February 2025
Copyright license: Creative Commons Attribution 4.0 International
Stochastic Deep Material Networks as Efficient Surrogates for Stochastic Homogenisation of Non-linear Heterogeneous Materials This directory contains the data and algorithms generated in publication1 Table of Contents Dependencies and Prerequisites Structure of Repository Images/Geometries and IB-DMN training data of the 6 SVEs Stochastic analysis - Direct numerical simulations of SVEs Training of the reference IB-DMN Stochastic analysis - Stochastic IB-DMN Reproduce paper[^1] figures Dependencies and Prerequisites Python, pandas, matplotlib, texttabble and latextable are pre requisites for visualizing and navigating the data. For generating mesh and for vizualization, gmsh (www.gmsh.info) is required. For running simulations, cm3Libraries (http://www.ltas-cm3.ulg.ac.be/openSource.htm) is required. Instructions using apt pip3 package manager Instructions for Debian/Ubuntu based workstations are as follows. python, pandas and dependencies sudo apt install python3 python3-scipy libpython3-dev python3-numpy python3-pandas matplotlib, texttabble and latextable pip3 install matplotlib texttable latextable Pytorch Without GPU pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu With GPU pip3 install torch torchvision torchaudio Libtorch (only when using cm3Libraries) Without GPU: In a local directory (e.g. ~/local with export TORCHDIR=$HOME/local/libtorch) wget wget https://download.pytorch.org/libtorch/cpu/libtorch-shared-with-deps-2.3.0%2Bcpu.zip unzip libtorch-shared-with-deps-2.1.1+cpu.zip With GPU: In a local directory (e.g. ~/local with export TORCHDIR=$HOME/local/libtorch) wget https://download.pytorch.org/libtorch/cu121/libtorch-shared-with-deps-2.1.1%2Bcu121.zip unzip libtorch-shared-with-deps-2.1.1+cu121.zip Structure of Repository 6SVE_Example: Images/Geometries and IB-DMN training data of the 6 SVEs. Vf_Mat: Training of the reference IB-DMN. Stochastic_DNS_LinearHardening: Stochastic analysis - Direct numerical simulations of SVEs Stochastic analysis - Stochastic IB-DMN: Stochastic analysis - Stochastic IB-DMN Images/Geometries and IB-DMN training data of the 6 SVEs: 6SVE_Example 6SVE_Example/6SVE_Data: Images/Geometries and IB-DMN training data of the 6 SVEs 6SVE_Example/6SVE_DNS: 6SVE_Example/6SVE_DNS/DNS_LinearHardening: Direct numerical simulations (require cm3Libraries) on the 6 SVEs in a finite-deformation setting: python3 RVE_Test.py TestKey = 'Shear' or TestKey = 'Tensile' or TestKey = 'UniStrain' in RVE_Test.py to run the test in uniaxial stress, shearing or uniaxial strain loading conditions Results are stored in 6SVE_Example/DNS_LinearHardening/Path_Res 6SVE_Example/6SVE_DNS/DNS_LinearHardening_SmallDefo: Direct numerical simulations (require cm3Libraries) on the 6 SVEs in a small-deformation setting: python3 RVE_Test.py Tensile = False or Tensile = True in RVE_Test.py to run the test in uniaxial stress or uniaxial strain loading conditions Results are stored in 6SVE_Example/6SVE_DNS/DNS_LinearHardening_SmallDefo/Path_Res 6SVE_Example/6SVE_DMN: 6SVE_Example/6SVE_DMN/NNW_Tool.py: Defines the class of IB-DMN and loss function Called in the following files (not stand alone) 6SVE_Example/6SVE_DMN/WriteSingleRVEPara.py: Training IB-DMN for single SVE Training = True for warm start or not level = 5 to select the IB-DMN level Results are written in datafile in directory 6SVE_Example/6SVE_DMN/DMNPara for nonlinear simulations 6SVE_Example/6SVE_DMN/SimulationDMN.py: Nonlinear IB-DMN simulations (require cm3Libraries) in a finite deformation setting Use the trained IB-DMN parameters stored in 6SVE_Example/6SVE_DMN/DMNPara TestKey = 'Shear' or TestKey = 'Tensile' or TestKey = 'UniStrain' in RVE_Test.py to run the test in uniaxial stress, shearing or uniaxial strain loading conditions level = 4, level = 5 or level = 6 specifies the level of the IB-DMN to be used SVE number and training case can be manually specified at the end of the file, e.g; f_Para = './DMNPara/rve6_Level'+str(level)+'_300Data.dat' and Id = prefix+'rve6_Level'+str(level)+'_'+Load+'Res300.csv' Results are stored in 6SVE_Example/6SVE_DMN/DMN_simulation 6SVE_Example/6SVE_DMN/SmallDefoDMN.py: Nonlinear IB-DMN simulations (require cm3Libraries) in a small deformation setting Use the trained IB-DMN parameters stored in 6SVE_Example/6SVE_DMN/DMNPara Results are stored in 6SVE_Example/6SVE_DMN/DMN_simulation_SmallDefo 6SVE_Example/6SVE_DMN/Plot_DNS_DMN.py: Plot the comparison of the results of nonlinear simulations using IB-DMN and DNS Load = 'Tensile' or Load = 'Shear' or Load = 'UniStrain' to vizualize the results in uniaxial stress, shearing or uniaxial strain loading conditions Use LargeDefo = True to plot results in finite-strain setting or use LargeDefo = False for the small strain setting (only Load = 'Tensile' is possible then) 6SVE_Example/6SVE_DMN/DMNPara_rve6.py: Training IB-DMN for SVE 6 with 300 sets of material properties Training = True for warm start or not level = 5 to select the IB-DMN level Results are stored in 6SVE_Example/6SVE_DMN/DMNPara for nonlinear simulations 6SVE_Example/6SVE_DMN/Plot_rve6_DMN.py: Plot the comparison of the results of nonlinear simulations of SVE 6 using DNS and DMNs which are trained successively with 10 and 300 sets of material properties Stochastic analysis - Direct numerical simulations of SVEs: Stochastic_DNS_LinearHardening Functions and data used to generate SVE of UD fiber reinforced composites following 2: Stochastic_DNS_LinearHardening/utils.py, Stochastic_DNS_LinearHardening/Ana_Gen_MicStru.py, Stochastic_DNS_LinearHardening/Copula_Grvs.py and data from UD analysis in directory Stochastic_DNS_LinearHardening/UD_CopulaData Test setup Stochastic_DNS_LinearHardening/TensileTest.py, Stochastic_DNS_LinearHardening/ShearTest.py and Stochastic_DNS_LinearHardening/UniStrain.py describe the BC and material models of the DNS under uniaxial stress, shear or uniaxial strain Used by the following function (no stand alone) Generate SVEs and running simulations Stochastic_DNS_LinearHardening/MicroSample_UDComp.py Generates the SVEs and runs the DNS (requires cm3Libraries) Calls previously listed files to generate SVE Nsim = 100 to set the number of SVE realisations to be generated TestKey = 'Tensile' or TestKey = 'Shear' or TestKey = 'UniStrain' to run under uniaxial stress, shear or uniaxial strain minVf = 0.3 and maxVf = 0.35 to set the bounds on the fiber volume fraction prefix = './Res'+TestKey+'/Vf_03_035/' sets the directory where to save the results (to be consistent with the volume fraction bounds and directory should exist) Results of simulations stored in Stochastic_DNS_LinearHardening/ResTensile and Stochastic_DNS_LinearHardening/ResShear for uniaxial stress and shear Training of the reference IB-DMN: Vf_Mat Training of general IB-DMN: Vf_Mat/NNW_Tool.py: Defines the class of IB-DMN and Data shuffle Called in the following files (not stand alone) Vf_Mat/Vf_Mat.py: Training of the reference IB-DMN Trained reference IB-DMN parameters are stored in Vf_Mat/ResNNW Stochastic analysis - Stochastic IB-DMN: Stochastic_DMN_LinearHardening Files used to initialize the IB-DMN material law of levels 4, 5 and 6: Stochastic_DMN_LinearHardening/Para_Level4.dat, Stochastic_DMN_LinearHardening/Para_Level5.dat and Stochastic_DMN_LinearHardening/Para_Level6.dat Adding a random perturbation on the reference IB-DMN parameters and perform nonlinear simulations: Stochastic_DMN_LinearHardening/Tool.py Called by the following file (not stand alone) Stochastic_DMN_LinearHardening/GenParaDMN.py GenPara = False is adding perturbation on the reference IB-DMN GenPara = True is generating a random IB-DMN Load = 'Tensile' or Load = 'Shear' to run under uniaxial stress or shearing FigureOnly = True to plot figures using archieved results, FigureOnly = False to generate new stochastic IB-DMN, new data and run tests (requires cm3Libraries) before plotting figures Id_Para = '_partial' or Id_Para = '_a25_b05', Id_Para = '_a5_b075', Id_Para = '_a10_b05' defines the saving directory and if only partial distribution (in ln=[depth] and lw=[depth]) or not are considered a= 2.5 and b = 0.5 define the distribution parameters ``level = 4, level = 5``` or ```level = 6``` specifies the level of the IB-DMN to be used Results are stored in ./Res* for the different loading cases and combinations of parameters a and b of the random perturbation distributions (partial or not). Reproduce paper1 figures Fig. 3: The images are in the diretory 6SVE_Example/6SVE_Data Fig. 4: Load = 'Tensile' or Load = 'Shear' or Load = 'UniStrain' to vizualize the results under uniaxial stress, shearing or uniaxial strain loading conditions Use LargeDefo = True in 6SVE_Example/6SVE_DMN/Plot_DNS_DMN.py The command to be run from the directory 6SVE_Example/6SVE_DMN is python3 Plot_DNS_DMN.py Fig. 5: The command to be run from the root directory . to plot the beta distribution is python3 Beta.py Fig. 6, Fig. 7, and Fig. 8: Set FigureOnly = True Parameters: Id_Para = '_a25_b05', a=2.5, b=0.5 Use successively level = 4, level = 5, and level = 6 Use successively Load = 'Shear' and Load = 'Tensile' The command to be run from the directory Stochastic_DMN_LinearHardening is python3 GenParaDMN.py Fig. 9 and Fig. 10: Set FigureOnly = True Parameter: level = 5 Use successively Id_Para = '_a25_b05', a=2.5, b=0.5, then Id_Para = '_a5_b075', a=5, b=0.75, and then Id_Para = '_a10_b05', a=10, b=0.5 Use successively Load = 'Shear' and Load = 'Tensile' The command to be run from the directory Stochastic_DMN_LinearHardening is python3 GenParaDMN.py Fig. 11: Set FigureOnly = True Parameters: Id_Para = '_partial', ln=[0,1,2,3,4], lw=[], a=2.5, b=0.5 and level = 5 Use successively Load = 'Shear' and Load = 'Tensile' The command to be run from the directory Stochastic_DMN_LinearHardening is python3 GenParaDMN.py Fig. 12: Set FigureOnly = True Parameters: Id_Para = '_partial', ln=[], lw=[0,1,2,3], a=2.5, b=0.5 and level = 5 Use successively Load = 'Shear' and Load = 'Tensile' The command to be run from the directory Stochastic_DMN_LinearHardening is python3 GenParaDMN.py Fig. 13: Set FigureOnly = True Parameters: Id_Para = '_partial', ln=[4], lw=[3], a=2.5, b=0.5 and level = 5 Use successively Load = 'Shear' and Load = 'Tensile' The command to be run from the directory Stochastic_DMN_LinearHardening is python3 GenParaDMN.py Fig. 14: Set FigureOnly = True Parameters: Id_Para = '_partial', ln=[3], lw=[2], a=2.5, b=0.5 and level = 5 Use successively Load = 'Shear' and Load = 'Tensile' The command to be run from the directory Stochastic_DMN_LinearHardening is python3 GenParaDMN.py Fig. 15: Set FigureOnly = True Parameters: Id_Para = '_partial', ln=[0,1,2,3,4], lw=[], a=2.5, b=1 and level = 5 Use successively Load = 'Shear' and Load = 'Tensile' The command to be run from the directory Stochastic_DMN_LinearHardening is python3 GenParaDMN.py Fig. B16: The command to be run from the directory 6SVE_Example/6SVE_DMN/ is python3 Plot_rve6_DMN.py Fig. B17: Use LargeDefo = False and Load = 'Tensile' in 6SVE_Example/6SVE_DMN/Plot_DNS_DMN.py The command to be run from the directory 6SVE_Example/6SVE_DMN/ is python3 Plot_DNS_DMN.py Disclaimer This project has received funding from the European Unions Horizon Europe Framework Programme under grant agreement No. 101056682 for the project DIgital DEsign strategies to certify and mAnufacture Robust cOmposite sTructures (DIDEAROT). The contents of this publication are the sole responsibility of ULiege and do not necessarily reflect the opinion of the European Union. Neither the European Union nor the granting authority can be held responsible for them. The present work is described in: "Wu, L. and Noels, L. (Submitted). Stochastic Deep Material Networks as Efficient Surrogates for Stochastic Homogenisation of Non-linear Heterogeneous Materials , doi: " which can be downloaded. We would be grateful if you could cite this publication in case you use the files.0 ↩ ↩2 The micro-structure generator is described in: "Wu, L. and Chung, C. N. and Major, Z. and Adam, L. and Noels, L. (2018) From sem images to elastic responses: A stochastic multiscale analysis of ud fiber reinforced composites, Composite Structures 189, doi: 10.1016/j.compstruct.2018.01.051 ↩
This page was built for dataset: Data of "Stochastic Deep Material Networks as Efficient Surrogates for Stochastic Homogenisation of Non-linear Heterogeneous Materials"