From b3814020f3eee11b425a415a7c64debb5f6e0b4f Mon Sep 17 00:00:00 2001 From: Yun Jo Ro Date: Wed, 6 Aug 2008 14:48:11 +0000 Subject: [PATCH] added slip and twin systems for hcp lattice structure added straightforward 48x48 interaction matrix --- trunk/lattice.f90 | 336 +++++++++++++++++++++++++++++++++++++++------- 1 file changed, 286 insertions(+), 50 deletions(-) diff --git a/trunk/lattice.f90 b/trunk/lattice.f90 index d09824dc9..77ffe208c 100644 --- a/trunk/lattice.f90 +++ b/trunk/lattice.f90 @@ -22,21 +22,28 @@ integer(pInt), parameter :: lattice_MaxLatticeStructure = 3 !* Total number of slip systems per lattice structure !* (has to be changed according the definition of slip systems) integer(pInt), dimension(lattice_MaxLatticeStructure), parameter :: lattice_MaxNslipOfStructure = & -reshape((/12,48,12/),(/lattice_MaxLatticeStructure/)) +reshape((/12,48,24/),(/lattice_MaxLatticeStructure/)) !* Total number of twin systems per lattice structure !* (has to be changed according the definition of twin systems) integer(pInt), dimension(lattice_MaxLatticeStructure), parameter :: lattice_MaxNtwinOfStructure = & -reshape((/12,0,0/),(/lattice_MaxLatticeStructure/)) +reshape((/12,0,24/),(/lattice_MaxLatticeStructure/)) !* Maximum number of slip systems over lattice structures integer(pInt), parameter :: lattice_MaxMaxNslipOfStructure = 48 -!* Maximum number of twin systems over lattice structures -integer(pInt), parameter :: lattice_MaxMaxNtwinOfStructure = 12 +!* Maximum number of twin systems over lattice structures, changed form 12 to 24 (yj.ro) +integer(pInt), parameter :: lattice_MaxMaxNtwinOfStructure = 24 !* Slip direction, slip normales and Schmid matrices real(pReal), dimension(3,3,lattice_MaxMaxNslipOfStructure,lattice_MaxLatticeStructure) :: lattice_Sslip real(pReal), dimension(6,lattice_MaxMaxNslipOfStructure,lattice_MaxLatticeStructure) :: lattice_Sslip_v real(pReal), dimension(3,lattice_MaxMaxNslipOfStructure,lattice_MaxLatticeStructure) :: lattice_sn real(pReal), dimension(3,lattice_MaxMaxNslipOfStructure,lattice_MaxLatticeStructure) :: lattice_sd real(pReal), dimension(3,lattice_MaxMaxNslipOfStructure,lattice_MaxLatticeStructure) :: lattice_st + +!* HCP - slip direction, slip normal (4 indices): Prof. Tom Bieler, Leeyun, YJRO +real(pReal), dimension(4,lattice_MaxMaxNslipOfStructure,lattice_MaxLatticeStructure) :: Hlattice_sn +real(pReal), dimension(4,lattice_MaxMaxNslipOfStructure,lattice_MaxLatticeStructure) :: Hlattice_sd +real(pReal), dimension(3,lattice_MaxMaxNslipOfStructure,lattice_MaxLatticeStructure) :: H_lattice_sn +real(pReal), dimension(3,lattice_MaxMaxNslipOfStructure,lattice_MaxLatticeStructure) :: H_lattice_sd + !* twin direction, twin normales, Schmid matrices and transformation matrices real(pReal), dimension(3,3,lattice_MaxMaxNtwinOfStructure,lattice_MaxLatticeStructure) :: lattice_Stwin real(pReal), dimension(6,lattice_MaxMaxNtwinOfStructure,lattice_MaxLatticeStructure) :: lattice_Stwin_v @@ -44,8 +51,18 @@ real(pReal), dimension(3,lattice_MaxMaxNtwinOfStructure,lattice_MaxLatticeStruct real(pReal), dimension(3,lattice_MaxMaxNtwinOfStructure,lattice_MaxLatticeStructure) :: lattice_td real(pReal), dimension(3,lattice_MaxMaxNtwinOfStructure,lattice_MaxLatticeStructure) :: lattice_tt real(pReal), dimension(3,3,lattice_MaxMaxNtwinOfStructure,lattice_MaxLatticeStructure) :: lattice_Qtwin + +!* HCP - twin direction, twin normales for 4 indices: Prof. Tom Bieler, Leeyun, YJR +real(pReal), dimension(4,lattice_MaxMaxNtwinOfStructure,lattice_MaxLatticeStructure) :: Hlattice_tn +real(pReal), dimension(4,lattice_MaxMaxNtwinOfStructure,lattice_MaxLatticeStructure) :: Hlattice_td +real(pReal), dimension(3,lattice_MaxMaxNtwinOfStructure,lattice_MaxLatticeStructure) :: H_lattice_tn +real(pReal), dimension(3,lattice_MaxMaxNtwinOfStructure,lattice_MaxLatticeStructure) :: H_lattice_td + + real(pReal), dimension(lattice_MaxLatticeStructure), parameter :: lattice_TwinShear = & reshape((/0.7071067812,0.7071067812,0.7071067812/),(/lattice_MaxLatticeStructure/)) ! Depends surely on c/a ratio for HCP + + !* Slip_slip interaction matrices integer(pInt), dimension(lattice_MaxMaxNslipOfStructure,lattice_MaxMaxNslipOfStructure,lattice_MaxLatticeStructure) :: & lattice_SlipIntType @@ -247,65 +264,210 @@ data lattice_SlipIntType(48,:,2)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 !*** Slip systems for HCP structures (3) *** !* Basal systems {0001}<1120> (independent of c/a-ratio) -!* 1- (0 0 0 1)[-2 1 1 0] -!* 2- (0 0 0 1)[ 1 -2 1 0] -!* 3- (0 0 0 1)[ 1 1 -2 0] -!* Plane (hkil)->(hkl) -!* Direction [uvtw]->[(u-t) (v-t) w] -!* Automatical transformation from Bravais to Miller +!* 1- [2 -1 -1 0](0 0 0 1) +!* 2- [-1 2 -1 0](0 0 0 1) +!* 3- [-1 -1 2 0](0 0 0 1) +!* Automatical transformation from Bravais (4 axes coorinate system) to Miller (in ortho-hexagonal coordinate system) !* not done for the moment -!* Sort? -data lattice_sd(:, 1,3)/-1, 0, 0/ ; data lattice_sn(:, 1,3)/ 0, 0, 1/ -data lattice_sd(:, 2,3)/ 0,-1, 0/ ; data lattice_sn(:, 2,3)/ 0, 0, 1/ -data lattice_sd(:, 3,3)/ 1, 1, 0/ ; data lattice_sn(:, 3,3)/ 0, 0, 1/ +!* Sort? Changed order of slip system and sign of Burges vector (Tom Bieler, yj.ro) +data Hlattice_sd(:, 1,3)/ 2, -1, -1, 0/ ; data Hlattice_sn(:, 1,3)/ 0, 0, 0, 1/ +data Hlattice_sd(:, 2,3)/-1, 2, -1, 0/ ; data Hlattice_sn(:, 2,3)/ 0, 0, 0, 1/ +data Hlattice_sd(:, 3,3)/-1, -1, 2, 0/ ; data Hlattice_sn(:, 3,3)/ 0, 0, 0, 1/ !* 1st type prismatic systems {1010}<1120> (independent of c/a-ratio) -!* 1- ( 0 1 -1 0)[-2 1 1 0] -!* 2- ( 1 0 -1 0)[ 1 -2 1 0] -!* 3- (-1 1 0 0)[ 1 1 -2 0] -!* Sort? -data lattice_sd(:, 4,3)/-1, 0, 0/ ; data lattice_sn(:, 4,3)/ 0, 1, 0/ -data lattice_sd(:, 5,3)/ 0,-1, 0/ ; data lattice_sn(:, 5,3)/ 1, 0, 0/ -data lattice_sd(:, 6,3)/ 1, 1, 0/ ; data lattice_sn(:, 6,3)/-1, 1, 0/ +!* 4- [ 2 -1 -1 0]( 0 1 -1 0) +!* 5- [-1 2 -1 0]( 1 0 -1 0) +!* 6- [-1 -1 2 0](-1 1 0 0) +!* Sort? Changed order of slip system and sign of Burges vector (yj.ro) +data Hlattice_sd(:, 4,3)/ 2, -1, -1, 0/ ; data Hlattice_sn(:, 4,3)/ 0, 1, -1, 0/ +data Hlattice_sd(:, 5,3)/-1, 2, -1, 0/ ; data Hlattice_sn(:, 5,3)/ 1, 0, -1, 0/ +data Hlattice_sd(:, 6,3)/-1, -1, 2, 0/ ; data Hlattice_sn(:, 6,3)/-1, 1, 0, 0/ !* 1st type 1st order pyramidal systems {1011}<1120> !* plane normales depend on the c/a-ratio -!* 1- ( 0 -1 1 1)[-2 1 1 0] -!* 2- ( 0 1 -1 1)[-2 1 1 0] -!* 3- (-1 0 1 1)[ 1 -2 1 0] -!* 4- ( 1 0 -1 1)[ 1 -2 1 0] -!* 5- (-1 1 0 1)[ 1 1 -2 0] -!* 6- ( 1 -1 0 1)[ 1 1 -2 0] -!* Sort? -data lattice_sd(:, 7,3)/-1, 0, 0/ ; data lattice_sn(:, 7,3)/ 0,-1, 1/ -data lattice_sd(:, 8,3)/ 0,-1, 0/ ; data lattice_sn(:, 8,3)/ 0, 1, 1/ -data lattice_sd(:, 9,3)/ 1, 1, 0/ ; data lattice_sn(:, 9,3)/-1, 0, 1/ -data lattice_sd(:,10,3)/-1, 0, 0/ ; data lattice_sn(:,10,3)/ 1, 0, 1/ -data lattice_sd(:,11,3)/ 0,-1, 0/ ; data lattice_sn(:,11,3)/-1, 1, 1/ -data lattice_sd(:,12,3)/ 1, 1, 0/ ; data lattice_sn(:,12,3)/ 1,-1, 1/ +!* 7- [ 2 -1 -1 0]( 0 1 -1 1) +!* 8- [-1 2 -1 0]( 1 0 -1 1) +!* 9- [-1 -1 2 0](-1 1 0 1) +!* 10- [ 2 -1 -1 0]( 0 -1 1 1) +!* 11- [-1 2 -1 0](-1 0 1 1) +!* 12- [-1 -1 2 0]( 1 -1 0 1) +!* Sort? Changed order of slip system and sign of Burges vector (Tom Bieler, yj.ro) +data Hlattice_sd(:, 7,3)/ 2, -1, -1, 0/ ; data Hlattice_sn(:, 7,3)/ 0, 1, -1, 1/ +data Hlattice_sd(:, 8,3)/-1, 2, -1, 0/ ; data Hlattice_sn(:, 8,3)/ 1, 0, -1, 1/ +data Hlattice_sd(:, 9,3)/-1, -1, 2, 0/ ; data Hlattice_sn(:, 9,3)/-1, 1, 0, 1/ +data Hlattice_sd(:,10,3)/ 2, -1, -1, 0/ ; data Hlattice_sn(:,10,3)/ 0, -1, 1, 1/ +data Hlattice_sd(:,11,3)/-1, 2, -1, 0/ ; data Hlattice_sn(:,11,3)/-1, 0, 1, 1/ +data Hlattice_sd(:,12,3)/-1, -1, 2, 0/ ; data Hlattice_sn(:,12,3)/ 1, -1, 0, 1/ +!* pyramidal system: c+a slip {1011}<2113> +!* plane normales depend on the c/a-ratio +!* added by Tom Bieler, yj.ro +!* 13- [ 2 -1 -1 -3]( 1 0 -1 1) +!* 14- [ 1 1 -2 -3]( 1 0 -1 1) +!* 15- [ 1 1 -2 -3]( 0 1 -1 1) +!* 16- [-1 2 -1 -3]( 0 1 -1 1) +!* 17- [-1 2 -1 -3](-1 1 0 1) +!* 18- [-2 1 1 -3](-1 1 0 1) +!* 19- [-2 1 1 -3](-1 0 1 1) +!* 20- [-1 -1 2 -3](-1 0 1 1) +!* 21- [-1 -1 2 -3]( 0 -1 1 1) +!* 22- [ 1 -2 1 -3]( 0 -1 1 1) +!* 23- [ 1 -2 1 -3]( 1 -1 0 1) +!* 24- [ 2 -1 -1 -3]( 1 -1 0 1) +data Hlattice_sd(:,13,3)/ 2, -1, -1, -3/ ; data Hlattice_sn(:,13,3)/ 1, 0, -1, 1/ +data Hlattice_sd(:,14,3)/ 1, 1, -2, -3/ ; data Hlattice_sn(:,14,3)/ 1, 0, -1, 1/ +data Hlattice_sd(:,15,3)/ 1, 1, -2, -3/ ; data Hlattice_sn(:,15,3)/ 0, 1, -1, 1/ +data Hlattice_sd(:,16,3)/-1, 2, -1, -3/ ; data Hlattice_sn(:,16,3)/ 0, 1, -1, 1/ +data Hlattice_sd(:,17,3)/-1, 2, -1, -3/ ; data Hlattice_sn(:,17,3)/-1, 1, 0, 1/ +data Hlattice_sd(:,18,3)/-2, 1, 1, -3/ ; data Hlattice_sn(:,18,3)/-1, 1, 0, 1/ +data Hlattice_sd(:,19,3)/-2, 1, 1, -3/ ; data Hlattice_sn(:,19,3)/-1, 0, 1, 1/ +data Hlattice_sd(:,20,3)/-1, -1, 2, -3/ ; data Hlattice_sn(:,20,3)/-1, 0, 1, 1/ +data Hlattice_sd(:,21,3)/-1, -1, 2, -3/ ; data Hlattice_sn(:,21,3)/ 0, -1, 1, 1/ +data Hlattice_sd(:,22,3)/ 1, -2, 1, -3/ ; data Hlattice_sn(:,22,3)/ 0, -1, 1, 1/ +data Hlattice_sd(:,23,3)/ 1, -2, 1, -3/ ; data Hlattice_sn(:,23,3)/ 1, -1, 0, 1/ +data Hlattice_sd(:,24,3)/ 2, -1, -1, -3/ ; data Hlattice_sn(:,24,3)/ 1, -1, 0, 1/ !*** Twin systems for HCP structures (3) *** -!* System {1012}<1011> -!* Sort? +!* Sort? Numbering of twin system follows Prof. Tom Bieler's scheme (to be consistent with his work); but numbering in data was restarted from 1 & +!*(to be consistent with this code structure). !* MISSING: not implemented yet +!* added by Tom Bieler, yj.ro + +!* (1012)<1011> Twin: shear 0.169 -1.26 compression +!* 25- [-1 0 1 1]( 1 0 -1 2) +!* 26- [ 0 -1 1 1]( 0 1 -1 2) +!* 27- [ 1 -1 0 1](-1 1 0 2) +!* 28- [ 1 0 -1 1](-1 0 1 2) +!* 29- [ 0 1 -1 1]( 0 -1 1 2) +!* 30- [-1 1 0 1]( 1 -1 0 2) +data Hlattice_td(:, 1,3)/-1, 0, 1, 1/ ; data Hlattice_tn(:, 1,3)/ 1, 0, -1, 2/ +data Hlattice_td(:, 2,3)/ 0, -1, 1, 1/ ; data Hlattice_tn(:, 2,3)/ 0, 1, -1, 2/ +data Hlattice_td(:, 3,3)/ 1, -1, 0, 1/ ; data Hlattice_tn(:, 3,3)/-1, 1, 0, 2/ +data Hlattice_td(:, 4,3)/ 1, 0, -1, 1/ ; data Hlattice_tn(:, 4,3)/-1, 0, 1, 2/ +data Hlattice_td(:, 5,3)/ 0, 1, -1, 1/ ; data Hlattice_tn(:, 5,3)/ 0, -1, 1, 2/ +data Hlattice_td(:, 6,3)/-1, 1, 0, 1/ ; data Hlattice_tn(:, 6,3)/ 1, -1, 0, 2/ + + +!*(2112)<211-2> Twin: shear 0.224 1.19 tension +!* 31- [ 2 -1 -1 -3]( 2 -1 -1 2) +!* 32- [ 1 1 -2 -3]( 1 1 -2 2) +!* 33- [-1 2 -1 -3](-1 2 -1 2) +!* 34- [-2 1 1 -3](-2 1 1 2) +!* 35- [-1 -1 2 -3](-1 -1 2 2) +!* 36- [ 1 -2 1 -3]( 1 -2 1 2) +data Hlattice_td(:, 7,3)/ 2, -1, -1, -3/ ; data Hlattice_tn(:, 7,3)/ 2, -1, -1, 2/ +data Hlattice_td(:, 8,3)/ 1, 1, -2, -3/ ; data Hlattice_tn(:, 8,3)/ 1, 1, -2, 2/ +data Hlattice_td(:, 9,3)/-1, 2, -1, -3/ ; data Hlattice_tn(:, 9,3)/-1, 2, -1, 2/ +data Hlattice_td(:,10,3)/-2, 1, 1, -3/ ; data Hlattice_tn(:,10,3)/-2, 1, 1, 2/ +data Hlattice_td(:,11,3)/-1, -1, 2, -3/ ; data Hlattice_tn(:,11,3)/-1, -1, 2, 2/ +data Hlattice_td(:,12,3)/1, -2, 1, -3/ ; data Hlattice_tn(:,12,3)/ 1, -2, 1, 2/ + + +!* (2111)<211-6> Twin: shear 0.628 -0.39 compressio +!* 37- [-2 1 1 6]( 2 -1 -1 1) +!* 38- [-1 -1 2 6]( 1 1 -2 1) +!* 39- [ 1 -2 1 6](-1 2 -1 1) +!* 40- [ 2 -1 -1 6](-2 1 1 1) +!* 41- [ 1 1 -2 6](-1 -1 2 1) +!* 42- [-1 2 -1 6]( 1 -2 1 1) +data Hlattice_td(:,13,3)/-2, 1, 1, 6/ ; data Hlattice_tn(:,13,3)/ 2, -1, -1, 1/ +data Hlattice_td(:,14,3)/-1, -1, 2, 6/ ; data Hlattice_tn(:,14,3)/ 1, 1, -2, 1/ +data Hlattice_td(:,15,3)/ 1, -2, 1, 6/ ; data Hlattice_tn(:,15,3)/-1, 2, -1, 1/ +data Hlattice_td(:,16,3)/ 2, -1, -1, 6/ ; data Hlattice_tn(:,16,3)/-2, 1, 1, 1/ +data Hlattice_td(:,17,3)/ 1, 1, -2, 6/ ; data Hlattice_tn(:,17,3)/-1, -1, 2, 1/ +data Hlattice_td(:,18,3)/-1, 2, -1, 6/ ; data Hlattice_tn(:,18,3)/ 1, -2, 1, 1/ + + +!* (1011)<101-2> Twin: shear 0.103 1.09 tension +!* 43- [ 1 0 -1 -2]( 1 0 -1 1) +!* 44- [-1 0 1 -2](-1 0 1 1) +!* 45- [ 0 1 -1 -2]( 0 1 -1 1) +!* 46- [ 0 -1 2 -2]( 0 -1 1 1) +!* 47- [ 1 -1 0 -2]( 1 -1 0 1) +!* 48- [-1 1 0 -2](-1 1 0 1) +data Hlattice_td(:,19,3)/ 1, 0, -1, -2/ ; data Hlattice_tn(:,19,3)/ 1, 0, -1, 1/ +data Hlattice_td(:,20,3)/-1, 0, 1, -2/ ; data Hlattice_tn(:,20,3)/-1, 0, 1, 1/ +data Hlattice_td(:,21,3)/ 0, 1, -1, -2/ ; data Hlattice_tn(:,21,3)/ 0, 1, -1, 1/ +data Hlattice_td(:,22,3)/ 0, -1, 1, -2/ ; data Hlattice_tn(:,22,3)/ 0, -1, 1, 1/ +data Hlattice_td(:,23,3)/ 1, -1, 0, -2/ ; data Hlattice_tn(:,23,3)/ 1, -1, 0, 1/ +data Hlattice_td(:,24,3)/-1, 1, 0, -2/ ; data Hlattice_tn(:,24,3)/-1, 1, 0, 1/ + !*** Slip-Slip interactions for HCP structures (3) *** -data lattice_SlipIntType( 1,1:lattice_MaxNslipOfStructure(3),3)/1,2,2,2,2,2,2,2,2,2,2,2/ -data lattice_SlipIntType( 2,1:lattice_MaxNslipOfStructure(3),3)/2,1,2,2,2,2,2,2,2,2,2,2/ -data lattice_SlipIntType( 3,1:lattice_MaxNslipOfStructure(3),3)/2,2,1,2,2,2,2,2,2,2,2,2/ -data lattice_SlipIntType( 4,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,1,2,2,2,2,2,2,2,2/ -data lattice_SlipIntType( 5,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,2,1,2,2,2,2,2,2,2/ -data lattice_SlipIntType( 6,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,2,2,1,2,2,2,2,2,2/ -data lattice_SlipIntType( 7,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,2,2,2,1,2,2,2,2,2/ -data lattice_SlipIntType( 8,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,2,2,2,2,1,2,2,2,2/ -data lattice_SlipIntType( 9,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,2,2,2,2,2,1,2,2,2/ -data lattice_SlipIntType(10,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,2,2,2,2,2,2,1,2,2/ -data lattice_SlipIntType(11,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,1,2/ -data lattice_SlipIntType(12,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,1/ +data lattice_SlipIntType( 1,1:lattice_MaxNslipOfStructure(3),3)/1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_SlipIntType( 2,1:lattice_MaxNslipOfStructure(3),3)/1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_SlipIntType( 3,1:lattice_MaxNslipOfStructure(3),3)/1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_SlipIntType( 4,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_SlipIntType( 5,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_SlipIntType( 6,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_SlipIntType( 7,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_SlipIntType( 8,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_SlipIntType( 9,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_SlipIntType(10,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_SlipIntType(11,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_SlipIntType(12,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_SlipIntType(13,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_SlipIntType(14,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2/ +data lattice_SlipIntType(15,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2/ +data lattice_SlipIntType(16,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2/ +data lattice_SlipIntType(17,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2/ +data lattice_SlipIntType(18,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2/ +data lattice_SlipIntType(19,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2/ +data lattice_SlipIntType(20,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2/ +data lattice_SlipIntType(21,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2/ +data lattice_SlipIntType(22,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2/ +data lattice_SlipIntType(23,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2/ +data lattice_SlipIntType(24,1:lattice_MaxNslipOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1/ !*** slip-twin interactions for HCP structures (3) *** -! MISSING: not implemented yet +data lattice_SlipTwinIntType( 1,1:lattice_MaxNtwinOfStructure(3),3)/1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_SlipTwinIntType( 2,1:lattice_MaxNtwinOfStructure(3),3)/2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_SlipTwinIntType( 3,1:lattice_MaxNtwinOfStructure(3),3)/2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_SlipTwinIntType( 4,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_SlipTwinIntType( 5,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_SlipTwinIntType( 6,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_SlipTwinIntType( 7,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_SlipTwinIntType( 8,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_SlipTwinIntType( 9,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_SlipTwinIntType(10,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_SlipTwinIntType(11,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_SlipTwinIntType(12,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_SlipTwinIntType(13,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_SlipTwinIntType(14,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2/ +data lattice_SlipTwinIntType(15,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2/ +data lattice_SlipTwinIntType(16,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2/ +data lattice_SlipTwinIntType(17,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2/ +data lattice_SlipTwinIntType(18,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2/ +data lattice_SlipTwinIntType(19,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2/ +data lattice_SlipTwinIntType(20,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2/ +data lattice_SlipTwinIntType(21,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2/ +data lattice_SlipTwinIntType(22,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2/ +data lattice_SlipTwinIntType(23,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2/ +data lattice_SlipTwinIntType(24,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1/ !*** Twin-twin interactions for HCP structures (3) *** -! MISSING: not implemented yet +data lattice_TwinIntType( 1,1:lattice_MaxNtwinOfStructure(3),3)/1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_TwinIntType( 2,1:lattice_MaxNtwinOfStructure(3),3)/2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_TwinIntType( 3,1:lattice_MaxNtwinOfStructure(3),3)/2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_TwinIntType( 4,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_TwinIntType( 5,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_TwinIntType( 6,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_TwinIntType( 7,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_TwinIntType( 8,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_TwinIntType( 9,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_TwinIntType(10,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_TwinIntType(11,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_TwinIntType(12,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_TwinIntType(13,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2/ +data lattice_TwinIntType(14,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2/ +data lattice_TwinIntType(15,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2/ +data lattice_TwinIntType(16,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2/ +data lattice_TwinIntType(17,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2/ +data lattice_TwinIntType(18,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2/ +data lattice_TwinIntType(19,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2/ +data lattice_TwinIntType(20,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2/ +data lattice_TwinIntType(21,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2/ +data lattice_TwinIntType(22,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2/ +data lattice_TwinIntType(23,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2/ +data lattice_TwinIntType(24,1:lattice_MaxNtwinOfStructure(3),3)/2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1/ + CONTAINS @@ -334,6 +496,61 @@ implicit none !* Definition of variables integer(pInt) i,j,k,l real(pReal) norm_d,norm_t,norm_n +real(pReal) norm_sn, norm_sd, norm_tn, norm_td, ratio + +!*** Only HCP crystal: converting from 4 axes coordinate system (a1=a2=a3=c) to ortho-hexgonal system (a, b, c) +!* Plane (hkil)->(h (h+2k)/sqrt(3) l/(c/a)): this has been changed to unit vector afterward. +!* Direction [uvtw]->[3u/2 (u+2v)*sqrt(3)/2 w*(c/a)]: this has been changed to unit vector afterward. +!* Equations provided by Prof. Tom Bieler +!* need to input "c/a rati"o in somewhere in mattax.mpie file(I am not sure where to insert this value for now????). + +ratio = 1.56 + +do i = 1,lattice_MaxNslipOfStructure(3) + +!* slip system conversion + H_lattice_sn(1,i,3) = Hlattice_sn(1,i,3) + H_lattice_sn(2,i,3) = (Hlattice_sn(1,i,3)+ 2.0*Hlattice_sn(2,i,3))/sqrt(3.0) + H_lattice_sn(3,i,3) = Hlattice_sn(4,i,3)/ratio + + norm_sn = dsqrt(H_lattice_sn(1,i,3)**2 + H_lattice_sn(2,i,3)**2 + H_lattice_sn(3,i,3)**2) + + lattice_sn(1,i,3) = H_lattice_sn(1,i,3)/norm_sn + lattice_sn(2,i,3) = H_lattice_sn(2,i,3)/norm_sn + lattice_sn(3,i,3) = H_lattice_sn(3,i,3)/norm_sn + + H_lattice_sd(1,i,3) = 1.5*Hlattice_sd(1,i,3) + H_lattice_sd(2,i,3) = (Hlattice_sd(1,i,3) + 2.0*Hlattice_sd(2,i,3))*(sqrt(3.0)/2.0) + H_lattice_sd(3,i,3) = Hlattice_sd(4,i,3)*ratio + + norm_sd = dsqrt(H_lattice_sd(1,i,3)**2 + H_lattice_sd(2,i,3)**2 + H_lattice_sd(3,i,3)**2) + + lattice_sd(1,i,3) = H_lattice_sd(1,i,3)/norm_sd + lattice_sd(2,i,3) = H_lattice_sd(2,i,3)/norm_sd + lattice_sd(3,i,3) = H_lattice_sd(3,i,3)/norm_sd + +!* twin system conversion + H_lattice_tn(1,i,3) = Hlattice_tn(1,i,3) + H_lattice_tn(2,i,3) = (Hlattice_tn(1,i,3)+ 2.0*Hlattice_tn(2,i,3))/sqrt(3.0) + H_lattice_tn(3,i,3) = Hlattice_tn(4,i,3)/ratio + + norm_tn = dsqrt(H_lattice_tn(1,i,3)**2 + H_lattice_tn(2,i,3)**2 + H_lattice_tn(3,i,3)**2) + + lattice_tn(1,i,3) = H_lattice_tn(1,i,3)/norm_tn + lattice_tn(2,i,3) = H_lattice_tn(2,i,3)/norm_tn + lattice_tn(3,i,3) = H_lattice_tn(3,i,3)/norm_tn + + H_lattice_td(1,i,3) = 1.5*Hlattice_td(1,i,3) + H_lattice_td(2,i,3) = (Hlattice_td(1,i,3)+ 2.0*Hlattice_td(2,i,3))*(sqrt(3.0)/2.0) + H_lattice_td(3,i,3) = Hlattice_td(4,i,3)*ratio + + norm_td = dsqrt(H_lattice_td(1,i,3)**2 + H_lattice_td(2,i,3)**2 + H_lattice_td(3,i,3)**2) + + lattice_td(1,i,3) = H_lattice_td(1,i,3)/norm_td + lattice_td(2,i,3) = H_lattice_td(2,i,3)/norm_td + lattice_td(3,i,3) = H_lattice_td(3,i,3)/norm_td + +enddo !* Iteration over the lattice structures do l=1,lattice_MaxLatticeStructure @@ -385,6 +602,25 @@ do l=1,lattice_MaxLatticeStructure enddo enddo +!*** printout schmid matrix (0nly Hexagonal structure)to check if the conversion is correctly done. + +!* define the output location +!open(7, FILE='slip.prn') +!open(8, FILE='twin.prn') +! +!do k = 1,24 +! write(7,*) k +! write(7,*) lattice_Sslip(1,1,k,3),lattice_Sslip(1,2,k,3),lattice_Sslip(1,3,k,3) +! write(7,*) lattice_Sslip(2,1,k,3),lattice_Sslip(2,2,k,3),lattice_Sslip(2,3,k,3) +! write(7,*) lattice_Sslip(3,1,k,3),lattice_Sslip(3,2,k,3),lattice_Sslip(3,3,k,3) +! write(7,*) +! write(8,*) k +! write(8,*) lattice_Stwin(1,1,k,3),lattice_Stwin(2,2,k,3),lattice_Stwin(3,3,k,3) +! write(8,*) lattice_Stwin(2,1,k,3),lattice_Stwin(2,2,k,3),lattice_Stwin(2,3,k,3) +! write(8,*) lattice_Stwin(3,1,k,3),lattice_Stwin(3,2,k,3),lattice_Stwin(3,3,k,3) +! write(8,*) +!enddo + end subroutine END MODULE