corrected buggy calculation of Schmid matrix for twins introduced in rev1809.
(stress acting on twin systems was overestimated by factor of sqrt(3) due to that!!) additional polishing.
This commit is contained in:
parent
11ed7fab86
commit
1e32eb560e
|
@ -171,7 +171,7 @@ module lattice
|
|||
!< Interaction types
|
||||
!< 1 --- self interaction
|
||||
!< 2 --- coplanar interaction
|
||||
!< 3 --- colinear interaction
|
||||
!< 3 --- collinear interaction
|
||||
!< 4 --- Hirth locks
|
||||
!< 5 --- glissile junctions
|
||||
!< 6 --- Lomer locks
|
||||
|
@ -193,8 +193,8 @@ module lattice
|
|||
],pInt),[lattice_fcc_Nslip,lattice_fcc_Ntwin],order=[2,1])
|
||||
!< Interaction types
|
||||
!< 1 --- coplanar interaction
|
||||
!< 2 --- colinear interaction
|
||||
!< 3 --- hardened interaction
|
||||
!< 2 --- screw trace between slip system and twin habit plane (easy cross slip)
|
||||
!< 3 --- other interaction
|
||||
|
||||
integer(pInt), dimension(lattice_fcc_Ntwin,lattice_fcc_Nslip), target, private :: &
|
||||
lattice_fcc_interactionTwinSlip = 0_pInt
|
||||
|
@ -226,10 +226,10 @@ module lattice
|
|||
lattice_bcc_NtwinSystem = int([ 12, 0, 0, 0], pInt)
|
||||
|
||||
integer(pInt), parameter, private :: &
|
||||
lattice_bcc_Nslip = 24_pInt ! sum(lattice_bcc_NslipSystem)
|
||||
lattice_bcc_Nslip = 24_pInt ! sum(lattice_bcc_NslipSystem)
|
||||
|
||||
integer(pInt), parameter, private :: &
|
||||
lattice_bcc_Ntwin = 12_pInt ! sum(lattice_bcc_NtwinSystem)
|
||||
lattice_bcc_Ntwin = 12_pInt ! sum(lattice_bcc_NtwinSystem)
|
||||
|
||||
integer(pInt), private :: &
|
||||
lattice_bcc_Nstructure = 0_pInt
|
||||
|
@ -322,33 +322,34 @@ module lattice
|
|||
0.7071067812_pReal &
|
||||
],[lattice_bcc_Ntwin])
|
||||
|
||||
!> slip--slip interactions for BCC structures (2) from Lee et-al. Int J of Plast. (v15) 1999 pp. 625-645
|
||||
! slip--slip interactions for BCC structures (2) from Lee et al. Int J Plast 15 (1999) 625-645
|
||||
integer(pInt), dimension(lattice_bcc_Nslip,lattice_bcc_Nslip), target, private :: &
|
||||
lattice_bcc_interactionSlipSlip = reshape(int( [&
|
||||
1,3,6,6,5,4,4,2,4,2,5,4,6,6,4,2,2,4,6,6,4,2,6,6, & ! ---> slip
|
||||
3,1,6,6,4,2,5,4,5,4,4,2,6,6,2,4,4,2,6,6,2,4,6,6, & ! |
|
||||
6,6,1,3,4,5,2,4,4,5,2,4,4,2,6,6,6,6,2,4,6,6,4,2, & ! |
|
||||
6,6,3,1,2,4,4,5,2,4,4,5,2,4,6,6,6,6,4,2,6,6,2,4, & ! v slip
|
||||
5,4,4,2,1,3,6,6,2,4,5,4,2,6,4,6,6,4,6,2,4,6,2,6, &
|
||||
4,2,5,4,3,1,6,6,4,5,4,2,4,6,2,6,6,2,6,4,2,6,4,6, &
|
||||
4,5,2,4,6,6,1,3,5,4,2,4,6,2,6,4,4,6,2,6,6,4,6,2, &
|
||||
2,4,4,5,6,6,3,1,4,2,4,5,6,4,6,2,2,6,4,6,6,2,6,4, &
|
||||
4,5,4,2,2,4,5,4,1,3,6,6,2,6,6,4,4,6,6,2,6,4,2,6, &
|
||||
2,4,5,4,4,5,4,2,3,1,6,6,4,6,6,2,2,6,6,4,6,2,4,6, &
|
||||
5,4,2,4,5,4,2,4,6,6,1,3,6,2,4,6,6,4,2,6,4,6,6,2, &
|
||||
4,2,4,5,4,2,4,5,6,6,3,1,6,4,2,6,6,2,4,6,2,6,6,4, &
|
||||
6,6,4,2,2,4,6,6,2,4,6,6,1,5,6,6,5,6,6,2,5,6,2,6, &
|
||||
6,6,2,4,6,6,2,4,6,6,2,4,5,1,6,6,6,5,2,6,6,5,6,2, &
|
||||
4,2,6,6,4,2,6,6,6,6,4,2,6,6,1,5,6,2,5,6,2,6,5,6, &
|
||||
2,4,6,6,6,6,4,2,4,2,6,6,6,6,5,1,2,6,6,5,6,2,6,5, &
|
||||
2,4,6,6,6,6,4,2,4,2,6,6,5,6,6,2,1,6,5,6,5,2,6,6, &
|
||||
4,2,6,6,4,2,6,6,6,6,4,2,6,5,2,6,6,1,6,5,2,5,6,6, &
|
||||
6,6,2,4,6,6,2,4,6,6,2,4,6,2,5,6,5,6,1,6,6,6,5,2, &
|
||||
6,6,4,2,2,4,6,6,2,4,6,6,2,6,6,5,6,5,6,1,6,6,2,5, &
|
||||
4,2,6,6,4,2,6,6,6,6,4,2,5,6,2,6,5,2,6,6,1,6,6,5, &
|
||||
2,4,6,6,6,6,4,2,4,2,6,6,6,5,6,2,2,5,6,6,6,1,5,6, &
|
||||
6,6,4,2,2,4,6,6,2,4,6,6,2,6,5,6,6,6,5,2,6,5,1,6, &
|
||||
6,6,2,4,6,6,2,4,6,6,2,4,6,2,6,5,6,6,2,5,5,6,6,1 &
|
||||
1,3,6,6,5,4,4,2,4,2,5,4, 6,6,4,2,2,4,6,6,4,2,6,6, & ! ---> slip
|
||||
3,1,6,6,4,2,5,4,5,4,4,2, 6,6,2,4,4,2,6,6,2,4,6,6, & ! |
|
||||
6,6,1,3,4,5,2,4,4,5,2,4, 4,2,6,6,6,6,2,4,6,6,4,2, & ! |
|
||||
6,6,3,1,2,4,4,5,2,4,4,5, 2,4,6,6,6,6,4,2,6,6,2,4, & ! v slip
|
||||
5,4,4,2,1,3,6,6,2,4,5,4, 2,6,4,6,6,4,6,2,4,6,2,6, &
|
||||
4,2,5,4,3,1,6,6,4,5,4,2, 4,6,2,6,6,2,6,4,2,6,4,6, &
|
||||
4,5,2,4,6,6,1,3,5,4,2,4, 6,2,6,4,4,6,2,6,6,4,6,2, &
|
||||
2,4,4,5,6,6,3,1,4,2,4,5, 6,4,6,2,2,6,4,6,6,2,6,4, &
|
||||
4,5,4,2,2,4,5,4,1,3,6,6, 2,6,6,4,4,6,6,2,6,4,2,6, &
|
||||
2,4,5,4,4,5,4,2,3,1,6,6, 4,6,6,2,2,6,6,4,6,2,4,6, &
|
||||
5,4,2,4,5,4,2,4,6,6,1,3, 6,2,4,6,6,4,2,6,4,6,6,2, &
|
||||
4,2,4,5,4,2,4,5,6,6,3,1, 6,4,2,6,6,2,4,6,2,6,6,4, &
|
||||
!
|
||||
6,6,4,2,2,4,6,6,2,4,6,6, 1,5,6,6,5,6,6,2,5,6,2,6, &
|
||||
6,6,2,4,6,6,2,4,6,6,2,4, 5,1,6,6,6,5,2,6,6,5,6,2, &
|
||||
4,2,6,6,4,2,6,6,6,6,4,2, 6,6,1,5,6,2,5,6,2,6,5,6, &
|
||||
2,4,6,6,6,6,4,2,4,2,6,6, 6,6,5,1,2,6,6,5,6,2,6,5, &
|
||||
2,4,6,6,6,6,4,2,4,2,6,6, 5,6,6,2,1,6,5,6,5,2,6,6, &
|
||||
4,2,6,6,4,2,6,6,6,6,4,2, 6,5,2,6,6,1,6,5,2,5,6,6, &
|
||||
6,6,2,4,6,6,2,4,6,6,2,4, 6,2,5,6,5,6,1,6,6,6,5,2, &
|
||||
6,6,4,2,2,4,6,6,2,4,6,6, 2,6,6,5,6,5,6,1,6,6,2,5, &
|
||||
4,2,6,6,4,2,6,6,6,6,4,2, 5,6,2,6,5,2,6,6,1,6,6,5, &
|
||||
2,4,6,6,6,6,4,2,4,2,6,6, 6,5,6,2,2,5,6,6,6,1,5,6, &
|
||||
6,6,4,2,2,4,6,6,2,4,6,6, 2,6,5,6,6,6,5,2,6,5,1,6, &
|
||||
6,6,2,4,6,6,2,4,6,6,2,4, 6,2,6,5,6,6,2,5,5,6,6,1 &
|
||||
],pInt),[lattice_bcc_Nslip,lattice_bcc_Nslip],order=[2,1])
|
||||
!< Interaction types
|
||||
!< 1 --- self interaction
|
||||
|
@ -372,6 +373,7 @@ module lattice
|
|||
3,3,3,2,2,3,3,3,3,2,3,3, &
|
||||
3,2,3,3,3,3,2,3,3,3,3,2, &
|
||||
3,3,2,3,3,2,3,3,2,3,3,3, &
|
||||
!
|
||||
1,3,3,3,3,3,3,2,3,3,2,3, &
|
||||
3,1,3,3,3,3,2,3,3,3,3,2, &
|
||||
3,3,1,3,3,2,3,3,2,3,3,3, &
|
||||
|
@ -387,14 +389,14 @@ module lattice
|
|||
],pInt),[lattice_bcc_Nslip,lattice_bcc_Ntwin],order=[2,1])
|
||||
!< Interaction types
|
||||
!< 1 --- coplanar interaction
|
||||
!< 2 --- colinear interaction
|
||||
!< 3 --- hardened interaction
|
||||
!< 2 --- screw trace between slip system and twin habit plane (easy cross slip)
|
||||
!< 3 --- other interaction
|
||||
|
||||
!>twin--slip interactions for BCC structures (2) MISSING: not implemented yet
|
||||
! twin--slip interactions for BCC structures (2) MISSING: not implemented yet
|
||||
integer(pInt), dimension(lattice_bcc_Ntwin,lattice_bcc_Nslip), target, private :: &
|
||||
lattice_bcc_interactionTwinSlip = 0_pInt
|
||||
|
||||
!> twin-twin interactions for BCC structures (2) MISSING: not implemented yet
|
||||
! twin--twin interactions for BCC structures (2)
|
||||
integer(pInt), dimension(lattice_bcc_Ntwin,lattice_bcc_Ntwin), target, private :: &
|
||||
lattice_bcc_interactionTwinTwin = reshape(int( [&
|
||||
1,3,3,3,3,3,3,2,3,3,2,3, & ! ---> twin
|
||||
|
@ -412,13 +414,14 @@ module lattice
|
|||
],pInt),[lattice_bcc_Ntwin,lattice_bcc_Ntwin],order=[2,1])
|
||||
!< Interaction types
|
||||
!< 1 --- self interaction
|
||||
!< 2 --- coplinear interaction
|
||||
!< 3 --- hardened interaction
|
||||
!< 2 --- collinear interaction
|
||||
!< 3 --- other interaction
|
||||
|
||||
!--------------------------------------------------------------------------------------------------
|
||||
! hex (3+)
|
||||
|
||||
integer(pInt), dimension(lattice_maxNslipFamily), parameter, private :: &
|
||||
lattice_hex_NslipSystem = int([ 3, 3, 6,12, 6],pInt)
|
||||
lattice_hex_NslipSystem = int([ 3, 3, 6, 12, 6],pInt)
|
||||
|
||||
integer(pInt), dimension(lattice_maxNtwinFamily), parameter, private :: &
|
||||
lattice_hex_NtwinSystem = int([ 6, 6, 6, 6],pInt)
|
||||
|
@ -916,20 +919,20 @@ integer(pInt) function lattice_initializeStructure(struct,CoverA)
|
|||
lattice_Sslip(1:3,1:3,i,myStructure) = math_tensorproduct(lattice_sd(1:3,i,myStructure), &
|
||||
lattice_sn(1:3,i,myStructure))
|
||||
lattice_Sslip_v(1:6,i,myStructure) = math_Mandel33to6(math_symmetric33(lattice_Sslip(1:3,1:3,i,myStructure)))
|
||||
if (abs(math_trace33(lattice_Sslip(1:3,1:3,i,myStructure))) > 1.0e-8) &
|
||||
if (abs(math_trace33(lattice_Sslip(1:3,1:3,i,myStructure))) > 1.0e-8_pReal) &
|
||||
call IO_error(0_pInt,myStructure,i,0_pInt,ext_msg = 'dilatational slip Schmid matrix')
|
||||
enddo
|
||||
do i = 1_pInt,myNtwin ! store twin system vectors and Schmid plus rotation matrix for my structure
|
||||
lattice_td(1:3,i,myStructure) = td(1:3,i)/math_norm3(sd(1:3,i)) ! make unit vector
|
||||
lattice_tn(1:3,i,myStructure) = tn(1:3,i)/math_norm3(sn(1:3,i)) ! make unit vector
|
||||
lattice_td(1:3,i,myStructure) = td(1:3,i)/math_norm3(td(1:3,i)) ! make unit vector
|
||||
lattice_tn(1:3,i,myStructure) = tn(1:3,i)/math_norm3(tn(1:3,i)) ! make unit vector
|
||||
lattice_tt(1:3,i,myStructure) = math_vectorproduct(lattice_td(1:3,i,myStructure), &
|
||||
lattice_tn(1:3,i,myStructure))
|
||||
lattice_Stwin(1:3,1:3,i,myStructure) = math_tensorproduct(lattice_td(1:3,i,myStructure), &
|
||||
lattice_tn(1:3,i,myStructure))
|
||||
lattice_Stwin_v(1:6,i,myStructure) = math_Mandel33to6(math_symmetric33(lattice_Stwin(1:3,1:3,i,myStructure)))
|
||||
lattice_Stwin_v(1:6,i,myStructure) = math_Mandel33to6(math_symmetric33(lattice_Stwin(1:3,1:3,i,myStructure)))
|
||||
lattice_Qtwin(1:3,1:3,i,myStructure) = math_AxisAngleToR(tn(1:3,i),180.0_pReal*INRAD)
|
||||
lattice_shearTwin(i,myStructure) = ts(i)
|
||||
if (abs(math_trace33(lattice_Stwin(1:3,1:3,i,myStructure))) > 1.0e-8) &
|
||||
lattice_shearTwin(i,myStructure) = ts(i)
|
||||
if (abs(math_trace33(lattice_Stwin(1:3,1:3,i,myStructure))) > 1.0e-8_pReal) &
|
||||
call IO_error(0_pInt,myStructure,i,0_pInt,ext_msg = 'dilatational twin Schmid matrix')
|
||||
enddo
|
||||
lattice_NslipSystem(1:lattice_maxNslipFamily,myStructure) = myNslipSystem ! number of slip systems in each family
|
||||
|
|
|
@ -1580,7 +1580,7 @@ pure function math_AxisAngleToR(axis,omega)
|
|||
|
||||
norm = sqrt(math_mul3x3(axis,axis))
|
||||
if (norm > 1.0e-8_pReal) then ! non-zero rotation
|
||||
forall (i=1_pInt:3_pInt) axisNrm(i) = axis(i)/norm ! normalize axis to be sure
|
||||
axisNrm = axis/norm ! normalize axis to be sure
|
||||
|
||||
s = sin(omega)
|
||||
c = cos(omega)
|
||||
|
@ -1624,10 +1624,10 @@ pure function math_AxisAngleToQuaternion(axis,omega)
|
|||
|
||||
norm = sqrt(math_mul3x3(axis,axis))
|
||||
if (norm > 1.0e-8_pReal) then ! non-zero rotation
|
||||
forall (i=1_pInt:3_pInt) axisNrm(i) = axis(i)/norm ! normalize axis to be sure
|
||||
axisNrm = axis/norm ! normalize axis to be sure
|
||||
! formula taken from http://en.wikipedia.org/wiki/Rotation_representation_%28mathematics%29#Rodrigues_parameters
|
||||
s = sin(omega/2.0_pReal)
|
||||
c = cos(omega/2.0_pReal)
|
||||
s = sin(0.5_pReal*omega)
|
||||
c = cos(0.5_pReal*omega)
|
||||
math_AxisAngleToQuaternion(1) = c
|
||||
math_AxisAngleToQuaternion(2:4) = s * axisNrm(1:3)
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue