polishing

This commit is contained in:
Vitesh Shah 2023-11-10 12:37:41 +01:00
parent 562e2ea932
commit 56a9dd843c
3 changed files with 109 additions and 98 deletions

View File

@ -1986,7 +1986,7 @@ class Result:
h5py._hl.attrs.AttributeManager = AttributeManagerNullterm # 'Monkey patch' h5py._hl.attrs.AttributeManager = AttributeManagerNullterm # 'Monkey patch'
N_digits = int(np.floor(np.log10(max(1,self.incs[-1]))))+1 N_digits = int(np.floor(np.log10(max(1,self.incs[-1]))))+1
Crystal_structure_types = {'Hexagonal': 0, 'Cubic': 1, 'Triclinic': 4, 'Monoclinic': 5, 'Orthorhombic': 6, 'Tetrogonal': 8} Crystal_structure_types = {'Hexagonal': 0, 'Cubic': 1, 'Triclinic': 4, 'Monoclinic': 5, 'Orthorhombic': 6, 'Tetrogonal': 8}
Phase_types = {'Primary': 0} Phase_types = {'Primary': 0}
lattice_dict = {} lattice_dict = {}
@ -2020,7 +2020,7 @@ class Result:
phase_ID_array[at_cell_ph[c][label]] = count + 1 phase_ID_array[at_cell_ph[c][label]] = count + 1
job_file_no_ext = self.fname.stem job_file_no_ext = self.fname.stem
o = h5py.File(f'{dream_dir}/{job_file_no_ext}_{inc.split(prefix_inc)[-1].zfill(N_digits)}.dream3d','w') o = h5py.File(f'{dream_dir}/{job_file_no_ext}_inc{inc.split(prefix_inc)[-1].zfill(N_digits)}.dream3d','w')
o.attrs['DADF5toDREAM3D'] = '1.0' o.attrs['DADF5toDREAM3D'] = '1.0'
o.attrs['FileVersion'] = '7.0' o.attrs['FileVersion'] = '7.0'
@ -2063,15 +2063,21 @@ class Result:
# Data CrystalStructures # Data CrystalStructures
crystal_structure_list = [999] crystal_structure_list = [999]
for label in self.visible['phases']: for label in self.visible['phases']:
if lattice_dict[label] in ['hP']: if lattice_dict[label] in ['hP']:
crystal_structure = 'Hexogonal' crystal_structure = 'Hexagonal'
elif lattice_dict[label] in ['cP','cI','cF']: elif lattice_dict[label] in ['cP','cI','cF']:
crystal_structure = 'Cubic' crystal_structure = 'Cubic'
elif lattice_dict[label] in ['']: elif lattice_dict[label] in ['aP']:
crystal_structure = 'triclinic'
elif lattice_dict[label] in ['mP','mS']:
crystal_structure = 'monoclinic'
elif lattice_dict[label] in ['oP','oS','oI','oF']: elif lattice_dict[label] in ['oP','oS','oI','oF']:
crystal_structure = 'Orthorhombic' crystal_structure = 'Orthorhombic'
elif lattice_dict[label] in ['tP','tI']:
crystal_structure = 'tetragonal'
crystal_structure_list.append(Crystal_structure_types[crystal_structure]) crystal_structure_list.append(Crystal_structure_types[crystal_structure])
o[ensemble_label + '/CrystalStructures'] = np.uint32(crystal_struture_list) o[ensemble_label + '/CrystalStructures'] = np.uint32(crystal_structure_list)
# but need to look into dream3d which crystal structure corresponds to which number # but need to look into dream3d which crystal structure corresponds to which number
o[ensemble_label + '/PhaseTypes'] = np.uint32(np.array([999] + [Phase_types['Primary']]*len(self.phases)))\ o[ensemble_label + '/PhaseTypes'] = np.uint32(np.array([999] + [Phase_types['Primary']]*len(self.phases)))\
.reshape((len(self.phases)+1,1)) .reshape((len(self.phases)+1,1))

View File

