WIP: polishing and implementing remaining functions
This commit is contained in:
parent
f1f8922ab8
commit
0a621ece8b
|
@ -2090,6 +2090,26 @@ pure function lattice_qDisorientation(Q1, Q2, struct)
|
||||||
|
|
||||||
end function lattice_qDisorientation
|
end function lattice_qDisorientation
|
||||||
|
|
||||||
|
!function lattice_C66_twin
|
||||||
|
!
|
||||||
|
! select case(structure)
|
||||||
|
! case('fcc')
|
||||||
|
! coordinateSystem = buildCoordinateSystem(Ntwin,int(LATTICE_FCC_SYSTEMTWIN,pInt),structure)
|
||||||
|
! case('bcc')
|
||||||
|
! coordinateSystem = buildCoordinateSystem(Ntwin,int(LATTICE_BCC_SYSTEMTWIN,pInt),structure)
|
||||||
|
! case('hex','hexagonal') !ToDo: "No alias policy": long or short?
|
||||||
|
! coordinateSystem = buildCoordinateSystem(Ntwin,int(LATTICE_HEX_SYSTEMTWIN,pInt),'hex',cOverA)
|
||||||
|
! case default
|
||||||
|
! call IO_error(130_pInt,ext_msg=trim(structure)//' (lattice_SchmidMatrix_twin)')
|
||||||
|
! end select
|
||||||
|
!
|
||||||
|
! do i = 1, sum(Ntwin)
|
||||||
|
! R = math_axisAngleToR(coordinateSystem(1:3,2,i), 180.0_pReal * INRAD) ! ToDo: Why always 180 deg?
|
||||||
|
! math_rotate_forward3333(C,R)
|
||||||
|
! C_twin66(1:6,1:6,i) = math_Mandel3333to66(C_twin)
|
||||||
|
! enddo
|
||||||
|
|
||||||
|
end function
|
||||||
|
|
||||||
!function lattice_nonSchmidMatrix
|
!function lattice_nonSchmidMatrix
|
||||||
! coordinateSystem = buildCoordinateSystem(Nslip,int(LATTICE_BCC_SYSTEMSLIP,pInt),structure)
|
! coordinateSystem = buildCoordinateSystem(Nslip,int(LATTICE_BCC_SYSTEMSLIP,pInt),structure)
|
||||||
|
@ -2238,7 +2258,7 @@ end function lattice_interactionTransTrans2
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief Calculates Schmid matrix for active slip systems
|
!> @brief Calculates Schmid matrix for active slip systems
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function lattice_SchmidMatrix_slip(Nslip,structure,cOverA)
|
function lattice_SchmidMatrix_slip(Nslip,structure,cOverA) result(SchmidMatrix)
|
||||||
use IO, only: &
|
use IO, only: &
|
||||||
IO_error
|
IO_error
|
||||||
use math, only: &
|
use math, only: &
|
||||||
|
@ -2247,7 +2267,7 @@ function lattice_SchmidMatrix_slip(Nslip,structure,cOverA)
|
||||||
implicit none
|
implicit none
|
||||||
integer(pInt), dimension(:), intent(in) :: Nslip !< number of active slip systems per family
|
integer(pInt), dimension(:), intent(in) :: Nslip !< number of active slip systems per family
|
||||||
character(len=*), intent(in) :: structure !< lattice structure
|
character(len=*), intent(in) :: structure !< lattice structure
|
||||||
real(pReal), dimension(3,3,sum(Nslip)) :: lattice_SchmidMatrix_slip
|
real(pReal), dimension(3,3,sum(Nslip)) :: SchmidMatrix
|
||||||
real(pReal), intent(in), optional :: &
|
real(pReal), intent(in), optional :: &
|
||||||
cOverA
|
cOverA
|
||||||
|
|
||||||
|
@ -2268,8 +2288,9 @@ function lattice_SchmidMatrix_slip(Nslip,structure,cOverA)
|
||||||
end select
|
end select
|
||||||
|
|
||||||
do i = 1, sum(Nslip)
|
do i = 1, sum(Nslip)
|
||||||
lattice_SchmidMatrix_slip(1:3,1:3,i) = &
|
SchmidMatrix(1:3,1:3,i) = math_tensorproduct33(coordinateSystem(1:3,1,i),coordinateSystem(1:3,2,i))
|
||||||
math_tensorproduct33(coordinateSystem(1:3,1,i),coordinateSystem(1:3,2,i))
|
if (abs(math_trace33(SchmidMatrix(1:3,1:3,i))) > tol_math_check) &
|
||||||
|
call IO_error(0_pInt,i,ext_msg = 'dilatational Schmid matrix for slip')
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
end function lattice_SchmidMatrix_slip
|
end function lattice_SchmidMatrix_slip
|
||||||
|
|
Loading…
Reference in New Issue