From 9e17efd1f89804de30dcbfece4bba0fccab8dbfd Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Wed, 26 Jan 2022 23:13:56 +0100 Subject: [PATCH] transformation is for fcc-> hcp --- src/lattice.f90 | 2 +- src/phase_mechanical_plastic_dislotwin.f90 | 30 ++++++++++------------ 2 files changed, 14 insertions(+), 18 deletions(-) diff --git a/src/lattice.f90 b/src/lattice.f90 index 97f207024..b085baeae 100644 --- a/src/lattice.f90 +++ b/src/lattice.f90 @@ -533,7 +533,7 @@ function lattice_C66_trans(Ntrans,C_parent66,lattice_target, & integer, dimension(:), intent(in) :: Ntrans !< number of active twin systems per family character(len=2), intent(in) :: lattice_target !< Bravais lattice (Pearson symbol) real(pReal), dimension(6,6), intent(in) :: C_parent66 - real(pReal), optional, intent(in) :: a_bcc, a_fcc, cOverA_trans + real(pReal), optional, intent(in) :: cOverA_trans, a_fcc, a_bcc real(pReal), dimension(6,6,sum(Ntrans)) :: lattice_C66_trans real(pReal), dimension(6,6) :: C_bar66, C_target_unrotated66 diff --git a/src/phase_mechanical_plastic_dislotwin.f90 b/src/phase_mechanical_plastic_dislotwin.f90 index 38ed6aec9..b46c894a2 100644 --- a/src/phase_mechanical_plastic_dislotwin.f90 +++ b/src/phase_mechanical_plastic_dislotwin.f90 @@ -27,8 +27,8 @@ submodule(phase:plastic) dislotwin E_sb = 1.0_pReal, & !< activation energy for shear bands h = 1.0_pReal, & !< stack height of hex nucleus T_ref = T_ROOM, & - a_cI = 1.0_pReal, & - a_cF = 1.0_pReal + a_cF = 1.0_pReal, & + cOverA_hP = 1.0_pReal real(pReal), dimension(3) :: & Gamma_sf = 0.0_pReal, & !< stacking fault energy Delta_G = 0.0_pReal !< free energy difference between austensite and martensite @@ -126,6 +126,7 @@ module function plastic_dislotwin_init() result(myPlasticity) startIndex, endIndex integer, dimension(:), allocatable :: & N_sl + real(pReal) :: a_cF real(pReal), allocatable, dimension(:) :: & rho_mob_0, & !< initial unipolar dislocation density per slip system rho_dip_0 !< initial dipole dislocation density per slip system @@ -289,24 +290,19 @@ module function plastic_dislotwin_init() result(myPlasticity) prm%b_tr = pl%get_as1dFloat('b_tr') prm%b_tr = math_expand(prm%b_tr,prm%N_tr) - prm%h = pl%get_asFloat('h') - prm%i_tr = pl%get_asFloat('i_tr') - prm%Delta_G(1) = pl%get_asFloat('Delta_G') - prm%Delta_G(2) = pl%get_asFloat('Delta_G,T', defaultVal=0.0_pReal) - prm%Delta_G(3) = pl%get_asFloat('Delta_G,T^2',defaultVal=0.0_pReal) - prm%L_tr = pl%get_asFloat('L_tr') - prm%a_cI = pl%get_asFloat('a_cI', defaultVal=0.0_pReal) - prm%a_cF = pl%get_asFloat('a_cF', defaultVal=0.0_pReal) - - prm%lattice_tr = pl%get_asString('lattice_tr') + prm%h = pl%get_asFloat('h') + prm%i_tr = pl%get_asFloat('i_tr') + prm%Delta_G(1) = pl%get_asFloat('Delta_G') + prm%Delta_G(2) = pl%get_asFloat('Delta_G,T', defaultVal=0.0_pReal) + prm%Delta_G(3) = pl%get_asFloat('Delta_G,T^2',defaultVal=0.0_pReal) + prm%L_tr = pl%get_asFloat('L_tr') + a_cF = pl%get_asFloat('a_cF') + prm%cOverA_hP = pl%get_asFloat('c/a_hP') prm%h_tr_tr = lattice_interaction_TransByTrans(prm%N_tr,pl%get_as1dFloat('h_tr-tr'),& phase_lattice(ph)) - prm%P_tr = lattice_SchmidMatrix_trans(prm%N_tr,prm%lattice_tr, & - 0.0_pReal, & - prm%a_cI, & - prm%a_cF) + prm%P_tr = lattice_SchmidMatrix_trans(prm%N_tr,'hP',prm%cOverA_hP) prm%t_tr = pl%get_as1dFloat('t_tr') prm%t_tr = math_expand(prm%t_tr,prm%N_tr) @@ -472,7 +468,7 @@ module function plastic_dislotwin_homogenizedC(ph,en) result(homogenizedC) end if twinActive transActive: if (prm%sum_N_tr > 0) then - C66_tr = lattice_C66_trans(prm%N_tr,C,prm%lattice_tr,0.0_pReal,prm%a_cI,prm%a_cF) + C66_tr = lattice_C66_trans(prm%N_tr,C,'hP',prm%cOverA_hP) do i=1,prm%sum_N_tr homogenizedC = homogenizedC & + stt%f_tr(i,en)*C66_tr(1:6,1:6,i)