@ -24,99 +24,99 @@ phase:
xi_inf_sl: [63.e+6] xi_inf_sl: [63.e+6]
Precipitate: Precipitate:
lattice: hP lattice: hP
c/a: 1.629 c/a: 1.629
mechanical: mechanical:
output: [F, P, F_e, F_p, L_p, O] output: [F, P, F_e, F_p, L_p, O]
elastic: {type: Hooke, C_11: 162.4e9, C_12: 92.0e9, C_13: 69.0e9, C_33: 180.7e9, C_44: 49.7e9} elastic: {type: Hooke, C_11: 162.4e9, C_12: 92.0e9, C_13: 69.0e9, C_33: 180.7e9, C_44: 49.7e9}
material: material:
- constituents: - constituents:
- phase: Aluminum - phase: Aluminum
O: [0.1312565298463503, -0.6783546785504293, -0.5822736006738253, 0.4284438206110302] O: [0.1312565298463503, -0.6783546785504293, -0.5822736006738253, 0.4284438206110302]
v: 1.0 v: 1.0
homogenization: SX homogenization: SX
- constituents: - constituents:
- phase: Aluminum - phase: Aluminum
O: [0.3891991356899201, 0.024147743013653567, 0.3536664846442759, -0.8502122893283336] O: [0.3891991356899201, 0.024147743013653567, 0.3536664846442759, -0.8502122893283336]
v: 1.0 v: 1.0
homogenization: SX homogenization: SX
- constituents: - constituents:
- phase: Aluminum - phase: Aluminum
O: [0.35508306685640884, -0.3893349018602677, -0.8446679875041884, 0.09418248622184058] O: [0.35508306685640884, -0.3893349018602677, -0.8446679875041884, 0.09418248622184058]
v: 1.0 v: 1.0
homogenization: SX homogenization: SX
- constituents: - constituents:
- phase: Aluminum - phase: Aluminum
O: [0.40195601820142496, -0.1636779350134876, -0.4207744499665131, 0.7966114205035945] O: [0.40195601820142496, -0.1636779350134876, -0.4207744499665131, 0.7966114205035945]
v: 1.0 v: 1.0
homogenization: SX homogenization: SX
- constituents: - constituents:
- phase: Aluminum - phase: Aluminum
O: [0.044972436776441485, 0.7143848123638518, -0.24549539260737738, -0.6537307029678221] O: [0.044972436776441485, 0.7143848123638518, -0.24549539260737738, -0.6537307029678221]
v: 1.0 v: 1.0
homogenization: SX homogenization: SX
- constituents: - constituents:
- phase: Precipitate - phase: Precipitate
O: [0.30372565221929093, -0.24301975423298977, -0.8125481043098195, -0.43411715632882125] O: [0.30372565221929093, -0.24301975423298977, -0.8125481043098195, -0.43411715632882125]
v: 1.0 v: 1.0
homogenization: SX homogenization: SX
- constituents: - constituents:
- phase: Precipitate - phase: Precipitate
O: [0.4596497204333957, -0.39026498957046113, 0.7976125696376123, 0.015151276419962625] O: [0.4596497204333957, -0.39026498957046113, 0.7976125696376123, 0.015151276419962625]
v: 1.0 v: 1.0
homogenization: SX homogenization: SX
- constituents: - constituents:
- phase: Aluminum - phase: Aluminum
O: [0.0827510723946788, 0.6317627669782209, 0.4175514636120652, -0.6478262433036925] O: [0.0827510723946788, 0.6317627669782209, 0.4175514636120652, -0.6478262433036925]
v: 1.0 v: 1.0
homogenization: SX homogenization: SX
- constituents: - constituents:
- phase: Aluminum - phase: Aluminum
O: [0.2996310655335684, 0.10384972751072818, 0.8974007140905373, 0.3067709520358135] O: [0.2996310655335684, 0.10384972751072818, 0.8974007140905373, 0.3067709520358135]
v: 1.0 v: 1.0
homogenization: SX homogenization: SX
- constituents: - constituents:
- phase: Aluminum - phase: Aluminum
O: [0.6358670871419496, 0.4180753134572028, -0.5146965710042285, -0.3949348295146467] O: [0.6358670871419496, 0.4180753134572028, -0.5146965710042285, -0.3949348295146467]
v: 1.0 v: 1.0
homogenization: SX homogenization: SX
- constituents: - constituents:
- phase: Aluminum - phase: Aluminum
O: [0.6972058990579978, 0.2748121746094387, -0.4615030442772494, 0.4747600900749678] O: [0.6972058990579978, 0.2748121746094387, -0.4615030442772494, 0.4747600900749678]
v: 1.0 v: 1.0
homogenization: SX homogenization: SX
- constituents: - constituents:
- phase: Aluminum - phase: Aluminum
O: [0.023323490584044985, -0.4124930466803271, 0.5037800801437966, 0.7586245000510248] O: [0.023323490584044985, -0.4124930466803271, 0.5037800801437966, 0.7586245000510248]
v: 1.0 v: 1.0
homogenization: SX homogenization: SX
- constituents: - constituents:
- phase: Aluminum - phase: Aluminum
O: [0.5327908616905777, 0.17796155315964704, 0.602711877421405, -0.5667468359957407] O: [0.5327908616905777, 0.17796155315964704, 0.602711877421405, -0.5667468359957407]
v: 1.0 v: 1.0
homogenization: SX homogenization: SX
- constituents: - constituents:
- phase: Aluminum - phase: Aluminum
O: [0.5031041456929413, -0.4763268942553399, 0.6700266228868177, 0.2665768801275235] O: [0.5031041456929413, -0.4763268942553399, 0.6700266228868177, 0.2665768801275235]
v: 1.0 v: 1.0
homogenization: SX homogenization: SX
- constituents: - constituents:
- phase: Precipitate - phase: Precipitate
O: [0.5641709021797874, 0.6941319122105223, -0.0813139963653807, -0.4396363446983193] O: [0.5641709021797874, 0.6941319122105223, -0.0813139963653807, -0.4396363446983193]
v: 1.0 v: 1.0
homogenization: SX homogenization: SX
- constituents: - constituents:
- phase: Aluminum - phase: Aluminum
O: [0.40014270416551667, 0.38360239122229783, -0.040760057321212455, 0.8313083901169376] O: [0.40014270416551667, 0.38360239122229783, -0.040760057321212455, 0.8313083901169376]
v: 1.0 v: 1.0
homogenization: SX homogenization: SX
- constituents: - constituents:
- phase: Precipitate - phase: Precipitate
O: [0.25941430307519847, -0.7938792882664125, -0.20362736335049575, -0.510877472508378] O: [0.25941430307519847, -0.7938792882664125, -0.20362736335049575, -0.510877472508378]
v: 1.0 v: 1.0
homogenization: SX homogenization: SX
- constituents: - constituents:
- phase: Precipitate - phase: Precipitate
O: [0.3297509101153507, 0.7826199404802652, 0.20188018251173903, -0.4878675618954298] O: [0.3297509101153507, 0.7826199404802652, 0.20188018251173903, -0.4878675618954298]
v: 1.0 v: 1.0
homogenization: SX homogenization: SX

View File

@ -440,11 +440,16 @@ class TestResult:
@pytest.mark.parametrize('fname',['2phase_irregularGrid_tensionX.hdf5'],ids=range(1)) @pytest.mark.parametrize('fname',['2phase_irregularGrid_tensionX.hdf5'],ids=range(1))
def test_export_DREAM3D(self,tmp_path,res_path,fname): def test_export_DREAM3D(self,tmp_path,res_path,fname):
result = Result(res_path/fname).view(increments=0) #comparing the initial data only result = Result(res_path/fname).view(increments=0) #comparing the initial data only
prefix_inc = 'increment_'
N_digits = int(np.floor(np.log10(max(1,result.incs[-1]))))+1
inc = result.increments[0]
result.export_DREAM3D(target_dir=tmp_path) result.export_DREAM3D(target_dir=tmp_path)
ref_file = h5py.File(res_path/'2phase_irregularGrid.dream3d','r') ref_file = h5py.File(res_path/'2phase_irregularGrid.dream3d','r')
job_file_no_ext = result.fname.stem job_file_no_ext = result.fname.stem
results_file = h5py.File(tmp_path/f'{job_file_no_ext}_increment_0.dream3d','r') results_file = h5py.File(tmp_path/f'{job_file_no_ext}_inc{inc.split(prefix_inc)[-1].zfill(N_digits)}.dream3d','r')
error_messages = [] error_messages = []
@ -472,7 +477,7 @@ class TestResult:
if not np.array_equal(ref_val,actual_val): if not np.array_equal(ref_val,actual_val):
error_messages.append("Cell Data attributes do not match") error_messages.append("Cell Data attributes do not match")
# Common Attributes for groups in CellData # Common Attributes for datasets in CellData
for dataset in ['/Phases','/EulerAngles']: for dataset in ['/Phases','/EulerAngles']:
for attrs in ['DataArrayVersion','Tuple Axis Dimensions','ComponentDimensions','ObjectType','TupleDimensions']: for attrs in ['DataArrayVersion','Tuple Axis Dimensions','ComponentDimensions','ObjectType','TupleDimensions']:
ref_val = ref_file[cell_data_label + '/' + dataset].attrs[attrs] ref_val = ref_file[cell_data_label + '/' + dataset].attrs[attrs]