Rotate elastic constants (fcc to hex)
This commit is contained in:
parent
288ab15ef9
commit
8fbbfaa106
|
@ -1651,6 +1651,7 @@ subroutine lattice_initializeStructure(myPhase,CoverA,CoverA_trans,a_fcc,a_bcc)
|
||||||
integer(pInt) :: &
|
integer(pInt) :: &
|
||||||
i,j, &
|
i,j, &
|
||||||
myNslip = 0_pInt, myNtwin = 0_pInt, myNtrans = 0_pInt, myNcleavage = 0_pInt
|
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) = lattice_symmetrizeC66(lattice_structure(myPhase),&
|
||||||
lattice_C66(1:6,1:6,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"')
|
call IO_error(135_pInt,el=i,ip=myPhase,ext_msg='matrix diagonal "el"ement of phase "ip"')
|
||||||
enddo
|
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_symmetrize33(lattice_structure(myPhase),&
|
||||||
lattice_thermalConductivity33(1:3,1:3,myPhase))
|
lattice_thermalConductivity33(1:3,1:3,myPhase))
|
||||||
lattice_thermalExpansion33(1:3,1:3,myPhase) = lattice_symmetrize33(lattice_structure(myPhase),&
|
lattice_thermalExpansion33(1:3,1:3,myPhase) = lattice_symmetrize33(lattice_structure(myPhase),&
|
||||||
|
|
|
@ -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
|
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) = &
|
||||||
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(l,p,index_otherFamily+j,phase) * &
|
||||||
lattice_Qtrans(m,q,index_otherFamily+j,phase) * &
|
lattice_Qtrans(m,q,index_otherFamily+j,phase) * &
|
||||||
lattice_Qtrans(n,r,index_otherFamily+j,phase) * &
|
lattice_Qtrans(n,r,index_otherFamily+j,phase) * &
|
||||||
|
|
Loading…
Reference in New Issue