renaming according to paper

This commit is contained in:
Martin Diehl 2019-03-18 22:08:41 +01:00
parent b426145f0d
commit 76dee8cb81
1 changed files with 26 additions and 32 deletions

View File

@ -25,20 +25,18 @@ module plastic_dislotwin
enum, bind(c) enum, bind(c)
enumerator :: & enumerator :: &
undefined_ID, & undefined_ID, &
edge_density_ID, & rho_mob_ID, &
dipole_density_ID, & rho_dip_ID, &
shear_rate_slip_ID, & gamma_dot_sl_ID, &
accumulated_shear_slip_ID, & gamma_sl_ID, &
mfp_slip_ID, & mfp_slip_ID, &
resolved_stress_slip_ID, & resolved_stress_slip_ID, &
threshold_stress_slip_ID, & threshold_stress_slip_ID, &
edge_dipole_distance_ID, & edge_dipole_distance_ID, &
twin_fraction_ID, & f_tw_ID, &
mfp_twin_ID, & mfp_twin_ID, &
resolved_stress_twin_ID, & resolved_stress_twin_ID, &
threshold_stress_twin_ID, & threshold_stress_twin_ID, &
resolved_stress_shearband_ID, &
shear_rate_shearband_ID, &
strain_trans_fraction_ID strain_trans_fraction_ID
end enum end enum
@ -94,9 +92,8 @@ module plastic_dislotwin
shear_twin, & !< characteristic shear for twins shear_twin, & !< characteristic shear for twins
B !< drag coefficient B !< drag coefficient
real(pReal), dimension(:,:), allocatable :: & real(pReal), dimension(:,:), allocatable :: &
interaction_SlipSlip, & !< h_sl_sl, & !<
interaction_SlipTwin, & !< h_sl_tw, & !<
interaction_TwinSlip, & !<
interaction_TwinTwin, & !< interaction_TwinTwin, & !<
interaction_SlipTrans, & !< interaction_SlipTrans, & !<
interaction_TransTrans !< interaction_TransTrans !<
@ -280,9 +277,9 @@ subroutine plastic_dislotwin_init
slipActive: if (prm%totalNslip > 0_pInt) then slipActive: if (prm%totalNslip > 0_pInt) then
prm%Schmid_slip = lattice_SchmidMatrix_slip(prm%Nslip,config%getString('lattice_structure'),& prm%Schmid_slip = lattice_SchmidMatrix_slip(prm%Nslip,config%getString('lattice_structure'),&
config%getFloat('c/a',defaultVal=0.0_pReal)) config%getFloat('c/a',defaultVal=0.0_pReal))
prm%interaction_SlipSlip = lattice_interaction_SlipBySlip(prm%Nslip, & prm%h_sl_sl = lattice_interaction_SlipBySlip(prm%Nslip, &
config%getFloats('interaction_slipslip'), & config%getFloats('interaction_slipslip'), &
config%getString('lattice_structure')) config%getString('lattice_structure'))
prm%forestProjection = lattice_forestProjection (prm%Nslip,config%getString('lattice_structure'),& prm%forestProjection = lattice_forestProjection (prm%Nslip,config%getString('lattice_structure'),&
config%getFloat('c/a',defaultVal=0.0_pReal)) config%getFloat('c/a',defaultVal=0.0_pReal))
@ -433,12 +430,9 @@ subroutine plastic_dislotwin_init
endif endif
if (prm%totalNslip > 0_pInt .and. prm%totalNtwin > 0_pInt) then if (prm%totalNslip > 0_pInt .and. prm%totalNtwin > 0_pInt) then
prm%interaction_SlipTwin = lattice_interaction_SlipByTwin(prm%Nslip,prm%Ntwin,& prm%h_sl_tw = lattice_interaction_SlipByTwin(prm%Nslip,prm%Ntwin,&
config%getFloats('interaction_sliptwin'), & config%getFloats('interaction_sliptwin'), &
config%getString('lattice_structure')) config%getString('lattice_structure'))
prm%interaction_TwinSlip = lattice_interaction_TwinBySlip(prm%Ntwin,prm%Nslip,&
config%getFloats('interaction_twinslip'), &
config%getString('lattice_structure'))
if (prm%fccTwinTransNucleation .and. prm%totalNtwin > 12_pInt) write(6,*) 'mist' ! ToDo: implement better test. The model will fail also if ntwin is [6,6] if (prm%fccTwinTransNucleation .and. prm%totalNtwin > 12_pInt) write(6,*) 'mist' ! ToDo: implement better test. The model will fail also if ntwin is [6,6]
endif endif
@ -496,16 +490,16 @@ subroutine plastic_dislotwin_init
outputID = undefined_ID outputID = undefined_ID
select case(outputs(i)) select case(outputs(i))
case ('edge_density') case ('edge_density')
outputID = merge(edge_density_ID,undefined_ID,prm%totalNslip > 0_pInt) outputID = merge(rho_mob_ID,undefined_ID,prm%totalNslip > 0_pInt)
outputSize = prm%totalNslip outputSize = prm%totalNslip
case ('dipole_density') case ('dipole_density')
outputID = merge(dipole_density_ID,undefined_ID,prm%totalNslip > 0_pInt) outputID = merge(rho_dip_ID,undefined_ID,prm%totalNslip > 0_pInt)
outputSize = prm%totalNslip outputSize = prm%totalNslip
case ('shear_rate_slip','shearrate_slip') case ('shear_rate_slip','shearrate_slip')
outputID = merge(shear_rate_slip_ID,undefined_ID,prm%totalNslip > 0_pInt) outputID = merge(gamma_dot_sl_ID,undefined_ID,prm%totalNslip > 0_pInt)
outputSize = prm%totalNslip outputSize = prm%totalNslip
case ('accumulated_shear_slip') case ('accumulated_shear_slip')
outputID = merge(accumulated_shear_slip_ID,undefined_ID,prm%totalNslip > 0_pInt) outputID = merge(gamma_sl_ID,undefined_ID,prm%totalNslip > 0_pInt)
outputSize = prm%totalNslip outputSize = prm%totalNslip
case ('mfp_slip') case ('mfp_slip')
outputID = merge(mfp_slip_ID,undefined_ID,prm%totalNslip > 0_pInt) outputID = merge(mfp_slip_ID,undefined_ID,prm%totalNslip > 0_pInt)
@ -518,7 +512,7 @@ subroutine plastic_dislotwin_init
outputSize = prm%totalNslip outputSize = prm%totalNslip
case ('twin_fraction') case ('twin_fraction')
outputID = merge(twin_fraction_ID,undefined_ID,prm%totalNtwin >0_pInt) outputID = merge(f_tw_ID,undefined_ID,prm%totalNtwin >0_pInt)
outputSize = prm%totalNtwin outputSize = prm%totalNtwin
case ('mfp_twin') case ('mfp_twin')
outputID = merge(mfp_twin_ID,undefined_ID,prm%totalNtwin >0_pInt) outputID = merge(mfp_twin_ID,undefined_ID,prm%totalNtwin >0_pInt)
@ -941,7 +935,7 @@ subroutine plastic_dislotwin_dependentState(temperature,instance,of)
!* 1/mean free distance between 2 twin stacks from different systems seen by a moving dislocation !* 1/mean free distance between 2 twin stacks from different systems seen by a moving dislocation
if (prm%totalNtwin > 0_pInt .and. prm%totalNslip > 0_pInt) & if (prm%totalNtwin > 0_pInt .and. prm%totalNslip > 0_pInt) &
dst%invLambdaSlipTwin(1_pInt:prm%totalNslip,of) = & dst%invLambdaSlipTwin(1_pInt:prm%totalNslip,of) = &
matmul(transpose(prm%interaction_SlipTwin),fOverStacksize)/(1.0_pReal-sumf_twin) ! ToDo: Transpose need matmul(transpose(prm%h_sl_tw),fOverStacksize)/(1.0_pReal-sumf_twin) ! ToDo: Change order and use matmul
!* 1/mean free distance between 2 twin stacks from different systems seen by a growing twin !* 1/mean free distance between 2 twin stacks from different systems seen by a growing twin
@ -960,7 +954,7 @@ subroutine plastic_dislotwin_dependentState(temperature,instance,of)
!* mean free path between 2 obstacles seen by a moving dislocation !* mean free path between 2 obstacles seen by a moving dislocation
do i = 1_pInt,prm%totalNslip do i = 1_pInt,prm%totalNslip
if ((prm%totalNtwin > 0_pInt) .or. (prm%totalNtrans > 0_pInt)) then ! ToDo: This is too simplified if ((prm%totalNtwin > 0_pInt) .or. (prm%totalNtrans > 0_pInt)) then ! ToDo: Change order and use matmul
dst%mfp_slip(i,of) = & dst%mfp_slip(i,of) = &
prm%GrainSize/(1.0_pReal+prm%GrainSize*& prm%GrainSize/(1.0_pReal+prm%GrainSize*&
(dst%invLambdaSlip(i,of) + dst%invLambdaSlipTwin(i,of) + dst%invLambdaSlipTrans(i,of))) (dst%invLambdaSlip(i,of) + dst%invLambdaSlipTwin(i,of) + dst%invLambdaSlipTrans(i,of)))
@ -978,7 +972,7 @@ subroutine plastic_dislotwin_dependentState(temperature,instance,of)
forall (i = 1_pInt:prm%totalNslip) dst%threshold_stress_slip(i,of) = & forall (i = 1_pInt:prm%totalNslip) dst%threshold_stress_slip(i,of) = &
prm%mu*prm%burgers_slip(i)*& prm%mu*prm%burgers_slip(i)*&
sqrt(dot_product(stt%rhoEdge(1_pInt:prm%totalNslip,of)+stt%rhoEdgeDip(1_pInt:prm%totalNslip,of),& sqrt(dot_product(stt%rhoEdge(1_pInt:prm%totalNslip,of)+stt%rhoEdgeDip(1_pInt:prm%totalNslip,of),&
prm%interaction_SlipSlip(:,i))) prm%h_sl_sl(:,i)))
!* threshold stress for growing twin/martensite !* threshold stress for growing twin/martensite
if(prm%totalNtwin == prm%totalNslip) & if(prm%totalNtwin == prm%totalNslip) &
@ -1039,16 +1033,16 @@ function plastic_dislotwin_postResults(Mp,Temperature,instance,of) result(postRe
do o = 1_pInt,size(prm%outputID) do o = 1_pInt,size(prm%outputID)
select case(prm%outputID(o)) select case(prm%outputID(o))
case (edge_density_ID) case (rho_mob_ID)
postResults(c+1_pInt:c+prm%totalNslip) = stt%rhoEdge(1_pInt:prm%totalNslip,of) postResults(c+1_pInt:c+prm%totalNslip) = stt%rhoEdge(1_pInt:prm%totalNslip,of)
c = c + prm%totalNslip c = c + prm%totalNslip
case (dipole_density_ID) case (rho_dip_ID)
postResults(c+1_pInt:c+prm%totalNslip) = stt%rhoEdgeDip(1_pInt:prm%totalNslip,of) postResults(c+1_pInt:c+prm%totalNslip) = stt%rhoEdgeDip(1_pInt:prm%totalNslip,of)
c = c + prm%totalNslip c = c + prm%totalNslip
case (shear_rate_slip_ID) case (gamma_dot_sl_ID)
call kinetics_slip(Mp,temperature,instance,of,postResults(c+1:c+prm%totalNslip)) call kinetics_slip(Mp,temperature,instance,of,postResults(c+1:c+prm%totalNslip))
c = c + prm%totalNslip c = c + prm%totalNslip
case (accumulated_shear_slip_ID) case (gamma_sl_ID)
postResults(c+1_pInt:c+prm%totalNslip) = stt%accshear_slip(1_pInt:prm%totalNslip,of) postResults(c+1_pInt:c+prm%totalNslip) = stt%accshear_slip(1_pInt:prm%totalNslip,of)
c = c + prm%totalNslip c = c + prm%totalNslip
case (mfp_slip_ID) case (mfp_slip_ID)
@ -1063,7 +1057,7 @@ function plastic_dislotwin_postResults(Mp,Temperature,instance,of) result(postRe
postResults(c+1_pInt:c+prm%totalNslip) = dst%threshold_stress_slip(1_pInt:prm%totalNslip,of) postResults(c+1_pInt:c+prm%totalNslip) = dst%threshold_stress_slip(1_pInt:prm%totalNslip,of)
c = c + prm%totalNslip c = c + prm%totalNslip
case (twin_fraction_ID) case (f_tw_ID)
postResults(c+1_pInt:c+prm%totalNtwin) = stt%twinFraction(1_pInt:prm%totalNtwin,of) postResults(c+1_pInt:c+prm%totalNtwin) = stt%twinFraction(1_pInt:prm%totalNtwin,of)
c = c + prm%totalNtwin c = c + prm%totalNtwin
case (mfp_twin_ID) case (mfp_twin_ID)