write orientation as plain array, not derived type
This commit is contained in:
parent
171d642dbd
commit
000de75617
|
@ -46,7 +46,7 @@ class Result:
|
||||||
self.version_major = f.attrs['DADF5_version_major']
|
self.version_major = f.attrs['DADF5_version_major']
|
||||||
self.version_minor = f.attrs['DADF5_version_minor']
|
self.version_minor = f.attrs['DADF5_version_minor']
|
||||||
|
|
||||||
if self.version_major != 0 or not 7 <= self.version_minor <= 10:
|
if self.version_major != 0 or not 7 <= self.version_minor <= 11:
|
||||||
raise TypeError(f'Unsupported DADF5 version {self.version_major}.{self.version_minor}')
|
raise TypeError(f'Unsupported DADF5 version {self.version_major}.{self.version_minor}')
|
||||||
|
|
||||||
self.structured = 'grid' in f['geometry'].attrs.keys() or \
|
self.structured = 'grid' in f['geometry'].attrs.keys() or \
|
||||||
|
@ -790,7 +790,10 @@ class Result:
|
||||||
lattice = {'fcc':'cF','bcc':'cI','hex':'hP'}[q['meta']['Lattice']]
|
lattice = {'fcc':'cF','bcc':'cI','hex':'hP'}[q['meta']['Lattice']]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
lattice = q['meta']['Lattice']
|
lattice = q['meta']['Lattice']
|
||||||
o = Orientation(rotation = (rfn.structured_to_unstructured(q['data'])),lattice=lattice)
|
try:
|
||||||
|
o = Orientation(rotation = (rfn.structured_to_unstructured(q['data'])),lattice=lattice)
|
||||||
|
except ValueError:
|
||||||
|
o = Orientation(rotation = q['data'],lattice=lattice)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'data': np.uint8(o.IPF_color(l)*255),
|
'data': np.uint8(o.IPF_color(l)*255),
|
||||||
|
|
|
@ -734,9 +734,9 @@ end function crystallite_push33ToRef
|
||||||
subroutine crystallite_results
|
subroutine crystallite_results
|
||||||
|
|
||||||
integer :: p,o
|
integer :: p,o
|
||||||
real(pReal), allocatable, dimension(:,:,:) :: selected_tensors
|
real(pReal), allocatable, dimension(:,:,:) :: selected_tensors
|
||||||
type(rotation), allocatable, dimension(:) :: selected_rotations
|
real(pReal), allocatable, dimension(:,:) :: selected_rotations
|
||||||
character(len=:), allocatable :: group,structureLabel
|
character(len=:), allocatable :: group,structureLabel
|
||||||
|
|
||||||
do p=1,size(material_name_phase)
|
do p=1,size(material_name_phase)
|
||||||
group = trim('current/phase')//'/'//trim(material_name_phase(p))//'/mechanics'
|
group = trim('current/phase')//'/'//trim(material_name_phase(p))//'/mechanics'
|
||||||
|
@ -794,7 +794,8 @@ subroutine crystallite_results
|
||||||
end select
|
end select
|
||||||
selected_rotations = select_rotations(crystallite_orientation,p)
|
selected_rotations = select_rotations(crystallite_orientation,p)
|
||||||
call results_writeDataset(group,selected_rotations,output_constituent(p)%label(o),&
|
call results_writeDataset(group,selected_rotations,output_constituent(p)%label(o),&
|
||||||
'crystal orientation as quaternion',structureLabel)
|
'crystal orientation as quaternion')
|
||||||
|
call results_addAttribute('Lattice',structureLabel,group//'/'//output_constituent(p)%label(o))
|
||||||
end select
|
end select
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
@ -835,10 +836,10 @@ subroutine crystallite_results
|
||||||
|
|
||||||
integer, intent(in) :: instance
|
integer, intent(in) :: instance
|
||||||
type(rotation), dimension(:,:,:), intent(in) :: dataset
|
type(rotation), dimension(:,:,:), intent(in) :: dataset
|
||||||
type(rotation), allocatable, dimension(:) :: select_rotations
|
real(pReal), allocatable, dimension(:,:) :: select_rotations
|
||||||
integer :: e,i,c,j
|
integer :: e,i,c,j
|
||||||
|
|
||||||
allocate(select_rotations(count(material_phaseAt==instance)*homogenization_maxNconstituents*discretization_nIPs))
|
allocate(select_rotations(4,count(material_phaseAt==instance)*homogenization_maxNconstituents*discretization_nIPs))
|
||||||
|
|
||||||
j=0
|
j=0
|
||||||
do e = 1, size(material_phaseAt,2)
|
do e = 1, size(material_phaseAt,2)
|
||||||
|
@ -846,7 +847,7 @@ subroutine crystallite_results
|
||||||
do c = 1, size(material_phaseAt,1) !ToDo: this needs to be changed for varying Ngrains
|
do c = 1, size(material_phaseAt,1) !ToDo: this needs to be changed for varying Ngrains
|
||||||
if (material_phaseAt(c,e) == instance) then
|
if (material_phaseAt(c,e) == instance) then
|
||||||
j = j + 1
|
j = j + 1
|
||||||
select_rotations(j) = dataset(c,i,e)
|
select_rotations(1:4,j) = dataset(c,i,e)%asQuaternion()
|
||||||
endif
|
endif
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
|
|
@ -74,7 +74,7 @@ subroutine results_init(restart)
|
||||||
if(.not. restart) then
|
if(.not. restart) then
|
||||||
resultsFile = HDF5_openFile(trim(getSolverJobName())//'.hdf5','w',.true.)
|
resultsFile = HDF5_openFile(trim(getSolverJobName())//'.hdf5','w',.true.)
|
||||||
call results_addAttribute('DADF5_version_major',0)
|
call results_addAttribute('DADF5_version_major',0)
|
||||||
call results_addAttribute('DADF5_version_minor',10)
|
call results_addAttribute('DADF5_version_minor',11)
|
||||||
call results_addAttribute('DAMASK_version',DAMASKVERSION)
|
call results_addAttribute('DAMASK_version',DAMASKVERSION)
|
||||||
call get_command(commandLine)
|
call get_command(commandLine)
|
||||||
call results_addAttribute('Call',trim(commandLine))
|
call results_addAttribute('Call',trim(commandLine))
|
||||||
|
|
Loading…
Reference in New Issue