This data set is associated with the manuscript entitled "Effect of sample size on the maximum value distribution of fatigue driving forces in metals and alloys." This data set consists of two parts as described below.
- The first part of the data contains the raw microstructure models, crystal plasticity finite element method (CPFEM) input files, PRISMS-Plasticity simulation results, and post-processed fatigue indicator parameters (FIPs). This data is split into "tar.gz" files that have been compressed on a linux platform. The models are split across five tar.gz files as described by the file names:
"30_cubed_x_200_models.tar.gz": 200 models of Microstructure A (see Table 1 and Fig. 1 of the associated manuscript).
"45_cubed_x_200_models.tar.gz": 200 models of Microstructure B
"90_cubed_x_156_models.gz": 156 models of Microstructure C
"160_cubed_x_92_models.tar.gz": 92 models of Microstructure D
"Repeat_of_Acta_Mater_manuscript.tar.gz": A combination of Microstructures C, D, E, and F.
In addition to the above microstructure models, this manuscript also analyzed FIPs from our previous work cited below. Thus, the final data set entitled "Repeat_of_Acta_Mater_manuscript.tar.gz" analyzed the same number of Microstructures C, D, E, and F as our previous work published in Acta. Mater. The total number of FCC Al 7075-T6 grains analyzed is ~6.5 million.
Simulated effects of sample size and grain neighborhood on the modeling of extreme value fatigue response. Acta Mater., 224, 117524 (2022); https://doi.org/10.1016/j.actamat.2021.117524
The raw microstructure data for the above manuscript is available at https://doi.org/10.13011/m3-31wm-h036.
The data can be extracted on linux using the tar command, e.g., "tar -xzvf 45_cubed_x_200_models.tar.gz".
- The second part of the data contains just the post-processed FIPs compiled for each of the six microstructure models into easily accessible .hdf5 files. The FIPs from our previous work referenced above is also incorporated into these files. The data can be read using the Python code below.
import h5py
import numpy as np
''' Specify file names '''
fips_30_vox_fname1 = '30_voxels_per_side_200_samples_275_avg_num_grains.hdf5'
fips_45_vox_fname1 = '45_voxels_per_side_200_samples_950_avg_num_grains.hdf5'
fips_90_vox_fname1 = '90_voxels_per_side_200_samples_7500_avg_num_grains.hdf5'
fips_160_vox_fname1 = '160_voxels_per_side_100_samples_41000_avg_num_grains.hdf5'
fips_200_vox_fname1 = '200_voxels_per_side_4_samples_80000_avg_num_grains.hdf5'
fips_250_vox_fname1 = '250_voxels_per_side_2_samples_160000_avg_num_grains.hdf5'
''' Read FIPs '''
fips_30_vox_fname = h5py.File(fips_30_vox_fname1, 'r')
fips_30_vox = np.array(fips_30_vox_fname.get('275_grain_data'))
fips_45_vox_fname = h5py.File(fips_45_vox_fname1, 'r')
fips_45_vox = np.array(fips_45_vox_fname.get('950_grain_data'))
fips_90_vox_fname = h5py.File(fips_90_vox_fname1, 'r')
fips_90_vox = np.array(fips_90_vox_fname.get('7500_grain_data'))
fips_160_vox_fname = h5py.File(fips_160_vox_fname1, 'r')
fips_160_vox = np.array(fips_160_vox_fname.get('41000_grain_data'))
fips_200_vox_fname = h5py.File(fips_200_vox_fname1, 'r')
fips_200_vox = np.array(fips_200_vox_fname.get('80000_grain_data'))
fips_250_vox_fname = h5py.File(fips_250_vox_fname1, 'r')
fips_250_vox = np.array(fips_250_vox_fname.get('160000_grain_data'))
For the data sets read using the code above, the first index corresponds to instantiation/microstructure model number. The second index corresponds to the maximum FIP at each element [0], the maximum sub-band volume-averaged FIP of the grain to which the element belongs [1], or the grain ID [2]. The third index corresponds to each element. The elements index first in the x, then y, then z. For example:
fips_90_vox[0,0,:] --> Corresponds to the maximum FIP at every element for the first of 200 instantiations with 90 * 90 * 90 elements (Microstructure model C), whereas
fips_90_vox[0,1,:] --> contains the highest volume-averaged FIP computed for a grain written at the position of each element that comprises that grain.
fips_90_vox[0,2,:] --> contains the grain ID for this element.
****************************************** UPDATE ON 10/27/23 BY KRZYSZTOF STOPKA ******************************************
This update is meant to clear up confusion with regard to the structure of the available data. As mentioned above, the FIP data set available here also includes the FIPs from our previous publication in Acta Materialia (as mentioned in bullet #2 above). However, the raw microstructure models associated with these FIPs are NOT included in the data set as part of bullet #1 above. The notes below explain this in detail:
'30_voxels_per_side_200_samples_275_avg_num_grains.hdf5' --> All 200 models that were used to calculate these FIPs are available in the tar.gz file.
'45_voxels_per_side_200_samples_950_avg_num_grains.hdf5' --> All 200 models that were used to calculate these FIPs are available in the tar.gz file.
'90_voxels_per_side_200_samples_7500_avg_num_grains.hdf5' --> This data set contains FIPs for 200 models. However, 22 of these models were generated in our previous publication in Acta Materialia, whereas the other 178 were generated as part of this work (see manuscript referenced at the bottom of this page). AN IMPORTANT NOTE: The first 22 sets of FIPs in this file correspond to the models from our previous work in Acta Materialia. The NEXT 22 sets of FIPs correspond to the models of corresponding size in the "Repeat_of_Acta_Mater_manuscript.tar.gz" file. Finally, the last 156 sets of FIPs correspond to the models in the file "90_cubed_x_156_models.gz". To reiterate:
fips_90_vox[0,0,:] thru fips_90_vox[21,0,:] --> Corresponds to the 22 models of size 90 x 90 x 90 from the previous Acta Materialia manuscript, which are NOT available in the tar.gz files above (available at https://doi.org/10.13011/m3-31wm-h036).
fips_90_vox[22,0,:] thru fips_90_vox[43,0,:] --> Corresponds to the 22 models of size 90 x 90 x 90 models in the "Repeat_of_Acta_Mater_manuscript.tar.gz" file
fips_90_vox[44,0,:] thru fips_90_vox[199,0,:] --> Corresponds to the 150 models of size 90 x 90 x 90 in the "90_cubed_x_156_models.gz" file.
#############
Similarly:
fips_160_vox[0,0,:] thru fips_160_vox[3,0,:] --> Corresponds to the 4 models of size 160 x 160 x 160 from the previous Acta Materialia manuscript, which are NOT available in the tar.gz files above
fips_160_vox[4,0,:] thru fips_160_vox[7,0,:] --> Corresponds to the 4 models of size 160 x 160 x 160 in the "Repeat_of_Acta_Mater_manuscript.tar.gz" file
fips_160_vox[8,0,:] thru fips_160_vox[99,0,:] --> Corresponds to the 92 models of size 160 x 160 x 160 in the "160_cubed_x_92_models.tar.gz" file.
#############
fips_200_vox[0,0,:] thru fips_200_vox[1,0,:] --> Corresponds to the 2 models of size 200 x 200 x 200 from the previous Acta Materialia manuscript, which are NOT available in the tar.gz files above
fips_200_vox[2,0,:] thru fips_200_vox[3,0,:] --> Corresponds to the 2 models of size 200 x 200 x 200 in the "Repeat_of_Acta_Mater_manuscript.tar.gz" file
#############
fips_250_vox[0,0,:] --> Corresponds to the 1 model of size 250 x 250 x 250 from the previous Acta Materialia manuscript, which is NOT available in the tar.gz files above
fips_250_vox[1,0,:] --> Corresponds to the 1 model of size 250 x 250 x 250 in the "Repeat_of_Acta_Mater_manuscript.tar.gz" file
#############
An easy way to make sure you are handling the CORRECT FIP data set (i.e., to make sure you know which FIP data sets corresponds to which model): you can determine the number of grains in each FIP data set using the Python command 'np.max(fips_160_vox[num_model,0,:]))', where num_model is the index of the model number. Then, match the number of grains to the "FeatureData_FakeMatl_#.csv" file for each model.