cleavage systems should reflect lattice symmetry

also {100} cleavage planes need investigation
This commit is contained in:
Martin Diehl 2020-02-26 19:11:33 +01:00
parent c9b9c9103b
commit 4c17963cd6
1 changed files with 13 additions and 45 deletions

View File

@ -39,8 +39,8 @@ module lattice
integer, dimension(1), parameter :: & integer, dimension(1), parameter :: &
LATTICE_FCC_NTRANSSYSTEM = [12] !< # of transformation systems per family for fcc LATTICE_FCC_NTRANSSYSTEM = [12] !< # of transformation systems per family for fcc
integer, dimension(2), parameter :: & integer, dimension(1), parameter :: &
LATTICE_FCC_NCLEAVAGESYSTEM = [3, 4] !< # of cleavage systems per family for fcc LATTICE_FCC_NCLEAVAGESYSTEM = [3] !< # of cleavage systems per family for fcc
integer, parameter :: & integer, parameter :: &
#ifndef __PGI #ifndef __PGI
@ -52,7 +52,7 @@ module lattice
LATTICE_FCC_NSLIP = 18, & LATTICE_FCC_NSLIP = 18, &
LATTICE_FCC_NTWIN = 12, & LATTICE_FCC_NTWIN = 12, &
LATTICE_FCC_NTRANS = 12, & LATTICE_FCC_NTRANS = 12, &
LATTICE_FCC_NCLEAVAGE = 7 LATTICE_FCC_NCLEAVAGE = 3
#endif #endif
real(pReal), dimension(3+3,LATTICE_FCC_NSLIP), parameter :: & real(pReal), dimension(3+3,LATTICE_FCC_NSLIP), parameter :: &
@ -116,11 +116,7 @@ module lattice
! Cleavage direction Plane normal ! Cleavage direction Plane normal
0, 1, 0, 1, 0, 0, & 0, 1, 0, 1, 0, 0, &
0, 0, 1, 0, 1, 0, & 0, 0, 1, 0, 1, 0, &
1, 0, 0, 0, 0, 1, & 1, 0, 0, 0, 0, 1 &
0, 1,-1, 1, 1, 1, &
0,-1,-1, -1,-1, 1, &
-1, 0,-1, 1,-1,-1, &
0, 1, 1, -1, 1,-1 &
],pReal),shape(LATTICE_FCC_SYSTEMCLEAVAGE)) ],pReal),shape(LATTICE_FCC_SYSTEMCLEAVAGE))
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
@ -131,8 +127,8 @@ module lattice
integer, dimension(1), parameter :: & integer, dimension(1), parameter :: &
LATTICE_BCC_NTWINSYSTEM = [12] !< # of twin systems per family for bcc LATTICE_BCC_NTWINSYSTEM = [12] !< # of twin systems per family for bcc
integer, dimension(2), parameter :: & integer, dimension(1), parameter :: &
LATTICE_BCC_NCLEAVAGESYSTEM = [3, 6] !< # of cleavage systems per family for bcc LATTICE_BCC_NCLEAVAGESYSTEM = [3] !< # of cleavage systems per family for bcc
integer, parameter :: & integer, parameter :: &
#ifndef __PGI #ifndef __PGI
@ -142,7 +138,7 @@ module lattice
#else #else
LATTICE_BCC_NSLIP = 24, & LATTICE_BCC_NSLIP = 24, &
LATTICE_BCC_NTWIN = 12, & LATTICE_BCC_NTWIN = 12, &
LATTICE_BCC_NCLEAVAGE = 9 LATTICE_BCC_NCLEAVAGE = 3
#endif #endif
real(pReal), dimension(3+3,LATTICE_BCC_NSLIP), parameter :: & real(pReal), dimension(3+3,LATTICE_BCC_NSLIP), parameter :: &
@ -198,13 +194,7 @@ module lattice
! Cleavage direction Plane normal ! Cleavage direction Plane normal
0, 1, 0, 1, 0, 0, & 0, 1, 0, 1, 0, 0, &
0, 0, 1, 0, 1, 0, & 0, 0, 1, 0, 1, 0, &
1, 0, 0, 0, 0, 1, & 1, 0, 0, 0, 0, 1 &
1,-1, 1, 0, 1, 1, &
1, 1, 1, 0,-1, 1, &
-1, 1, 1, 1, 0, 1, &
1, 1, 1, -1, 0, 1, &
-1, 1, 1, 1, 1, 0, &
1, 1, 1, -1, 1, 0 &
],pReal),shape(LATTICE_BCC_SYSTEMCLEAVAGE)) ],pReal),shape(LATTICE_BCC_SYSTEMCLEAVAGE))
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
@ -215,18 +205,13 @@ module lattice
integer, dimension(4), parameter :: & integer, dimension(4), parameter :: &
LATTICE_HEX_NTWINSYSTEM = [6, 6, 6, 6] !< # of slip systems per family for hex LATTICE_HEX_NTWINSYSTEM = [6, 6, 6, 6] !< # of slip systems per family for hex
integer, dimension(1), parameter :: &
LATTICE_HEX_NCLEAVAGESYSTEM = [3] !< # of cleavage systems per family for hex
integer, parameter :: & integer, parameter :: &
#ifndef __PGI #ifndef __PGI
LATTICE_HEX_NSLIP = sum(LATTICE_HEX_NSLIPSYSTEM), & !< total # of slip systems for hex LATTICE_HEX_NSLIP = sum(LATTICE_HEX_NSLIPSYSTEM), & !< total # of slip systems for hex
LATTICE_HEX_NTWIN = sum(LATTICE_HEX_NTWINSYSTEM), & !< total # of twin systems for hex LATTICE_HEX_NTWIN = sum(LATTICE_HEX_NTWINSYSTEM) !< total # of twin systems for hex
LATTICE_HEX_NCLEAVAGE = sum(LATTICE_HEX_NCLEAVAGESYSTEM) !< total # of cleavage systems for hex
#else #else
LATTICE_HEX_NSLIP = 33, & LATTICE_HEX_NSLIP = 33, &
LATTICE_HEX_NTWIN = 24, & LATTICE_HEX_NTWIN = 24
LATTICE_HEX_NCLEAVAGE = 3
#endif #endif
real(pReal), dimension(4+4,LATTICE_HEX_NSLIP), parameter :: & real(pReal), dimension(4+4,LATTICE_HEX_NSLIP), parameter :: &
@ -305,14 +290,6 @@ module lattice
2, -1, -1, -3, 2, -1, -1, 2 & 2, -1, -1, -3, 2, -1, -1, 2 &
],pReal),shape(LATTICE_HEX_SYSTEMTWIN)) !< twin systems for hex, sorted by P. Eisenlohr CCW around <c> starting next to a_1 axis ],pReal),shape(LATTICE_HEX_SYSTEMTWIN)) !< twin systems for hex, sorted by P. Eisenlohr CCW around <c> starting next to a_1 axis
real(pReal), dimension(4+4,LATTICE_HEX_NCLEAVAGE), parameter :: &
LATTICE_HEX_SYSTEMCLEAVAGE = reshape(real([&
! Cleavage direction Plane normal
2,-1,-1, 0, 0, 0, 0, 1, &
0, 0, 0, 1, 2,-1,-1, 0, &
0, 0, 0, 1, 0, 1,-1, 0 &
],pReal),shape(LATTICE_HEX_SYSTEMCLEAVAGE))
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
! body centered tetragonal ! body centered tetragonal
@ -421,8 +398,7 @@ module lattice
! BEGIN DEPRECATED ! BEGIN DEPRECATED
integer, parameter, public :: & integer, parameter, public :: &
LATTICE_maxNcleavage = max(LATTICE_fcc_Ncleavage,LATTICE_bcc_Ncleavage, & LATTICE_maxNcleavage = max(LATTICE_fcc_Ncleavage,LATTICE_bcc_Ncleavage,LATTICE_ort_Ncleavage)
LATTICE_hex_Ncleavage,LATTICE_ort_Ncleavage)
! END DEPRECATED ! END DEPRECATED
real(pReal), dimension(:,:,:), allocatable, public, protected :: & real(pReal), dimension(:,:,:), allocatable, public, protected :: &
@ -631,20 +607,15 @@ subroutine initializeStructure(myPhase,CoverA)
select case(lattice_structure(myPhase)) select case(lattice_structure(myPhase))
case (LATTICE_fcc_ID) case (LATTICE_fcc_ID)
lattice_NcleavageSystem(1:2,myPhase) = lattice_fcc_NcleavageSystem lattice_NcleavageSystem(1:1,myPhase) = lattice_fcc_NcleavageSystem
lattice_Scleavage(1:3,1:3,1:3,1:lattice_fcc_Ncleavage,myPhase) = & lattice_Scleavage(1:3,1:3,1:3,1:lattice_fcc_Ncleavage,myPhase) = &
lattice_SchmidMatrix_cleavage(lattice_fcc_ncleavageSystem,'fcc',covera) lattice_SchmidMatrix_cleavage(lattice_fcc_ncleavageSystem,'fcc',covera)
case (LATTICE_bcc_ID) case (LATTICE_bcc_ID)
lattice_NcleavageSystem(1:2,myPhase) = lattice_bcc_NcleavageSystem lattice_NcleavageSystem(1:1,myPhase) = lattice_bcc_NcleavageSystem
lattice_Scleavage(1:3,1:3,1:3,1:lattice_bcc_Ncleavage,myPhase) = & lattice_Scleavage(1:3,1:3,1:3,1:lattice_bcc_Ncleavage,myPhase) = &
lattice_SchmidMatrix_cleavage(lattice_bcc_ncleavagesystem,'bcc',covera) lattice_SchmidMatrix_cleavage(lattice_bcc_ncleavagesystem,'bcc',covera)
case (LATTICE_hex_ID)
lattice_NcleavageSystem(1:1,myPhase) = lattice_hex_NcleavageSystem
lattice_Scleavage(1:3,1:3,1:3,1:lattice_hex_Ncleavage,myPhase) = &
lattice_SchmidMatrix_cleavage(lattice_hex_ncleavagesystem,'hex',covera)
case (LATTICE_ort_ID) case (LATTICE_ort_ID)
lattice_NcleavageSystem(1:3,myPhase) = lattice_ort_NcleavageSystem lattice_NcleavageSystem(1:3,myPhase) = lattice_ort_NcleavageSystem
lattice_Scleavage(1:3,1:3,1:3,1:lattice_ort_Ncleavage,myPhase) = & lattice_Scleavage(1:3,1:3,1:3,1:lattice_ort_Ncleavage,myPhase) = &
@ -1684,9 +1655,6 @@ function lattice_SchmidMatrix_cleavage(Ncleavage,structure,cOverA) result(Schmid
case('bcc') case('bcc')
NcleavageMax = LATTICE_BCC_NCLEAVAGESYSTEM NcleavageMax = LATTICE_BCC_NCLEAVAGESYSTEM
cleavageSystems = LATTICE_BCC_SYSTEMCLEAVAGE cleavageSystems = LATTICE_BCC_SYSTEMCLEAVAGE
case('hex')
NcleavageMax = LATTICE_HEX_NCLEAVAGESYSTEM
cleavageSystems = LATTICE_HEX_SYSTEMCLEAVAGE
case default case default
call IO_error(137,ext_msg='lattice_SchmidMatrix_cleavage: '//trim(structure)) call IO_error(137,ext_msg='lattice_SchmidMatrix_cleavage: '//trim(structure))
end select end select