looping over systems simplifies loop structure

This commit is contained in:
Martin Diehl 2018-08-31 13:19:28 +02:00
parent 3431086fdb
commit ba65044ff5
1 changed files with 12 additions and 11 deletions

View File

@ -102,7 +102,7 @@ module plastic_dislotwin
burgers_trans, & !< absolute length of burgers vector [m] for each twin family and instance
Qedge,& !< activation energy for glide [J] for each slip system and instance
v0, & !dislocation velocity prefactor [m/s] for each slip system and instance
tau_peierlsPerSlipFamily,& !< Peierls stress [Pa] for each family and instance
tau_peierls,& !< Peierls stress [Pa] for each family and instance
Ndot0_twin, & !< twin nucleation rate [1/m³s] for each twin system and instance
Ndot0_trans, & !< trans nucleation rate [1/m³s] for each trans system and instance
twinsize, & !< twin thickness [m] for each twin system and instance
@ -317,7 +317,7 @@ subroutine plastic_dislotwin_init(fileUnit)
prm%CLambdaSlipPerSlipSystem = config_phase(p)%getFloats('clambdaslip')
prm%CLambdaSlipPerSlipSystem= math_expand(prm%CLambdaSlipPerSlipSystem,prm%Nslip)
prm%tau_peierlsPerSlipFamily = config_phase(p)%getFloats('tau_peierls',defaultVal=[0.0_pReal])
prm%tau_peierls = config_phase(p)%getFloats('tau_peierls',defaultVal=[0.0_pReal])
prm%p = config_phase(p)%getFloats('p_slip')
prm%q = config_phase(p)%getFloats('q_slip')
@ -579,6 +579,7 @@ subroutine plastic_dislotwin_init(fileUnit)
prm%p = math_expand(prm%p,prm%Nslip)
prm%q = math_expand(prm%q,prm%Nslip)
prm%tau_peierls = math_expand(prm%tau_peierls,prm%Nslip)
enddo
allocate(forestProjectionEdge(prm%totalNslip,prm%totalNslip,maxNinstance), source=0.0_pReal)
@ -1261,7 +1262,7 @@ subroutine plastic_dislotwin_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,Temperature
if((abs(tau_slip(j))-state(instance)%threshold_stress_slip(j,of)) > tol_math_check) then
!* Stress ratios
stressRatio =((abs(tau_slip(j))- state(instance)%threshold_stress_slip(j,of))/&
(prm%SolidSolutionStrength+prm%tau_peierlsPerSlipFamily(f)))
(prm%SolidSolutionStrength+prm%tau_peierls(j)))
StressRatio_p = stressRatio** prm%p(j)
StressRatio_pminus1 = stressRatio**(prm%p(j)-1.0_pReal)
!* Boltzmann ratio
@ -1280,7 +1281,7 @@ subroutine plastic_dislotwin_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,Temperature
dgdot_dtauslip(j) = &
abs(gdot_slip(j))*BoltzmannRatio*prm%p(j)&
*prm%q(j)/&
(prm%SolidSolutionStrength+prm%tau_peierlsPerSlipFamily(f))*&
(prm%SolidSolutionStrength+prm%tau_peierls(j))*&
StressRatio_pminus1*(1-StressRatio_p)**(prm%q(j)-1.0_pReal)
endif
@ -1562,7 +1563,7 @@ subroutine plastic_dislotwin_dotState(Tstar_v,Temperature,ipc,ip,el)
if((abs(tau_slip(j))-state(instance)%threshold_stress_slip(j,of)) > tol_math_check) then
!* Stress ratios
stressRatio =((abs(tau_slip(j))- state(instance)%threshold_stress_slip(j,of))/&
(prm%SolidSolutionStrength+prm%tau_peierlsPerSlipFamily(f)))
(prm%SolidSolutionStrength+prm%tau_peierls(j)))
StressRatio_p = stressRatio** prm%p(j)
StressRatio_pminus1 = stressRatio**(prm%p(j)-1.0_pReal)
!* Boltzmann ratio
@ -1812,7 +1813,7 @@ function plastic_dislotwin_postResults(Tstar_v,Temperature,ipc,ip,el)
!* Stress ratios
stressRatio = ((abs(tau)-state(ph)%threshold_stress_slip(j,of))/&
(prm%SolidSolutionStrength+&
prm%tau_peierlsPerSlipFamily(f)))
prm%tau_peierls(j)))
StressRatio_p = stressRatio** prm%p(j)
StressRatio_pminus1 = stressRatio**(prm%p(j)-1.0_pReal)
!* Boltzmann ratio
@ -1917,11 +1918,11 @@ function plastic_dislotwin_postResults(Tstar_v,Temperature,ipc,ip,el)
!* Stress ratios
StressRatio_p = ((abs(tau)-state(instance)%threshold_stress_slip(j,of))/&
(prm%SolidSolutionStrength+&
prm%tau_peierlsPerSlipFamily(f)))&
prm%tau_peierls(j)))&
**prm%p(j)
StressRatio_pminus1 = ((abs(tau)-state(instance)%threshold_stress_slip(j,of))/&
(prm%SolidSolutionStrength+&
prm%tau_peierlsPerSlipFamily(f)))&
prm%tau_peierls(j)))&
**(prm%p(j)-1.0_pReal)
!* Boltzmann ratio
BoltzmannRatio = prm%Qedge(j)/(kB*Temperature)
@ -2009,11 +2010,11 @@ function plastic_dislotwin_postResults(Tstar_v,Temperature,ipc,ip,el)
!* Stress ratios
StressRatio_p = ((abs(tau)-state(instance)%threshold_stress_slip(j,of))/&
(prm%SolidSolutionStrength+&
prm%tau_peierlsPerSlipFamily(f)))&
prm%tau_peierls(j)))&
**prm%p(j)
StressRatio_pminus1 = ((abs(tau)-state(instance)%threshold_stress_slip(j,of))/&
(prm%SolidSolutionStrength+&
prm%tau_peierlsPerSlipFamily(f)))&
prm%tau_peierls(j)))&
**(prm%p(j)-1.0_pReal)
!* Boltzmann ratio
BoltzmannRatio = prm%Qedge(j)/(kB*Temperature)
@ -2031,7 +2032,7 @@ function plastic_dislotwin_postResults(Tstar_v,Temperature,ipc,ip,el)
abs(gdot_slip(j))*BoltzmannRatio*prm%p(j)&
*prm%q(j)/&
(prm%SolidSolutionStrength+&
prm%tau_peierlsPerSlipFamily(f))*&
prm%tau_peierls(j))*&
StressRatio_pminus1*(1-StressRatio_p)**(prm%q(j)-1.0_pReal)
else