added second type prismatic slip system for hexagonal lattices as 6th slip family.

consequently, 4 new interaction types (21,22,23,24) available for slip/twin and twin/slip.

interaction of slip/slip got rearranged and now has 42 types...
list of former --> new:
6	7
7	8
8	9
9	10
10	11
11	13
12	14
13	15
14	16
15	18
16	19
17	20
18	22
19	23
20	25
21	28
22	29
23	30
24	31
25	33
26	34
27	35
28	37
29	38
30	40
This commit is contained in:
Philip Eisenlohr 2013-06-14 10:20:31 +00:00
parent a78f91311e
commit 81cdd2b1cc
1 changed files with 80 additions and 68 deletions

View File

@ -33,11 +33,11 @@ module lattice
implicit none implicit none
private private
integer(pInt), parameter, public :: & integer(pInt), parameter, public :: &
lattice_maxNslipFamily = 5_pInt, & !< max # of slip system families over lattice structures lattice_maxNslipFamily = 6_pInt, & !< max # of slip system families over lattice structures
lattice_maxNtwinFamily = 4_pInt, & !< max # of twin system families over lattice structures lattice_maxNtwinFamily = 4_pInt, & !< max # of twin system families over lattice structures
lattice_maxNslip = 54_pInt, & !< max # of slip systems over lattice structures lattice_maxNslip = 33_pInt, & !< max # of slip systems over lattice structures
lattice_maxNtwin = 24_pInt, & !< max # of twin systems over lattice structures lattice_maxNtwin = 24_pInt, & !< max # of twin systems over lattice structures
lattice_maxNinteraction = 30_pInt, & !< max # of interaction types (in hardening matrix part) lattice_maxNinteraction = 42_pInt, & !< max # of interaction types (in hardening matrix part)
lattice_maxNonSchmid = 6_pInt !< max # of non schmid contributions over lattice structures lattice_maxNonSchmid = 6_pInt !< max # of non schmid contributions over lattice structures
integer(pInt), allocatable, dimension(:,:), protected, public :: & integer(pInt), allocatable, dimension(:,:), protected, public :: &
@ -90,7 +90,7 @@ module lattice
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
! fcc (1) ! fcc (1)
integer(pInt), dimension(lattice_maxNslipFamily), parameter, public :: & integer(pInt), dimension(lattice_maxNslipFamily), parameter, public :: &
lattice_fcc_NslipSystem = int([12, 0, 0, 0, 0],pInt) !< total # of slip systems per family for fcc lattice_fcc_NslipSystem = int([12, 0, 0, 0, 0, 0],pInt) !< total # of slip systems per family for fcc
integer(pInt), dimension(lattice_maxNtwinFamily), parameter, public :: & integer(pInt), dimension(lattice_maxNtwinFamily), parameter, public :: &
lattice_fcc_NtwinSystem = int([12, 0, 0, 0],pInt) !< total # of twin systems per family for fcc lattice_fcc_NtwinSystem = int([12, 0, 0, 0],pInt) !< total # of twin systems per family for fcc
@ -217,7 +217,7 @@ module lattice
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
! bcc (2) ! bcc (2)
integer(pInt), dimension(lattice_maxNslipFamily), parameter, public :: & integer(pInt), dimension(lattice_maxNslipFamily), parameter, public :: &
lattice_bcc_NslipSystem = int([ 12, 12, 0, 0, 0], pInt) !< total # of slip systems per family for bcc lattice_bcc_NslipSystem = int([ 12, 12, 0, 0, 0, 0], pInt) !< total # of slip systems per family for bcc
integer(pInt), dimension(lattice_maxNtwinFamily), parameter, public :: & integer(pInt), dimension(lattice_maxNtwinFamily), parameter, public :: &
lattice_bcc_NtwinSystem = int([ 12, 0, 0, 0], pInt) !< total # of twin systems per family for bcc lattice_bcc_NtwinSystem = int([ 12, 0, 0, 0], pInt) !< total # of twin systems per family for bcc
@ -411,13 +411,13 @@ module lattice
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
! hex (3+) ! hex (3+)
integer(pInt), dimension(lattice_maxNslipFamily), parameter, public :: & integer(pInt), dimension(lattice_maxNslipFamily), parameter, public :: &
lattice_hex_NslipSystem = int([ 3, 3, 6, 12, 6],pInt) !< # of slip systems per family for hex lattice_hex_NslipSystem = int([ 3, 3, 6, 12, 6, 3],pInt) !< # of slip systems per family for hex
integer(pInt), dimension(lattice_maxNtwinFamily), parameter, public :: & integer(pInt), dimension(lattice_maxNtwinFamily), parameter, public :: &
lattice_hex_NtwinSystem = int([ 6, 6, 6, 6],pInt) !< # of slip systems per family for hex lattice_hex_NtwinSystem = int([ 6, 6, 6, 6],pInt) !< # of slip systems per family for hex
integer(pInt), parameter , private :: & integer(pInt), parameter , private :: &
lattice_hex_Nslip = 30_pInt, & ! sum(lattice_hex_NslipSystem), !< total # of slip systems for hex lattice_hex_Nslip = 33_pInt, & ! sum(lattice_hex_NslipSystem), !< total # of slip systems for hex
lattice_hex_Ntwin = 24_pInt ! sum(lattice_hex_NtwinSystem) !< total # of twin systems for hex lattice_hex_Ntwin = 24_pInt ! sum(lattice_hex_NtwinSystem) !< total # of twin systems for hex
integer(pInt), private :: & integer(pInt), private :: &
@ -425,7 +425,7 @@ module lattice
real(pReal), dimension(4+4,lattice_hex_Nslip), parameter, private :: & real(pReal), dimension(4+4,lattice_hex_Nslip), parameter, private :: &
lattice_hex_systemSlip = reshape(real([& lattice_hex_systemSlip = reshape(real([&
! Basal systems <1120>{0001} (independent of c/a-ratio, Bravais notation (4 coordinate base)) ! Basal systems <11.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, &
@ -453,13 +453,17 @@ module lattice
1, -2, 1, -3, 1, -1, 0, 1, & 1, -2, 1, -3, 1, -1, 0, 1, &
1, 1, -2, -3, 1, 0, -1, 1, & 1, 1, -2, -3, 1, 0, -1, 1, &
2, -1, -1, -3, 1, 0, -1, 1, & 2, -1, -1, -3, 1, 0, -1, 1, &
! pyramidal system: c+a slip <11.-3>{11.2} -- as for hexagonal Ice (Castelnau et al 1996, similar to twin system found below) ! pyramidal system: c+a slip <11.-3>{11.2} -- as for hexagonal ice (Castelnau et al 1996, similar to twin system found below)
2, -1, -1, -3, 2, -1, -1, 2, & ! <11.-3>{11.2} shear = 2((c/a)^2-2)/(3 c/a) 2, -1, -1, -3, 2, -1, -1, 2, & ! <11.-3>{11.2} shear = 2((c/a)^2-2)/(3 c/a)
1, 1, -2, -3, 1, 1, -2, 2, & ! sorted according to similar twin system 1, 1, -2, -3, 1, 1, -2, 2, & ! sorted according to similar twin system
-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, &
! 2nd type prismatic systems <10.0>{11.0} -- a slip; plane normals independent of c/a-ratio
0, 1, -1, 0, 2, -1, -1, 0, &
-1, 0, 1, 0, -1, 2, -1, 0, &
1, -1, 0, 0, -1, -1, 2, 0 &
],pReal),[ 4_pInt + 4_pInt,lattice_hex_Nslip]) !< slip systems for hex sorted by A. Alankar & P. Eisenlohr ],pReal),[ 4_pInt + 4_pInt,lattice_hex_Nslip]) !< slip systems for hex sorted by A. Alankar & P. Eisenlohr
real(pReal), dimension(4+4,lattice_hex_Ntwin), parameter, private :: & real(pReal), dimension(4+4,lattice_hex_Ntwin), parameter, private :: &
@ -520,41 +524,45 @@ module lattice
integer(pInt), dimension(lattice_hex_Nslip,lattice_hex_Nslip), target, public :: & integer(pInt), dimension(lattice_hex_Nslip,lattice_hex_Nslip), target, public :: &
lattice_hex_interactionSlipSlip = reshape(int( [& lattice_hex_interactionSlipSlip = reshape(int( [&
1, 6, 6, 11,11,11, 15,15,15,15,15,15, 18,18,18,18,18,18,18,18,18,18,18,18, 20,20,20,20,20,20, & ! ---> slip 1, 7, 7, 13,13,13, 18,18,18,18,18,18, 22,22,22,22,22,22,22,22,22,22,22,22, 25,25,25,25,25,25, 27,27,27, & ! ---> slip
6, 1, 6, 11,11,11, 15,15,15,15,15,15, 18,18,18,18,18,18,18,18,18,18,18,18, 20,20,20,20,20,20, & ! | 7, 1, 7, 13,13,13, 18,18,18,18,18,18, 22,22,22,22,22,22,22,22,22,22,22,22, 25,25,25,25,25,25, 27,27,27, & ! |
6, 6, 1, 11,11,11, 15,15,15,15,15,15, 18,18,18,18,18,18,18,18,18,18,18,18, 20,20,20,20,20,20, & ! | 7, 7, 1, 13,13,13, 18,18,18,18,18,18, 22,22,22,22,22,22,22,22,22,22,22,22, 25,25,25,25,25,25, 27,27,27, & ! |
! v slip ! v slip
21,21,21, 2, 7, 7, 12,12,12,12,12,12, 16,16,16,16,16,16,16,16,16,16,16,16, 19,19,19,19,19,19, & 28,28,28, 2, 8, 8, 14,14,14,14,14,14, 19,19,19,19,19,19,19,19,19,19,19,19, 23,23,23,23,23,23, 26,26,26, &
21,21,21, 7, 2, 7, 12,12,12,12,12,12, 16,16,16,16,16,16,16,16,16,16,16,16, 19,19,19,19,19,19, & 28,28,28, 8, 2, 8, 14,14,14,14,14,14, 19,19,19,19,19,19,19,19,19,19,19,19, 23,23,23,23,23,23, 26,26,26, &
21,21,21, 7, 7, 2, 12,12,12,12,12,12, 16,16,16,16,16,16,16,16,16,16,16,16, 19,19,19,19,19,19, & 28,28,28, 8, 8, 2, 14,14,14,14,14,14, 19,19,19,19,19,19,19,19,19,19,19,19, 23,23,23,23,23,23, 26,26,26, &
! !
25,25,25, 22,22,22, 3, 8, 8, 8, 8, 8, 13,13,13,13,13,13,13,13,13,13,13,13, 17,17,17,17,17,17, & 33,33,33, 29,29,29, 3, 9, 9, 9, 9, 9, 15,15,15,15,15,15,15,15,15,15,15,15, 20,20,20,20,20,20, 24,24,24, &
25,25,25, 22,22,22, 8, 3, 8, 8, 8, 8, 13,13,13,13,13,13,13,13,13,13,13,13, 17,17,17,17,17,17, & 33,33,33, 29,29,29, 9, 3, 9, 9, 9, 9, 15,15,15,15,15,15,15,15,15,15,15,15, 20,20,20,20,20,20, 24,24,24, &
25,25,25, 22,22,22, 8, 8, 3, 8, 8, 8, 13,13,13,13,13,13,13,13,13,13,13,13, 17,17,17,17,17,17, & 33,33,33, 29,29,29, 9, 9, 3, 9, 9, 9, 15,15,15,15,15,15,15,15,15,15,15,15, 20,20,20,20,20,20, 24,24,24, &
25,25,25, 22,22,22, 8, 8, 8, 3, 8, 8, 13,13,13,13,13,13,13,13,13,13,13,13, 17,17,17,17,17,17, & 33,33,33, 29,29,29, 9, 9, 9, 3, 9, 9, 15,15,15,15,15,15,15,15,15,15,15,15, 20,20,20,20,20,20, 24,24,24, &
25,25,25, 22,22,22, 8, 8, 8, 8, 3, 8, 13,13,13,13,13,13,13,13,13,13,13,13, 17,17,17,17,17,17, & 33,33,33, 29,29,29, 9, 9, 9, 9, 3, 9, 15,15,15,15,15,15,15,15,15,15,15,15, 20,20,20,20,20,20, 24,24,24, &
25,25,25, 22,22,22, 8, 8, 8, 8, 8, 3, 13,13,13,13,13,13,13,13,13,13,13,13, 17,17,17,17,17,17, & 33,33,33, 29,29,29, 9, 9, 9, 9, 9, 3, 15,15,15,15,15,15,15,15,15,15,15,15, 20,20,20,20,20,20, 24,24,24, &
! !
28,28,28, 26,26,26, 23,23,23,23,23,23, 4, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 14,14,14,14,14,14, & 37,37,37, 34,34,34, 30,30,30,30,30,30, 4,10,10,10,10,10,10,10,10,10,10,10, 16,16,16,16,16,16, 21,21,21, &
28,28,28, 26,26,26, 23,23,23,23,23,23, 9, 4, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 14,14,14,14,14,14, & 37,37,37, 34,34,34, 30,30,30,30,30,30, 10, 4,10,10,10,10,10,10,10,10,10,10, 16,16,16,16,16,16, 21,21,21, &
28,28,28, 26,26,26, 23,23,23,23,23,23, 9, 9, 4, 9, 9, 9, 9, 9, 9, 9, 9, 9, 14,14,14,14,14,14, & 37,37,37, 34,34,34, 30,30,30,30,30,30, 10,10, 4,10,10,10,10,10,10,10,10,10, 16,16,16,16,16,16, 21,21,21, &
28,28,28, 26,26,26, 23,23,23,23,23,23, 9, 9, 9, 4, 9, 9, 9, 9, 9, 9, 9, 9, 14,14,14,14,14,14, & 37,37,37, 34,34,34, 30,30,30,30,30,30, 10,10,10, 4,10,10,10,10,10,10,10,10, 16,16,16,16,16,16, 21,21,21, &
28,28,28, 26,26,26, 23,23,23,23,23,23, 9, 9, 9, 9, 4, 9, 9, 9, 9, 9, 9, 9, 14,14,14,14,14,14, & 37,37,37, 34,34,34, 30,30,30,30,30,30, 10,10,10,10, 4,10,10,10,10,10,10,10, 16,16,16,16,16,16, 21,21,21, &
28,28,28, 26,26,26, 23,23,23,23,23,23, 9, 9, 9, 9, 9, 4, 9, 9, 9, 9, 9, 9, 14,14,14,14,14,14, & 37,37,37, 34,34,34, 30,30,30,30,30,30, 10,10,10,10,10, 4,10,10,10,10,10,10, 16,16,16,16,16,16, 21,21,21, &
28,28,28, 26,26,26, 23,23,23,23,23,23, 9, 9, 9, 9, 9, 9, 4, 9, 9, 9, 9, 9, 14,14,14,14,14,14, & 37,37,37, 34,34,34, 30,30,30,30,30,30, 10,10,10,10,10,10, 4,10,10,10,10,10, 16,16,16,16,16,16, 21,21,21, &
28,28,28, 26,26,26, 23,23,23,23,23,23, 9, 9, 9, 9, 9, 9, 9, 4, 9, 9, 9, 9, 14,14,14,14,14,14, & 37,37,37, 34,34,34, 30,30,30,30,30,30, 10,10,10,10,10,10,10, 4,10,10,10,10, 16,16,16,16,16,16, 21,21,21, &
28,28,28, 26,26,26, 23,23,23,23,23,23, 9, 9, 9, 9, 9, 9, 9, 9, 4, 9, 9, 9, 14,14,14,14,14,14, & 37,37,37, 34,34,34, 30,30,30,30,30,30, 10,10,10,10,10,10,10,10, 4,10,10,10, 16,16,16,16,16,16, 21,21,21, &
28,28,28, 26,26,26, 23,23,23,23,23,23, 9, 9, 9, 9, 9, 9, 9, 9, 9, 4, 9, 9, 14,14,14,14,14,14, & 37,37,37, 34,34,34, 30,30,30,30,30,30, 10,10,10,10,10,10,10,10,10, 4,10,10, 16,16,16,16,16,16, 21,21,21, &
28,28,28, 26,26,26, 23,23,23,23,23,23, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 4, 9, 14,14,14,14,14,14, & 37,37,37, 34,34,34, 30,30,30,30,30,30, 10,10,10,10,10,10,10,10,10,10, 4,10, 16,16,16,16,16,16, 21,21,21, &
28,28,28, 26,26,26, 23,23,23,23,23,23, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 4, 14,14,14,14,14,14, & 37,37,37, 34,34,34, 30,30,30,30,30,30, 10,10,10,10,10,10,10,10,10,10,10, 4, 16,16,16,16,16,16, 21,21,21, &
! !
30,30,30, 29,29,29, 27,27,27,27,27,27, 24,24,24,24,24,24,24,24,24,24,24,24, 5,10,10,10,10,10, & 40,40,40, 38,38,38, 35,35,35,35,35,35, 31,31,31,31,31,31,31,31,31,31,31,31, 5,11,11,11,11,11, 17,17,17, &
30,30,30, 29,29,29, 27,27,27,27,27,27, 24,24,24,24,24,24,24,24,24,24,24,24, 10, 5,10,10,10,10, & 40,40,40, 38,38,38, 35,35,35,35,35,35, 31,31,31,31,31,31,31,31,31,31,31,31, 11, 5,11,11,11,11, 17,17,17, &
30,30,30, 29,29,29, 27,27,27,27,27,27, 24,24,24,24,24,24,24,24,24,24,24,24, 10,10, 5,10,10,10, & 40,40,40, 38,38,38, 35,35,35,35,35,35, 31,31,31,31,31,31,31,31,31,31,31,31, 11,11, 5,11,11,11, 17,17,17, &
30,30,30, 29,29,29, 27,27,27,27,27,27, 24,24,24,24,24,24,24,24,24,24,24,24, 10,10,10, 5,10,10, & 40,40,40, 38,38,38, 35,35,35,35,35,35, 31,31,31,31,31,31,31,31,31,31,31,31, 11,11,11, 5,11,11, 17,17,17, &
30,30,30, 29,29,29, 27,27,27,27,27,27, 24,24,24,24,24,24,24,24,24,24,24,24, 10,10,10,10, 5,10, & 40,40,40, 38,38,38, 35,35,35,35,35,35, 31,31,31,31,31,31,31,31,31,31,31,31, 11,11,11,11, 5,11, 17,17,17, &
30,30,30, 29,29,29, 27,27,27,27,27,27, 24,24,24,24,24,24,24,24,24,24,24,24, 10,10,10,10,10, 5 & 40,40,40, 38,38,38, 35,35,35,35,35,35, 31,31,31,31,31,31,31,31,31,31,31,31, 11,11,11,11,11, 5, 17,17,17, &
],pInt),[lattice_hex_Nslip,lattice_hex_Nslip],order=[2,1]) !< Slip--slip interaction types for hex (30 in total) !
42,42,42, 41,41,41, 39,39,39,39,39,39, 36,36,36,36,36,36,36,36,36,36,36,36, 32,32,32,32,32,32, 6,12,12, &
42,42,42, 41,41,41, 39,39,39,39,39,39, 36,36,36,36,36,36,36,36,36,36,36,36, 32,32,32,32,32,32, 12,6,12, &
42,42,42, 41,41,41, 39,39,39,39,39,39, 36,36,36,36,36,36,36,36,36,36,36,36, 32,32,32,32,32,32, 12,12,6 &
],pInt),[lattice_hex_Nslip,lattice_hex_Nslip],order=[2,1]) !< Slip--slip interaction types for hex (32? in total)
integer(pInt), dimension(lattice_hex_Nslip,lattice_hex_Ntwin), target, public :: & integer(pInt), dimension(lattice_hex_Nslip,lattice_hex_Ntwin), target, public :: &
lattice_hex_interactionSlipTwin = reshape(int( [& lattice_hex_interactionSlipTwin = reshape(int( [&
@ -591,38 +599,42 @@ module lattice
17,17,17,17,17,17, 18,18,18,18,18,18, 19,19,19,19,19,19, 20,20,20,20,20,20, & 17,17,17,17,17,17, 18,18,18,18,18,18, 19,19,19,19,19,19, 20,20,20,20,20,20, &
17,17,17,17,17,17, 18,18,18,18,18,18, 19,19,19,19,19,19, 20,20,20,20,20,20, & 17,17,17,17,17,17, 18,18,18,18,18,18, 19,19,19,19,19,19, 20,20,20,20,20,20, &
17,17,17,17,17,17, 18,18,18,18,18,18, 19,19,19,19,19,19, 20,20,20,20,20,20, & 17,17,17,17,17,17, 18,18,18,18,18,18, 19,19,19,19,19,19, 20,20,20,20,20,20, &
17,17,17,17,17,17, 18,18,18,18,18,18, 19,19,19,19,19,19, 20,20,20,20,20,20 & 17,17,17,17,17,17, 18,18,18,18,18,18, 19,19,19,19,19,19, 20,20,20,20,20,20, &
],pInt),[lattice_hex_Nslip,lattice_hex_Ntwin],order=[2,1]) !< Slip--twin interaction types for hex (isotropic, 20 in total) !
21,21,21,21,21,21, 22,22,22,22,22,22, 23,23,23,23,23,23, 24,24,24,24,24,24, &
21,21,21,21,21,21, 22,22,22,22,22,22, 23,23,23,23,23,23, 24,24,24,24,24,24, &
21,21,21,21,21,21, 22,22,22,22,22,22, 23,23,23,23,23,23, 24,24,24,24,24,24 &
],pInt),[lattice_hex_Nslip,lattice_hex_Ntwin],order=[2,1]) !< Slip--twin interaction types for hex (isotropic, 24 in total)
integer(pInt), dimension(lattice_hex_Ntwin,lattice_hex_Nslip), target, public :: & integer(pInt), dimension(lattice_hex_Ntwin,lattice_hex_Nslip), target, public :: &
lattice_hex_interactionTwinSlip = reshape(int( [& lattice_hex_interactionTwinSlip = reshape(int( [&
1, 1, 1, 5, 5, 5, 9, 9, 9, 9, 9, 9, 13,13,13,13,13,13,13,13,13,13,13,13, 17,17,17,17,17,17, & ! --> slip 1, 1, 1, 5, 5, 5, 9, 9, 9, 9, 9, 9, 13,13,13,13,13,13,13,13,13,13,13,13, 17,17,17,17,17,17, 21,21,21, & ! --> slip
1, 1, 1, 5, 5, 5, 9, 9, 9, 9, 9, 9, 13,13,13,13,13,13,13,13,13,13,13,13, 17,17,17,17,17,17, & ! | 1, 1, 1, 5, 5, 5, 9, 9, 9, 9, 9, 9, 13,13,13,13,13,13,13,13,13,13,13,13, 17,17,17,17,17,17, 21,21,21, & ! |
1, 1, 1, 5, 5, 5, 9, 9, 9, 9, 9, 9, 13,13,13,13,13,13,13,13,13,13,13,13, 17,17,17,17,17,17, & ! | 1, 1, 1, 5, 5, 5, 9, 9, 9, 9, 9, 9, 13,13,13,13,13,13,13,13,13,13,13,13, 17,17,17,17,17,17, 21,21,21, & ! |
1, 1, 1, 5, 5, 5, 9, 9, 9, 9, 9, 9, 13,13,13,13,13,13,13,13,13,13,13,13, 17,17,17,17,17,17, & ! v 1, 1, 1, 5, 5, 5, 9, 9, 9, 9, 9, 9, 13,13,13,13,13,13,13,13,13,13,13,13, 17,17,17,17,17,17, 21,21,21, & ! v
1, 1, 1, 5, 5, 5, 9, 9, 9, 9, 9, 9, 13,13,13,13,13,13,13,13,13,13,13,13, 17,17,17,17,17,17, & ! twin 1, 1, 1, 5, 5, 5, 9, 9, 9, 9, 9, 9, 13,13,13,13,13,13,13,13,13,13,13,13, 17,17,17,17,17,17, 21,21,21, & ! twin
1, 1, 1, 5, 5, 5, 9, 9, 9, 9, 9, 9, 13,13,13,13,13,13,13,13,13,13,13,13, 17,17,17,17,17,17, & 1, 1, 1, 5, 5, 5, 9, 9, 9, 9, 9, 9, 13,13,13,13,13,13,13,13,13,13,13,13, 17,17,17,17,17,17, 21,21,21, &
! !
2, 2, 2, 6, 6, 6, 10,10,10,10,10,10, 14,14,14,14,14,14,14,14,14,14,14,14, 18,18,18,18,18,18, & 2, 2, 2, 6, 6, 6, 10,10,10,10,10,10, 14,14,14,14,14,14,14,14,14,14,14,14, 18,18,18,18,18,18, 22,22,22, &
2, 2, 2, 6, 6, 6, 10,10,10,10,10,10, 14,14,14,14,14,14,14,14,14,14,14,14, 18,18,18,18,18,18, & 2, 2, 2, 6, 6, 6, 10,10,10,10,10,10, 14,14,14,14,14,14,14,14,14,14,14,14, 18,18,18,18,18,18, 22,22,22, &
2, 2, 2, 6, 6, 6, 10,10,10,10,10,10, 14,14,14,14,14,14,14,14,14,14,14,14, 18,18,18,18,18,18, & 2, 2, 2, 6, 6, 6, 10,10,10,10,10,10, 14,14,14,14,14,14,14,14,14,14,14,14, 18,18,18,18,18,18, 22,22,22, &
2, 2, 2, 6, 6, 6, 10,10,10,10,10,10, 14,14,14,14,14,14,14,14,14,14,14,14, 18,18,18,18,18,18, & 2, 2, 2, 6, 6, 6, 10,10,10,10,10,10, 14,14,14,14,14,14,14,14,14,14,14,14, 18,18,18,18,18,18, 22,22,22, &
2, 2, 2, 6, 6, 6, 10,10,10,10,10,10, 14,14,14,14,14,14,14,14,14,14,14,14, 18,18,18,18,18,18, & 2, 2, 2, 6, 6, 6, 10,10,10,10,10,10, 14,14,14,14,14,14,14,14,14,14,14,14, 18,18,18,18,18,18, 22,22,22, &
2, 2, 2, 6, 6, 6, 10,10,10,10,10,10, 14,14,14,14,14,14,14,14,14,14,14,14, 18,18,18,18,18,18, & 2, 2, 2, 6, 6, 6, 10,10,10,10,10,10, 14,14,14,14,14,14,14,14,14,14,14,14, 18,18,18,18,18,18, 22,22,22, &
! !
3, 3, 3, 7, 7, 7, 11,11,11,11,11,11, 15,15,15,15,15,15,15,15,15,15,15,15, 19,19,19,19,19,19, & 3, 3, 3, 7, 7, 7, 11,11,11,11,11,11, 15,15,15,15,15,15,15,15,15,15,15,15, 19,19,19,19,19,19, 23,23,23, &
3, 3, 3, 7, 7, 7, 11,11,11,11,11,11, 15,15,15,15,15,15,15,15,15,15,15,15, 19,19,19,19,19,19, & 3, 3, 3, 7, 7, 7, 11,11,11,11,11,11, 15,15,15,15,15,15,15,15,15,15,15,15, 19,19,19,19,19,19, 23,23,23, &
3, 3, 3, 7, 7, 7, 11,11,11,11,11,11, 15,15,15,15,15,15,15,15,15,15,15,15, 19,19,19,19,19,19, & 3, 3, 3, 7, 7, 7, 11,11,11,11,11,11, 15,15,15,15,15,15,15,15,15,15,15,15, 19,19,19,19,19,19, 23,23,23, &
3, 3, 3, 7, 7, 7, 11,11,11,11,11,11, 15,15,15,15,15,15,15,15,15,15,15,15, 19,19,19,19,19,19, & 3, 3, 3, 7, 7, 7, 11,11,11,11,11,11, 15,15,15,15,15,15,15,15,15,15,15,15, 19,19,19,19,19,19, 23,23,23, &
3, 3, 3, 7, 7, 7, 11,11,11,11,11,11, 15,15,15,15,15,15,15,15,15,15,15,15, 19,19,19,19,19,19, & 3, 3, 3, 7, 7, 7, 11,11,11,11,11,11, 15,15,15,15,15,15,15,15,15,15,15,15, 19,19,19,19,19,19, 23,23,23, &
3, 3, 3, 7, 7, 7, 11,11,11,11,11,11, 15,15,15,15,15,15,15,15,15,15,15,15, 19,19,19,19,19,19, & 3, 3, 3, 7, 7, 7, 11,11,11,11,11,11, 15,15,15,15,15,15,15,15,15,15,15,15, 19,19,19,19,19,19, 23,23,23, &
! !
4, 4, 4, 8, 8, 8, 12,12,12,12,12,12, 16,16,16,16,16,16,16,16,16,16,16,16, 20,20,20,20,20,20, & 4, 4, 4, 8, 8, 8, 12,12,12,12,12,12, 16,16,16,16,16,16,16,16,16,16,16,16, 20,20,20,20,20,20, 24,24,24, &
4, 4, 4, 8, 8, 8, 12,12,12,12,12,12, 16,16,16,16,16,16,16,16,16,16,16,16, 20,20,20,20,20,20, & 4, 4, 4, 8, 8, 8, 12,12,12,12,12,12, 16,16,16,16,16,16,16,16,16,16,16,16, 20,20,20,20,20,20, 24,24,24, &
4, 4, 4, 8, 8, 8, 12,12,12,12,12,12, 16,16,16,16,16,16,16,16,16,16,16,16, 20,20,20,20,20,20, & 4, 4, 4, 8, 8, 8, 12,12,12,12,12,12, 16,16,16,16,16,16,16,16,16,16,16,16, 20,20,20,20,20,20, 24,24,24, &
4, 4, 4, 8, 8, 8, 12,12,12,12,12,12, 16,16,16,16,16,16,16,16,16,16,16,16, 20,20,20,20,20,20, & 4, 4, 4, 8, 8, 8, 12,12,12,12,12,12, 16,16,16,16,16,16,16,16,16,16,16,16, 20,20,20,20,20,20, 24,24,24, &
4, 4, 4, 8, 8, 8, 12,12,12,12,12,12, 16,16,16,16,16,16,16,16,16,16,16,16, 20,20,20,20,20,20, & 4, 4, 4, 8, 8, 8, 12,12,12,12,12,12, 16,16,16,16,16,16,16,16,16,16,16,16, 20,20,20,20,20,20, 24,24,24, &
4, 4, 4, 8, 8, 8, 12,12,12,12,12,12, 16,16,16,16,16,16,16,16,16,16,16,16, 20,20,20,20,20,20 & 4, 4, 4, 8, 8, 8, 12,12,12,12,12,12, 16,16,16,16,16,16,16,16,16,16,16,16, 20,20,20,20,20,20, 24,24,24 &
],pInt),[lattice_hex_Ntwin,lattice_hex_Nslip],order=[2,1]) !< Twin--twin interaction types for hex (isotropic, 20 in total) ],pInt),[lattice_hex_Ntwin,lattice_hex_Nslip],order=[2,1]) !< Twin--twin interaction types for hex (isotropic, 20 in total)
integer(pInt), dimension(lattice_hex_Ntwin,lattice_hex_Ntwin), target, public :: & integer(pInt), dimension(lattice_hex_Ntwin,lattice_hex_Ntwin), target, public :: &