removed obsolete function
This commit is contained in:
parent
ee058c53ec
commit
6d2b175018
|
@ -389,7 +389,6 @@ module crystal
|
||||||
crystal_SchmidMatrix_twin, &
|
crystal_SchmidMatrix_twin, &
|
||||||
crystal_SchmidMatrix_trans, &
|
crystal_SchmidMatrix_trans, &
|
||||||
crystal_SchmidMatrix_cleavage, &
|
crystal_SchmidMatrix_cleavage, &
|
||||||
crystal_nonSchmidMatrix, &
|
|
||||||
crystal_interaction_SlipBySlip, &
|
crystal_interaction_SlipBySlip, &
|
||||||
crystal_interaction_TwinByTwin, &
|
crystal_interaction_TwinByTwin, &
|
||||||
crystal_interaction_TransByTrans, &
|
crystal_interaction_TransByTrans, &
|
||||||
|
@ -594,54 +593,6 @@ function crystal_C66_trans(Ntrans,C_parent66,crystal_target, &
|
||||||
end function crystal_C66_trans
|
end function crystal_C66_trans
|
||||||
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
|
||||||
!> @brief Non-schmid projections for cI with up to 6 coefficients
|
|
||||||
! https://doi.org/10.1016/j.actamat.2012.03.053, eq. (17)
|
|
||||||
! https://doi.org/10.1016/j.actamat.2008.07.037, table 1
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
|
||||||
function crystal_nonSchmidMatrix(Nslip,nonSchmidCoefficients,sense) result(nonSchmidMatrix)
|
|
||||||
|
|
||||||
integer, dimension(:), intent(in) :: Nslip !< number of active slip systems per family
|
|
||||||
real(pREAL), dimension(:), intent(in) :: nonSchmidCoefficients !< non-Schmid coefficients for projections
|
|
||||||
integer, intent(in) :: sense !< sense (-1,+1)
|
|
||||||
real(pREAL), dimension(1:3,1:3,sum(Nslip)) :: nonSchmidMatrix
|
|
||||||
|
|
||||||
real(pREAL), dimension(1:3,1:3,sum(Nslip)) :: coordinateSystem !< coordinate system of slip system
|
|
||||||
real(pREAL), dimension(3) :: direction, normal, np
|
|
||||||
type(tRotation) :: R
|
|
||||||
integer :: i
|
|
||||||
|
|
||||||
|
|
||||||
if (abs(sense) /= 1) error stop 'Sense in crystal_nonSchmidMatrix'
|
|
||||||
|
|
||||||
coordinateSystem = buildCoordinateSystem(Nslip,CI_NSLIPSYSTEM,CI_SYSTEMSLIP,'cI',0.0_pREAL)
|
|
||||||
coordinateSystem(1:3,1,1:sum(Nslip)) = coordinateSystem(1:3,1,1:sum(Nslip))*real(sense,pREAL) ! convert unidirectional coordinate system
|
|
||||||
nonSchmidMatrix = crystal_SchmidMatrix_slip(Nslip,'cI',0.0_pREAL) ! Schmid contribution
|
|
||||||
|
|
||||||
do i = 1,sum(Nslip)
|
|
||||||
direction = coordinateSystem(1:3,1,i)
|
|
||||||
normal = coordinateSystem(1:3,2,i)
|
|
||||||
call R%fromAxisAngle([direction,60.0_pREAL],degrees=.true.,P=1)
|
|
||||||
np = R%rotate(normal)
|
|
||||||
|
|
||||||
if (size(nonSchmidCoefficients)>0) nonSchmidMatrix(1:3,1:3,i) = nonSchmidMatrix(1:3,1:3,i) &
|
|
||||||
+ nonSchmidCoefficients(1) * math_outer(direction, np)
|
|
||||||
if (size(nonSchmidCoefficients)>1) nonSchmidMatrix(1:3,1:3,i) = nonSchmidMatrix(1:3,1:3,i) &
|
|
||||||
+ nonSchmidCoefficients(2) * math_outer(math_cross(normal, direction), normal)
|
|
||||||
if (size(nonSchmidCoefficients)>2) nonSchmidMatrix(1:3,1:3,i) = nonSchmidMatrix(1:3,1:3,i) &
|
|
||||||
+ nonSchmidCoefficients(3) * math_outer(math_cross(np, direction), np)
|
|
||||||
if (size(nonSchmidCoefficients)>3) nonSchmidMatrix(1:3,1:3,i) = nonSchmidMatrix(1:3,1:3,i) &
|
|
||||||
+ nonSchmidCoefficients(4) * math_outer(normal, normal)
|
|
||||||
if (size(nonSchmidCoefficients)>4) nonSchmidMatrix(1:3,1:3,i) = nonSchmidMatrix(1:3,1:3,i) &
|
|
||||||
+ nonSchmidCoefficients(5) * math_outer(math_cross(normal, direction), &
|
|
||||||
math_cross(normal, direction))
|
|
||||||
if (size(nonSchmidCoefficients)>5) nonSchmidMatrix(1:3,1:3,i) = nonSchmidMatrix(1:3,1:3,i) &
|
|
||||||
+ nonSchmidCoefficients(6) * math_outer(direction, direction)
|
|
||||||
end do
|
|
||||||
|
|
||||||
end function crystal_nonSchmidMatrix
|
|
||||||
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief Slip-slip interaction matrix
|
!> @brief Slip-slip interaction matrix
|
||||||
!> @details only active slip systems are considered
|
!> @details only active slip systems are considered
|
||||||
|
|
|
@ -360,8 +360,8 @@ module function dislotungsten_dotState(Mp,ph,en) result(dotState)
|
||||||
dot_rho_dip_climb = 0.0_pREAL
|
dot_rho_dip_climb = 0.0_pREAL
|
||||||
else where
|
else where
|
||||||
d_hat = math_clip(mu*prm%b_sl/(8.0_pREAL*PI*(1.0_pREAL-nu)*tau_eff), &
|
d_hat = math_clip(mu*prm%b_sl/(8.0_pREAL*PI*(1.0_pREAL-nu)*tau_eff), &
|
||||||
left = prm%d_caron, & ! lower limit
|
left = prm%d_caron, & ! lower limit
|
||||||
right = dst%Lambda_sl(:,en)) ! upper limit
|
right = dst%Lambda_sl(:,en)) ! upper limit
|
||||||
dot_rho_dip_formation = merge(dot_gamma * 2.0_pREAL*(d_hat-prm%d_caron)/prm%b_sl * stt%rho_mob(:,en), &
|
dot_rho_dip_formation = merge(dot_gamma * 2.0_pREAL*(d_hat-prm%d_caron)/prm%b_sl * stt%rho_mob(:,en), &
|
||||||
0.0_pREAL, &
|
0.0_pREAL, &
|
||||||
prm%dipoleformation)
|
prm%dipoleformation)
|
||||||
|
|
Loading…
Reference in New Issue