Read in c/a ratio for transformed hcp phase

This commit is contained in:
Su Leen Wong 2015-06-12 08:59:39 +00:00
parent d894900c2e
commit 081bc33159
1 changed files with 9 additions and 4 deletions

View File

@ -1022,6 +1022,7 @@ subroutine lattice_init
integer(pInt) :: section = 0_pInt,i integer(pInt) :: section = 0_pInt,i
real(pReal), dimension(:), allocatable :: & real(pReal), dimension(:), allocatable :: &
CoverA, & !< c/a ratio for hex type lattice CoverA, & !< c/a ratio for hex type lattice
CoverA_trans, & !< c/a ratio for transformed hex type lattice
a_fcc, & !< lattice parameter a for fcc austenite a_fcc, & !< lattice parameter a for fcc austenite
a_bcc !< lattice paramater a for bcc martensite a_bcc !< lattice paramater a for bcc martensite
@ -1166,6 +1167,7 @@ subroutine lattice_init
allocate(lattice_interactionTwinTwin(lattice_maxNtwin,lattice_maxNtwin,Nphases),source=0_pInt) ! other:me allocate(lattice_interactionTwinTwin(lattice_maxNtwin,lattice_maxNtwin,Nphases),source=0_pInt) ! other:me
allocate(CoverA(Nphases),source=0.0_pReal) allocate(CoverA(Nphases),source=0.0_pReal)
allocate(CoverA_trans(Nphases),source=0.0_pReal)
allocate(a_fcc(Nphases),source=0.0_pReal) allocate(a_fcc(Nphases),source=0.0_pReal)
allocate(a_bcc(Nphases),source=0.0_pReal) allocate(a_bcc(Nphases),source=0.0_pReal)
@ -1232,6 +1234,8 @@ subroutine lattice_init
lattice_C66(6,6,section) = IO_floatValue(line,positions,2_pInt) lattice_C66(6,6,section) = IO_floatValue(line,positions,2_pInt)
case ('covera_ratio','c/a_ratio','c/a') case ('covera_ratio','c/a_ratio','c/a')
CoverA(section) = IO_floatValue(line,positions,2_pInt) CoverA(section) = IO_floatValue(line,positions,2_pInt)
case ('c/a_trans','c/a_martensite','c/a_mart')
CoverA_trans(section) = IO_floatValue(line,positions,2_pInt)
case ('a_fcc') case ('a_fcc')
a_fcc(section) = IO_floatValue(line,positions,2_pInt) a_fcc(section) = IO_floatValue(line,positions,2_pInt)
case ('a_bcc') case ('a_bcc')
@ -1315,10 +1319,10 @@ subroutine lattice_init
do i = 1_pInt,Nphases do i = 1_pInt,Nphases
if ((CoverA(i) < 1.0_pReal .or. CoverA(i) > 2.0_pReal) & if ((CoverA(i) < 1.0_pReal .or. CoverA(i) > 2.0_pReal) &
.and. lattice_structure(i) == LATTICE_hex_ID) call IO_error(131_pInt,el=i) ! checking physical significance of c/a .and. lattice_structure(i) == LATTICE_hex_ID) call IO_error(131_pInt,el=i) ! checking physical significance of c/a
call lattice_initializeStructure(i, CoverA(i), a_fcc(i), a_bcc(i)) call lattice_initializeStructure(i, CoverA(i), CoverA_trans(i), a_fcc(i), a_bcc(i))
enddo enddo
deallocate(CoverA,a_fcc,a_bcc) deallocate(CoverA,CoverA_trans,a_fcc,a_bcc)
end subroutine lattice_init end subroutine lattice_init
@ -1326,7 +1330,7 @@ end subroutine lattice_init
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
!> @brief Calculation of Schmid matrices, etc. !> @brief Calculation of Schmid matrices, etc.
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
subroutine lattice_initializeStructure(myPhase,CoverA,a_fcc,a_bcc) subroutine lattice_initializeStructure(myPhase,CoverA,CoverA_trans,a_fcc,a_bcc)
use prec, only: & use prec, only: &
tol_math_check tol_math_check
use math, only: & use math, only: &
@ -1351,6 +1355,7 @@ subroutine lattice_initializeStructure(myPhase,CoverA,a_fcc,a_bcc)
integer(pInt), intent(in) :: myPhase integer(pInt), intent(in) :: myPhase
real(pReal), intent(in) :: & real(pReal), intent(in) :: &
CoverA, & CoverA, &
CoverA_trans, &
a_fcc, & a_fcc, &
a_bcc a_bcc