Rotate elastic constants (fcc to hex)

This commit is contained in:
Su Leen Wong 2016-01-25 14:08:38 +00:00
parent 288ab15ef9
commit 8fbbfaa106
2 changed files with 47 additions and 1 deletions

View File

@ -1651,6 +1651,7 @@ subroutine lattice_initializeStructure(myPhase,CoverA,CoverA_trans,a_fcc,a_bcc)
integer(pInt) :: &
i,j, &
myNslip = 0_pInt, myNtwin = 0_pInt, myNtrans = 0_pInt, myNcleavage = 0_pInt
real(pReal) :: c11bar, c12bar, c13bar, c14bar, c33bar, c44bar, A, B
lattice_C66(1:6,1:6,myPhase) = lattice_symmetrizeC66(lattice_structure(myPhase),&
lattice_C66(1:6,1:6,myPhase))
@ -1671,6 +1672,51 @@ subroutine lattice_initializeStructure(myPhase,CoverA,CoverA_trans,a_fcc,a_bcc)
call IO_error(135_pInt,el=i,ip=myPhase,ext_msg='matrix diagonal "el"ement of phase "ip"')
enddo
! Elasticity matrices for transformed phase
select case(lattice_structure(myPhase))
case (LATTICE_fcc_ID)
select case(trans_lattice_structure(myPhase))
case (LATTICE_bcc_ID)
lattice_trans_C66(1:6,1:6,myPhase) = lattice_C66(1:6,1:6,myPhase)
!lattice_trans_mu(myPhase) = lattice_mu(myPhase)
!lattice_trans_nu(myPhase) = lattice_nu(myPhase)
!lattice_trans_C3333(1:3,1:3,1:3,1:3,myPhase) = lattice_C3333(1:3,1:3,1:3,1:3,myPhase)
case (LATTICE_hex_ID)
c11bar = (lattice_C66(1,1,myPhase) + lattice_C66(1,2,myPhase) + 2.0_pReal*lattice_C66(4,4,myPhase))/2.0_pReal
c12bar = (lattice_C66(1,1,myPhase) + 5.0_pReal*lattice_C66(1,2,myPhase) - 2.0_pReal*lattice_C66(4,4,myPhase))/6.0_pReal
c33bar = (lattice_C66(1,1,myPhase) + 2.0_pReal*lattice_C66(1,2,myPhase) + 4.0_pReal*lattice_C66(4,4,myPhase))/3.0_pReal
c13bar = (lattice_C66(1,1,myPhase) + 2.0_pReal*lattice_C66(1,2,myPhase) - 2.0_pReal*lattice_C66(4,4,myPhase))/3.0_pReal
c44bar = (lattice_C66(1,1,myPhase) - lattice_C66(1,2,myPhase) + lattice_C66(4,4,myPhase))/3.0_pReal
c14bar = (lattice_C66(1,1,myPhase) - lattice_C66(1,2,myPhase) - 2.0_pReal*lattice_C66(4,4,myPhase)) &
/(3.0_pReal*sqrt(2.0_pReal))
A = c14bar**(2.0_pReal)/c44bar
B = c14bar**(2.0_pReal)/(0.5_pReal*(c11bar - c12bar))
lattice_trans_C66(1,1,myPhase) = c11bar - A
lattice_trans_C66(1,2,myPhase) = c12bar + A
lattice_trans_C66(1,3,myPhase) = c13bar
lattice_trans_C66(3,3,myPhase) = c33bar
lattice_trans_C66(4,4,myPhase) = c44bar - B
lattice_trans_C66(1:6,1:6,myPhase) = lattice_symmetrizeC66(trans_lattice_structure(myPhase),&
lattice_trans_C66(1:6,1:6,myPhase))
end select
lattice_trans_mu(myPhase) = 0.2_pReal *( lattice_trans_C66(1,1,myPhase) &
- lattice_trans_C66(1,2,myPhase) &
+ 3.0_pReal*lattice_trans_C66(4,4,myPhase))
lattice_trans_nu(myPhase) = ( lattice_trans_C66(1,1,myPhase) &
+ 4.0_pReal*lattice_trans_C66(1,2,myPhase) &
- 2.0_pReal*lattice_trans_C66(4,4,myPhase)) &
/( 4.0_pReal*lattice_trans_C66(1,1,myPhase) &
+ 6.0_pReal*lattice_trans_C66(1,2,myPhase) &
+ 2.0_pReal*lattice_trans_C66(4,4,myPhase))
lattice_trans_C3333(1:3,1:3,1:3,1:3,myPhase) = math_Voigt66to3333(lattice_trans_C66(1:6,1:6,myPhase))
lattice_trans_C66(1:6,1:6,myPhase) = math_Mandel3333to66(lattice_trans_C3333(1:3,1:3,1:3,1:3,myPhase))
do i = 1_pInt, 6_pInt
if (abs(lattice_trans_C66(i,i,myPhase))<tol_math_check) &
call IO_error(135_pInt,el=i,ip=myPhase,ext_msg='matrix diagonal "el"ement of phase "ip"')
enddo
end select
lattice_thermalConductivity33(1:3,1:3,myPhase) = lattice_symmetrize33(lattice_structure(myPhase),&
lattice_thermalConductivity33(1:3,1:3,myPhase))
lattice_thermalExpansion33(1:3,1:3,myPhase) = lattice_symmetrize33(lattice_structure(myPhase),&

View File

@ -1092,7 +1092,7 @@ subroutine plastic_dislotwin_init(fileUnit)
do p = 1_pInt,3_pInt; do q = 1_pInt,3_pInt; do r = 1_pInt,3_pInt; do s = 1_pInt,3_pInt
plastic_dislotwin_Ctrans3333(l,m,n,o,index_myFamily+j,instance) = &
plastic_dislotwin_Ctrans3333(l,m,n,o,index_myFamily+j,instance) + &
lattice_C3333(p,q,r,s,instance) * &
lattice_trans_C3333(p,q,r,s,instance) * &
lattice_Qtrans(l,p,index_otherFamily+j,phase) * &
lattice_Qtrans(m,q,index_otherFamily+j,phase) * &
lattice_Qtrans(n,r,index_otherFamily+j,phase) * &