renaming according to paper
This commit is contained in:
parent
b426145f0d
commit
76dee8cb81
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue