including documentation from damask.mpie.de

This commit is contained in:
Martin Diehl 2021-05-09 10:58:43 +02:00
parent 693c2f4e3f
commit c9c8631e7b
1 changed files with 116 additions and 140 deletions

View File

@ -31,21 +31,14 @@ module lattice
FCC_NCLEAVAGESYSTEM = [3] !< # of cleavage systems per family for fcc FCC_NCLEAVAGESYSTEM = [3] !< # of cleavage systems per family for fcc
integer, parameter :: & integer, parameter :: &
#ifndef __PGI
FCC_NSLIP = sum(FCC_NSLIPSYSTEM), & !< total # of slip systems for fcc FCC_NSLIP = sum(FCC_NSLIPSYSTEM), & !< total # of slip systems for fcc
FCC_NTWIN = sum(FCC_NTWINSYSTEM), & !< total # of twin systems for fcc FCC_NTWIN = sum(FCC_NTWINSYSTEM), & !< total # of twin systems for fcc
FCC_NTRANS = sum(FCC_NTRANSSYSTEM), & !< total # of transformation systems for fcc FCC_NTRANS = sum(FCC_NTRANSSYSTEM), & !< total # of transformation systems for fcc
FCC_NCLEAVAGE = sum(FCC_NCLEAVAGESYSTEM) !< total # of cleavage systems for fcc FCC_NCLEAVAGE = sum(FCC_NCLEAVAGESYSTEM) !< total # of cleavage systems for fcc
#else
FCC_NSLIP = 18, &
FCC_NTWIN = 12, &
FCC_NTRANS = 12, &
FCC_NCLEAVAGE = 3
#endif
real(pReal), dimension(3+3,FCC_NSLIP), parameter :: & real(pReal), dimension(3+3,FCC_NSLIP), parameter :: &
FCC_SYSTEMSLIP = reshape(real([& FCC_SYSTEMSLIP = reshape(real([&
! Slip direction Plane normal ! SCHMID-BOAS notation ! <110>{111} systems
0, 1,-1, 1, 1, 1, & ! B2 0, 1,-1, 1, 1, 1, & ! B2
-1, 0, 1, 1, 1, 1, & ! B4 -1, 0, 1, 1, 1, 1, & ! B4
1,-1, 0, 1, 1, 1, & ! B5 1,-1, 0, 1, 1, 1, & ! B5
@ -58,17 +51,18 @@ module lattice
0, 1, 1, -1, 1,-1, & ! D1 0, 1, 1, -1, 1,-1, & ! D1
1, 0,-1, -1, 1,-1, & ! D4 1, 0,-1, -1, 1,-1, & ! D4
-1,-1, 0, -1, 1,-1, & ! D6 -1,-1, 0, -1, 1,-1, & ! D6
! Slip system <110>{110} ! <110>{110}/non-octahedral systems
1, 1, 0, 1,-1, 0, & 1, 1, 0, 1,-1, 0, &
1,-1, 0, 1, 1, 0, & 1,-1, 0, 1, 1, 0, &
1, 0, 1, 1, 0,-1, & 1, 0, 1, 1, 0,-1, &
1, 0,-1, 1, 0, 1, & 1, 0,-1, 1, 0, 1, &
0, 1, 1, 0, 1,-1, & 0, 1, 1, 0, 1,-1, &
0, 1,-1, 0, 1, 1 & 0, 1,-1, 0, 1, 1 &
],pReal),shape(FCC_SYSTEMSLIP)) !< Slip system <110>{111} directions. Sorted according to Eisenlohr & Hantcherli ],pReal),shape(FCC_SYSTEMSLIP)) !< fcc slip systems
real(pReal), dimension(3+3,FCC_NTWIN), parameter :: & real(pReal), dimension(3+3,FCC_NTWIN), parameter :: &
FCC_SYSTEMTWIN = reshape(real( [& FCC_SYSTEMTWIN = reshape(real( [&
! <112>{111} systems
-2, 1, 1, 1, 1, 1, & -2, 1, 1, 1, 1, 1, &
1,-2, 1, 1, 1, 1, & 1,-2, 1, 1, 1, 1, &
1, 1,-2, 1, 1, 1, & 1, 1,-2, 1, 1, 1, &
@ -81,7 +75,7 @@ module lattice
2, 1,-1, -1, 1,-1, & 2, 1,-1, -1, 1,-1, &
-1,-2,-1, -1, 1,-1, & -1,-2,-1, -1, 1,-1, &
-1, 1, 2, -1, 1,-1 & -1, 1, 2, -1, 1,-1 &
],pReal),shape(FCC_SYSTEMTWIN)) !< Twin system <112>{111} directions. Sorted according to Eisenlohr & Hantcherli ],pReal),shape(FCC_SYSTEMTWIN)) !< fcc twin systems
integer, dimension(2,FCC_NTWIN), parameter, public :: & integer, dimension(2,FCC_NTWIN), parameter, public :: &
lattice_FCC_TWINNUCLEATIONSLIPPAIR = reshape( [& lattice_FCC_TWINNUCLEATIONSLIPPAIR = reshape( [&
@ -101,11 +95,11 @@ module lattice
real(pReal), dimension(3+3,FCC_NCLEAVAGE), parameter :: & real(pReal), dimension(3+3,FCC_NCLEAVAGE), parameter :: &
FCC_SYSTEMCLEAVAGE = reshape(real([& FCC_SYSTEMCLEAVAGE = reshape(real([&
! Cleavage direction Plane normal ! <001>{001} systems
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 &
],pReal),shape(FCC_SYSTEMCLEAVAGE)) ],pReal),shape(FCC_SYSTEMCLEAVAGE)) !< fcc cleavage systems
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
! body centered cubic (cI) ! body centered cubic (cI)
@ -119,50 +113,43 @@ module lattice
BCC_NCLEAVAGESYSTEM = [3] !< # of cleavage systems per family for bcc BCC_NCLEAVAGESYSTEM = [3] !< # of cleavage systems per family for bcc
integer, parameter :: & integer, parameter :: &
#ifndef __PGI
BCC_NSLIP = sum(BCC_NSLIPSYSTEM), & !< total # of slip systems for bcc BCC_NSLIP = sum(BCC_NSLIPSYSTEM), & !< total # of slip systems for bcc
BCC_NTWIN = sum(BCC_NTWINSYSTEM), & !< total # of twin systems for bcc BCC_NTWIN = sum(BCC_NTWINSYSTEM), & !< total # of twin systems for bcc
BCC_NCLEAVAGE = sum(BCC_NCLEAVAGESYSTEM) !< total # of cleavage systems for bcc BCC_NCLEAVAGE = sum(BCC_NCLEAVAGESYSTEM) !< total # of cleavage systems for bcc
#else
BCC_NSLIP = 24, &
BCC_NTWIN = 12, &
BCC_NCLEAVAGE = 3
#endif
real(pReal), dimension(3+3,BCC_NSLIP), parameter :: & real(pReal), dimension(3+3,BCC_NSLIP), parameter :: &
BCC_SYSTEMSLIP = reshape(real([& BCC_SYSTEMSLIP = reshape(real([&
! Slip direction Plane normal ! <111>{110} systems
! Slip system <111>{110} 1,-1, 1, 0, 1, 1, & ! D1
1,-1, 1, 0, 1, 1, & !D1 -1,-1, 1, 0, 1, 1, & ! C1
-1,-1, 1, 0, 1, 1, & !C1 1, 1, 1, 0,-1, 1, & ! B2
1, 1, 1, 0,-1, 1, & !B2 -1, 1, 1, 0,-1, 1, & ! A2
-1, 1, 1, 0,-1, 1, & !A2 -1, 1, 1, 1, 0, 1, & ! A3
-1, 1, 1, 1, 0, 1, & !A3 -1,-1, 1, 1, 0, 1, & ! C3
-1,-1, 1, 1, 0, 1, & !C3 1, 1, 1, -1, 0, 1, & ! B4
1, 1, 1, -1, 0, 1, & !B4 1,-1, 1, -1, 0, 1, & ! D4
1,-1, 1, -1, 0, 1, & !D4 -1, 1, 1, 1, 1, 0, & ! A6
-1, 1, 1, 1, 1, 0, & !A6 -1, 1,-1, 1, 1, 0, & ! D6
-1, 1,-1, 1, 1, 0, & !D6 1, 1, 1, -1, 1, 0, & ! B5
1, 1, 1, -1, 1, 0, & !B5 1, 1,-1, -1, 1, 0, & ! C5
1, 1,-1, -1, 1, 0, & !C5 ! <111>{112} systems
! Slip system <111>{112} -1, 1, 1, 2, 1, 1, & ! A-4
-1, 1, 1, 2, 1, 1, & !A-4 1, 1, 1, -2, 1, 1, & ! B-3
1, 1, 1, -2, 1, 1, & !B-3 1, 1,-1, 2,-1, 1, & ! C-10
1, 1,-1, 2,-1, 1, & !C-10 1,-1, 1, 2, 1,-1, & ! D-9
1,-1, 1, 2, 1,-1, & !D-9 1,-1, 1, 1, 2, 1, & ! D-6
1,-1, 1, 1, 2, 1, & !D-6 1, 1,-1, -1, 2, 1, & ! C-5
1, 1,-1, -1, 2, 1, & !C-5 1, 1, 1, 1,-2, 1, & ! B-12
1, 1, 1, 1,-2, 1, & !B-12 -1, 1, 1, 1, 2,-1, & ! A-11
-1, 1, 1, 1, 2,-1, & !A-11 1, 1,-1, 1, 1, 2, & ! C-2
1, 1,-1, 1, 1, 2, & !C-2 1,-1, 1, -1, 1, 2, & ! D-1
1,-1, 1, -1, 1, 2, & !D-1 -1, 1, 1, 1,-1, 2, & ! A-8
-1, 1, 1, 1,-1, 2, & !A-8 1, 1, 1, 1, 1,-2 & ! B-7
1, 1, 1, 1, 1,-2 & !B-7 ],pReal),shape(BCC_SYSTEMSLIP)) !< bcc slip systems
],pReal),shape(BCC_SYSTEMSLIP))
real(pReal), dimension(3+3,BCC_NTWIN), parameter :: & real(pReal), dimension(3+3,BCC_NTWIN), parameter :: &
BCC_SYSTEMTWIN = reshape(real([& BCC_SYSTEMTWIN = reshape(real([&
! Twin system <111>{112} ! <111>{112} systems
-1, 1, 1, 2, 1, 1, & -1, 1, 1, 2, 1, 1, &
1, 1, 1, -2, 1, 1, & 1, 1, 1, -2, 1, 1, &
1, 1,-1, 2,-1, 1, & 1, 1,-1, 2,-1, 1, &
@ -175,15 +162,15 @@ module lattice
1,-1, 1, -1, 1, 2, & 1,-1, 1, -1, 1, 2, &
-1, 1, 1, 1,-1, 2, & -1, 1, 1, 1,-1, 2, &
1, 1, 1, 1, 1,-2 & 1, 1, 1, 1, 1,-2 &
],pReal),shape(BCC_SYSTEMTWIN)) ],pReal),shape(BCC_SYSTEMTWIN)) !< bcc twin systems
real(pReal), dimension(3+3,BCC_NCLEAVAGE), parameter :: & real(pReal), dimension(3+3,BCC_NCLEAVAGE), parameter :: &
BCC_SYSTEMCLEAVAGE = reshape(real([& BCC_SYSTEMCLEAVAGE = reshape(real([&
! Cleavage direction Plane normal ! <001>{001} systems
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 &
],pReal),shape(BCC_SYSTEMCLEAVAGE)) ],pReal),shape(BCC_SYSTEMCLEAVAGE)) !< bcc cleavage systems
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
! hexagonal (hP) ! hexagonal (hP)
@ -194,37 +181,31 @@ module lattice
HEX_NTWINSYSTEM = [6, 6, 6, 6] !< # of slip systems per family for hex HEX_NTWINSYSTEM = [6, 6, 6, 6] !< # of slip systems per family for hex
integer, parameter :: & integer, parameter :: &
#ifndef __PGI
HEX_NSLIP = sum(HEX_NSLIPSYSTEM), & !< total # of slip systems for hex HEX_NSLIP = sum(HEX_NSLIPSYSTEM), & !< total # of slip systems for hex
HEX_NTWIN = sum(HEX_NTWINSYSTEM) !< total # of twin systems for hex HEX_NTWIN = sum(HEX_NTWINSYSTEM) !< total # of twin systems for hex
#else
HEX_NSLIP = 33, &
HEX_NTWIN = 24
#endif
real(pReal), dimension(4+4,HEX_NSLIP), parameter :: & real(pReal), dimension(4+4,HEX_NSLIP), parameter :: &
HEX_SYSTEMSLIP = reshape(real([& HEX_SYSTEMSLIP = reshape(real([&
! Slip direction Plane normal ! <-1-1.0>{00.1}/basal systems (independent of c/a-ratio)
! Basal systems <-1-1.0>{00.1} (independent of c/a-ratio, Bravais notation (4 coordinate base))
2, -1, -1, 0, 0, 0, 0, 1, & 2, -1, -1, 0, 0, 0, 0, 1, &
-1, 2, -1, 0, 0, 0, 0, 1, & -1, 2, -1, 0, 0, 0, 0, 1, &
-1, -1, 2, 0, 0, 0, 0, 1, & -1, -1, 2, 0, 0, 0, 0, 1, &
! 1st type prismatic systems <-1-1.0>{1-1.0} (independent of c/a-ratio) ! <-1-1.0>{1-1.0}/prismatic systems (independent of c/a-ratio)
2, -1, -1, 0, 0, 1, -1, 0, & 2, -1, -1, 0, 0, 1, -1, 0, &
-1, 2, -1, 0, -1, 0, 1, 0, & -1, 2, -1, 0, -1, 0, 1, 0, &
-1, -1, 2, 0, 1, -1, 0, 0, & -1, -1, 2, 0, 1, -1, 0, 0, &
! 2nd type prismatic systems <-11.0>{11.0} -- a slip; plane normals independent of c/a-ratio ! <-11.0>{11.0}/2nd order prismatic compound systems (plane normal independent of c/a-ratio)
-1, 1, 0, 0, 1, 1, -2, 0, & -1, 1, 0, 0, 1, 1, -2, 0, &
0, -1, 1, 0, -2, 1, 1, 0, & 0, -1, 1, 0, -2, 1, 1, 0, &
1, 0, -1, 0, 1, -2, 1, 0, & 1, 0, -1, 0, 1, -2, 1, 0, &
! 1st type 1st order pyramidal systems <-1-1.0>{-11.1} -- plane normals depend on the c/a-ratio ! <-1-1.0>{-11.1}/1st order pyramidal <a> systems (direction independent of c/a-ratio)
-1, 2, -1, 0, 1, 0, -1, 1, & -1, 2, -1, 0, 1, 0, -1, 1, &
-2, 1, 1, 0, 0, 1, -1, 1, & -2, 1, 1, 0, 0, 1, -1, 1, &
-1, -1, 2, 0, -1, 1, 0, 1, & -1, -1, 2, 0, -1, 1, 0, 1, &
1, -2, 1, 0, -1, 0, 1, 1, & 1, -2, 1, 0, -1, 0, 1, 1, &
2, -1, -1, 0, 0, -1, 1, 1, & 2, -1, -1, 0, 0, -1, 1, 1, &
1, 1, -2, 0, 1, -1, 0, 1, & 1, 1, -2, 0, 1, -1, 0, 1, &
! pyramidal system: c+a slip <11.3>{-10.1} -- plane normals depend on the c/a-ratio ! <11.3>{-10.1}/1st order pyramidal <c+a> systems (direction independent of c/a-ratio)
-2, 1, 1, 3, 1, 0, -1, 1, & -2, 1, 1, 3, 1, 0, -1, 1, &
-1, -1, 2, 3, 1, 0, -1, 1, & -1, -1, 2, 3, 1, 0, -1, 1, &
-1, -1, 2, 3, 0, 1, -1, 1, & -1, -1, 2, 3, 0, 1, -1, 1, &
@ -237,96 +218,96 @@ module lattice
-1, 2, -1, 3, 0, -1, 1, 1, & -1, 2, -1, 3, 0, -1, 1, 1, &
-1, 2, -1, 3, 1, -1, 0, 1, & -1, 2, -1, 3, 1, -1, 0, 1, &
-2, 1, 1, 3, 1, -1, 0, 1, & -2, 1, 1, 3, 1, -1, 0, 1, &
! pyramidal system: c+a slip <11.3>{-1-1.2} -- as for hexagonal ice (Castelnau et al. 1996, similar to twin system found below) ! <11.3>{-1-1.2}/2nd order pyramidal <c+a> systems
-1, -1, 2, 3, 1, 1, -2, 2, & ! <11.3>{-1-1.2} shear = 2((c/a)^2-2)/(3 c/a) -1, -1, 2, 3, 1, 1, -2, 2, &
1, -2, 1, 3, -1, 2, -1, 2, & 1, -2, 1, 3, -1, 2, -1, 2, &
2, -1, -1, 3, -2, 1, 1, 2, & 2, -1, -1, 3, -2, 1, 1, 2, &
1, 1, -2, 3, -1, -1, 2, 2, & 1, 1, -2, 3, -1, -1, 2, 2, &
-1, 2, -1, 3, 1, -2, 1, 2, & -1, 2, -1, 3, 1, -2, 1, 2, &
-2, 1, 1, 3, 2, -1, -1, 2 & -2, 1, 1, 3, 2, -1, -1, 2 &
],pReal),shape(HEX_SYSTEMSLIP)) !< slip systems for hex, sorted by P. Eisenlohr CCW around <c> starting next to a_1 axis ],pReal),shape(HEX_SYSTEMSLIP)) !< hex slip systems, sorted by P. Eisenlohr CCW around <c> starting next to a_1 axis
real(pReal), dimension(4+4,HEX_NTWIN), parameter :: & real(pReal), dimension(4+4,HEX_NTWIN), parameter :: &
HEX_SYSTEMTWIN = reshape(real([& HEX_SYSTEMTWIN = reshape(real([&
! Compression or Tension = f(twinning shear=f(c/a)) for each metal ! (according to Yoo 1981) ! <-10.1>{10.2} systems, shear = (3-(c/a)^2)/(sqrt(3) c/a)
-1, 0, 1, 1, 1, 0, -1, 2, & ! <-10.1>{10.2} shear = (3-(c/a)^2)/(sqrt(3) c/a) ! tension in Co, Mg, Zr, Ti, and Be; compression in Cd and Zn
-1, 0, 1, 1, 1, 0, -1, 2, & !
0, -1, 1, 1, 0, 1, -1, 2, & 0, -1, 1, 1, 0, 1, -1, 2, &
1, -1, 0, 1, -1, 1, 0, 2, & 1, -1, 0, 1, -1, 1, 0, 2, &
1, 0, -1, 1, -1, 0, 1, 2, & 1, 0, -1, 1, -1, 0, 1, 2, &
0, 1, -1, 1, 0, -1, 1, 2, & 0, 1, -1, 1, 0, -1, 1, 2, &
-1, 1, 0, 1, 1, -1, 0, 2, & -1, 1, 0, 1, 1, -1, 0, 2, &
! ! <11.6>{-1-1.1} systems, shear = 1/(c/a)
-1, -1, 2, 6, 1, 1, -2, 1, & ! <11.6>{-1-1.1} shear = 1/(c/a) ! tension in Co, Re, and Zr
-1, -1, 2, 6, 1, 1, -2, 1, &
1, -2, 1, 6, -1, 2, -1, 1, & 1, -2, 1, 6, -1, 2, -1, 1, &
2, -1, -1, 6, -2, 1, 1, 1, & 2, -1, -1, 6, -2, 1, 1, 1, &
1, 1, -2, 6, -1, -1, 2, 1, & 1, 1, -2, 6, -1, -1, 2, 1, &
-1, 2, -1, 6, 1, -2, 1, 1, & -1, 2, -1, 6, 1, -2, 1, 1, &
-2, 1, 1, 6, 2, -1, -1, 1, & -2, 1, 1, 6, 2, -1, -1, 1, &
! ! <10.-2>{10.1} systems, shear = (4(c/a)^2-9)/(4 sqrt(3) c/a)
1, 0, -1, -2, 1, 0, -1, 1, & ! <10.-2>{10.1} shear = (4(c/a)^2-9)/(4 sqrt(3) c/a) ! compression in Mg
1, 0, -1, -2, 1, 0, -1, 1, &
0, 1, -1, -2, 0, 1, -1, 1, & 0, 1, -1, -2, 0, 1, -1, 1, &
-1, 1, 0, -2, -1, 1, 0, 1, & -1, 1, 0, -2, -1, 1, 0, 1, &
-1, 0, 1, -2, -1, 0, 1, 1, & -1, 0, 1, -2, -1, 0, 1, 1, &
0, -1, 1, -2, 0, -1, 1, 1, & 0, -1, 1, -2, 0, -1, 1, 1, &
1, -1, 0, -2, 1, -1, 0, 1, & 1, -1, 0, -2, 1, -1, 0, 1, &
! ! <11.-3>{11.2} systems, shear = 2((c/a)^2-2)/(3 c/a)
1, 1, -2, -3, 1, 1, -2, 2, & ! <11.-3>{11.2} shear = 2((c/a)^2-2)/(3 c/a) ! compression in Ti and Zr
1, 1, -2, -3, 1, 1, -2, 2, &
-1, 2, -1, -3, -1, 2, -1, 2, & -1, 2, -1, -3, -1, 2, -1, 2, &
-2, 1, 1, -3, -2, 1, 1, 2, & -2, 1, 1, -3, -2, 1, 1, 2, &
-1, -1, 2, -3, -1, -1, 2, 2, & -1, -1, 2, -3, -1, -1, 2, 2, &
1, -2, 1, -3, 1, -2, 1, 2, & 1, -2, 1, -3, 1, -2, 1, 2, &
2, -1, -1, -3, 2, -1, -1, 2 & 2, -1, -1, -3, 2, -1, -1, 2 &
],pReal),shape(HEX_SYSTEMTWIN)) !< twin systems for hex, sorted by P. Eisenlohr CCW around <c> starting next to a_1 axis ],pReal),shape(HEX_SYSTEMTWIN)) !< hex twin systems, sorted by P. Eisenlohr CCW around <c> starting next to a_1 axis
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
! body centered tetragonal (tI) ! body centered tetragonal (tI)
integer, dimension(*), parameter :: & integer, dimension(*), parameter :: &
BCT_NSLIPSYSTEM = [2, 2, 2, 4, 2, 4, 2, 2, 4, 8, 4, 8, 8 ] !< # of slip systems per family for bct (Sn) Bieler J. Electr Mater 2009 BCT_NSLIPSYSTEM = [2, 2, 2, 4, 2, 4, 2, 2, 4, 8, 4, 8, 8 ] !< # of slip systems per family for bct
integer, parameter :: & integer, parameter :: &
#ifndef __PGI
BCT_NSLIP = sum(BCT_NSLIPSYSTEM) !< total # of slip systems for bct BCT_NSLIP = sum(BCT_NSLIPSYSTEM) !< total # of slip systems for bct
#else
BCT_NSLIP = 52
#endif
real(pReal), dimension(3+3,BCT_NSLIP), parameter :: & real(pReal), dimension(3+3,BCT_NSLIP), parameter :: &
BCT_SYSTEMSLIP = reshape(real([& BCT_SYSTEMSLIP = reshape(real([&
! Slip direction Plane normal ! {100)<001] systems
! Slip family 1 {100)<001] (Bravais notation {hkl)<uvw] for bct c/a = 0.5456)
0, 0, 1, 1, 0, 0, & 0, 0, 1, 1, 0, 0, &
0, 0, 1, 0, 1, 0, & 0, 0, 1, 0, 1, 0, &
! Slip family 2 {110)<001] ! {110)<001] systems
0, 0, 1, 1, 1, 0, & 0, 0, 1, 1, 1, 0, &
0, 0, 1, -1, 1, 0, & 0, 0, 1, -1, 1, 0, &
! slip family 3 {100)<010] ! {100)<010] systems
0, 1, 0, 1, 0, 0, & 0, 1, 0, 1, 0, 0, &
1, 0, 0, 0, 1, 0, & 1, 0, 0, 0, 1, 0, &
! Slip family 4 {110)<1-11]/2 ! {110)<1-11]/2 systems
1,-1, 1, 1, 1, 0, & 1,-1, 1, 1, 1, 0, &
1,-1,-1, 1, 1, 0, & 1,-1,-1, 1, 1, 0, &
-1,-1,-1, -1, 1, 0, & -1,-1,-1, -1, 1, 0, &
-1,-1, 1, -1, 1, 0, & -1,-1, 1, -1, 1, 0, &
! Slip family 5 {110)<1-10] ! {110)<1-10] systems
1, -1, 0, 1, 1, 0, & 1, -1, 0, 1, 1, 0, &
1, 1, 0, 1,-1, 0, & 1, 1, 0, 1,-1, 0, &
! Slip family 6 {100)<011] ! {100)<011] systems
0, 1, 1, 1, 0, 0, & 0, 1, 1, 1, 0, 0, &
0,-1, 1, 1, 0, 0, & 0,-1, 1, 1, 0, 0, &
-1, 0, 1, 0, 1, 0, & -1, 0, 1, 0, 1, 0, &
1, 0, 1, 0, 1, 0, & 1, 0, 1, 0, 1, 0, &
! Slip family 7 {001)<010] ! {001)<010] systems
0, 1, 0, 0, 0, 1, & 0, 1, 0, 0, 0, 1, &
1, 0, 0, 0, 0, 1, & 1, 0, 0, 0, 0, 1, &
! Slip family 8 {001)<110] ! {001)<110] systems
1, 1, 0, 0, 0, 1, & 1, 1, 0, 0, 0, 1, &
-1, 1, 0, 0, 0, 1, & -1, 1, 0, 0, 0, 1, &
! Slip family 9 {011)<01-1] ! {011)<01-1] systems
0, 1,-1, 0, 1, 1, & 0, 1,-1, 0, 1, 1, &
0,-1,-1, 0,-1, 1, & 0,-1,-1, 0,-1, 1, &
-1, 0,-1, -1, 0, 1, & -1, 0,-1, -1, 0, 1, &
1, 0,-1, 1, 0, 1, & 1, 0,-1, 1, 0, 1, &
! Slip family 10 {011)<1-11]/2 ! {011)<1-11]/2 systems
1,-1, 1, 0, 1, 1, & 1,-1, 1, 0, 1, 1, &
1, 1,-1, 0, 1, 1, & 1, 1,-1, 0, 1, 1, &
1, 1, 1, 0, 1,-1, & 1, 1, 1, 0, 1,-1, &
@ -335,12 +316,12 @@ module lattice
-1,-1, 1, 1, 0, 1, & -1,-1, 1, 1, 0, 1, &
1, 1, 1, 1, 0,-1, & 1, 1, 1, 1, 0,-1, &
1,-1, 1, 1, 0,-1, & 1,-1, 1, 1, 0,-1, &
! Slip family 11 {011)<100] ! {011)<100] systems
1, 0, 0, 0, 1, 1, & 1, 0, 0, 0, 1, 1, &
1, 0, 0, 0, 1,-1, & 1, 0, 0, 0, 1,-1, &
0, 1, 0, 1, 0, 1, & 0, 1, 0, 1, 0, 1, &
0, 1, 0, 1, 0,-1, & 0, 1, 0, 1, 0,-1, &
! Slip family 12 {211)<01-1] ! {211)<01-1] systems
0, 1,-1, 2, 1, 1, & 0, 1,-1, 2, 1, 1, &
0,-1,-1, 2,-1, 1, & 0,-1,-1, 2,-1, 1, &
1, 0,-1, 1, 2, 1, & 1, 0,-1, 1, 2, 1, &
@ -349,7 +330,7 @@ module lattice
0,-1,-1, -2,-1, 1, & 0,-1,-1, -2,-1, 1, &
-1, 0,-1, -1,-2, 1, & -1, 0,-1, -1,-2, 1, &
1, 0,-1, 1,-2, 1, & 1, 0,-1, 1,-2, 1, &
! Slip family 13 {211)<-111]/2 ! {211)<-111]/2 systems
-1, 1, 1, 2, 1, 1, & -1, 1, 1, 2, 1, 1, &
-1,-1, 1, 2,-1, 1, & -1,-1, 1, 2,-1, 1, &
1,-1, 1, 1, 2, 1, & 1,-1, 1, 1, 2, 1, &
@ -358,27 +339,22 @@ module lattice
1,-1, 1, -2,-1, 1, & 1,-1, 1, -2,-1, 1, &
-1, 1, 1, -1,-2, 1, & -1, 1, 1, -1,-2, 1, &
1, 1, 1, 1,-2, 1 & 1, 1, 1, 1,-2, 1 &
],pReal),shape(BCT_SYSTEMSLIP)) !< slip systems for bct sorted by Bieler ],pReal),shape(BCT_SYSTEMSLIP)) !< bct slip systems for c/a = 0.5456 (Sn), sorted by Bieler 2009 (https://doi.org/10.1007/s11664-009-0909-x)
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
! orthorhombic primitive (oP) ! orthorhombic primitive (oP)
integer, dimension(*), parameter :: & integer, dimension(*), parameter :: &
ORT_NCLEAVAGESYSTEM = [1, 1, 1] !< # of cleavage systems per family for ortho ORT_NCLEAVAGESYSTEM = [1, 1, 1] !< # of cleavage systems per family for orthorhombic primitive
integer, parameter :: & integer, parameter :: &
#ifndef __PGI ORT_NCLEAVAGE = sum(ORT_NCLEAVAGESYSTEM) !< total # of cleavage systems for orthorhombic primitive
ORT_NCLEAVAGE = sum(ORT_NCLEAVAGESYSTEM) !< total # of cleavage systems for ortho
#else
ORT_NCLEAVAGE = 3
#endif
real(pReal), dimension(3+3,ORT_NCLEAVAGE), parameter :: & real(pReal), dimension(3+3,ORT_NCLEAVAGE), parameter :: &
ORT_SYSTEMCLEAVAGE = reshape(real([& ORT_SYSTEMCLEAVAGE = reshape(real([&
! 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 &
],pReal),shape(ORT_SYSTEMCLEAVAGE)) ],pReal),shape(ORT_SYSTEMCLEAVAGE)) !< orthorhombic primitive cleavage systems
enum, bind(c); enumerator :: & enum, bind(c); enumerator :: &
@ -714,8 +690,7 @@ function lattice_nonSchmidMatrix(Nslip,nonSchmidCoefficients,sense) result(nonSc
if (abs(sense) /= 1) error stop 'Sense in lattice_nonSchmidMatrix' if (abs(sense) /= 1) error stop 'Sense in lattice_nonSchmidMatrix'
coordinateSystem = buildCoordinateSystem(Nslip,BCC_NSLIPSYSTEM,BCC_SYSTEMSLIP,& coordinateSystem = buildCoordinateSystem(Nslip,BCC_NSLIPSYSTEM,BCC_SYSTEMSLIP,'cI',0.0_pReal)
'cI',0.0_pReal)
coordinateSystem(1:3,1,1:sum(Nslip)) = coordinateSystem(1:3,1,1:sum(Nslip))*real(sense,pReal) ! convert unidirectional coordinate system coordinateSystem(1:3,1,1:sum(Nslip)) = coordinateSystem(1:3,1,1:sum(Nslip))*real(sense,pReal) ! convert unidirectional coordinate system
nonSchmidMatrix = lattice_SchmidMatrix_slip(Nslip,'cI',0.0_pReal) ! Schmid contribution nonSchmidMatrix = lattice_SchmidMatrix_slip(Nslip,'cI',0.0_pReal) ! Schmid contribution
@ -778,7 +753,7 @@ function lattice_interaction_SlipBySlip(Nslip,interactionValues,structure) resul
11,13,11,10,12,10,10,12,10,11,13,11, 9, 9, 8, 1, 9, 9, & 11,13,11,10,12,10,10,12,10,11,13,11, 9, 9, 8, 1, 9, 9, &
12,10,10,13,11,11,12,10,10,13,11,11, 9, 9, 9, 9, 1, 8, & 12,10,10,13,11,11,12,10,10,13,11,11, 9, 9, 9, 9, 1, 8, &
13,11,11,12,10,10,13,11,11,12,10,10, 9, 9, 9, 9, 8, 1 & 13,11,11,12,10,10,13,11,11,12,10,10, 9, 9, 9, 9, 8, 1 &
],shape(FCC_INTERACTIONSLIPSLIP)) !< Slip--slip interaction types for fcc / Madec 2017(https://doi.org/10.1016/j.actamat.2016.12.040) ],shape(FCC_INTERACTIONSLIPSLIP)) !< Slip-slip interaction types for fcc / Madec 2017 (https://doi.org/10.1016/j.actamat.2016.12.040)
!< 1: self interaction --> alpha 0 !< 1: self interaction --> alpha 0
!< 2: coplanar interaction --> alpha copla !< 2: coplanar interaction --> alpha copla
!< 3: collinear interaction --> alpha coli !< 3: collinear interaction --> alpha coli
@ -820,13 +795,14 @@ function lattice_interaction_SlipBySlip(Nslip,interactionValues,structure) resul
9,12,15,16,16,15,12, 9,10, 8,19,19, 21,23,22, 2, 2,23,22,21,24, 1,20,24, & 9,12,15,16,16,15,12, 9,10, 8,19,19, 21,23,22, 2, 2,23,22,21,24, 1,20,24, &
16,15,12, 9, 9,12,15,16, 8,10,19,19, 2,22,23,21,21,22,23, 2,24,20, 1,24, & 16,15,12, 9, 9,12,15,16, 8,10,19,19, 2,22,23,21,21,22,23, 2,24,20, 1,24, &
15,16, 9,12,15,16, 9,12,19,19, 8,10, 22, 2,21,23,22,21, 2,23,20,24,24, 1 & 15,16, 9,12,15,16, 9,12,19,19, 8,10, 22, 2,21,23,22,21, 2,23,20,24,24, 1 &
],shape(BCC_INTERACTIONSLIPSLIP)) !< Slip--slip interaction types for bcc / Madec 2017(https://doi.org/10.1016/j.actamat.2016.12.040) ],shape(BCC_INTERACTIONSLIPSLIP)) !< Slip-slip interaction types for bcc / Madec 2017 (https://doi.org/10.1016/j.actamat.2016.12.040)
!< 1: self interaction --> alpha 0 !< 1: self interaction --> alpha 0
!< 2: collinear interaction --> alpha 1 !< 2: collinear interaction --> alpha 1
!< 3: coplanar interaction --> alpha 2 !< 3: coplanar interaction --> alpha 2
!< 4-24: other coefficients !< 4-7: other coefficients
!< 8: {110}-{112}, collinear and perpendicular planes --> alpha 6 !< 8: {110}-{112}, collinear and perpendicular planes --> alpha 6
!< 9: {110}-{112}, just collinear --> alpha 7 !< 9: {110}-{112}, just collinear --> alpha 7
!< 10-24: other coefficients
integer, dimension(HEX_NSLIP,HEX_NSLIP), parameter :: & integer, dimension(HEX_NSLIP,HEX_NSLIP), parameter :: &
HEX_INTERACTIONSLIPSLIP = reshape( [& HEX_INTERACTIONSLIPSLIP = reshape( [&
@ -868,7 +844,7 @@ function lattice_interaction_SlipBySlip(Nslip,interactionValues,structure) resul
42,42,42, 41,41,41, 40,40,40, 39,39,39,39,39,39, 38,38,38,38,38,38,38,38,38,38,38,38, 37,37,37,36,37,37, & 42,42,42, 41,41,41, 40,40,40, 39,39,39,39,39,39, 38,38,38,38,38,38,38,38,38,38,38,38, 37,37,37,36,37,37, &
42,42,42, 41,41,41, 40,40,40, 39,39,39,39,39,39, 38,38,38,38,38,38,38,38,38,38,38,38, 37,37,37,37,36,37, & 42,42,42, 41,41,41, 40,40,40, 39,39,39,39,39,39, 38,38,38,38,38,38,38,38,38,38,38,38, 37,37,37,37,36,37, &
42,42,42, 41,41,41, 40,40,40, 39,39,39,39,39,39, 38,38,38,38,38,38,38,38,38,38,38,38, 37,37,37,37,37,36 & 42,42,42, 41,41,41, 40,40,40, 39,39,39,39,39,39, 38,38,38,38,38,38,38,38,38,38,38,38, 37,37,37,37,37,36 &
],shape(HEX_INTERACTIONSLIPSLIP)) !< Slip--slip interaction types for hex (onion peel naming scheme) ],shape(HEX_INTERACTIONSLIPSLIP)) !< Slip-slip interaction types for hex (onion peel naming scheme)
integer, dimension(BCT_NSLIP,BCT_NSLIP), parameter :: & integer, dimension(BCT_NSLIP,BCT_NSLIP), parameter :: &
BCT_INTERACTIONSLIPSLIP = reshape( [& BCT_INTERACTIONSLIPSLIP = reshape( [&