further simplified
This commit is contained in:
parent
0f05565fd5
commit
49126d2f6f
|
@ -668,9 +668,9 @@ subroutine plastic_phenopowerlaw_dotState(Tstar_v,ipc,ip,el)
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! system-independent (nonlinear) prefactors to M_Xx (X influenced by x) matrices
|
! system-independent (nonlinear) prefactors to M_Xx (X influenced by x) matrices
|
||||||
c_SlipSlip = prm%h0_slipslip*(1.0_pReal + prm%twinC*stt%sumF(of)** prm%twinB)
|
c_SlipSlip = prm%h0_slipslip * (1.0_pReal + prm%twinC*stt%sumF(of)** prm%twinB)
|
||||||
c_TwinSlip = prm%h0_TwinSlip*stt%sumGamma(of)**prm%twinE
|
c_TwinSlip = prm%h0_TwinSlip * stt%sumGamma(of)**prm%twinE
|
||||||
c_TwinTwin = prm%h0_TwinTwin*stt%sumF(of)**prm%twinD
|
c_TwinTwin = prm%h0_TwinTwin * stt%sumF(of)**prm%twinD
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! calculate left and right vectors and calculate dot gammas
|
! calculate left and right vectors and calculate dot gammas
|
||||||
|
@ -723,19 +723,13 @@ subroutine plastic_phenopowerlaw_dotState(Tstar_v,ipc,ip,el)
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! calculate the overall hardening based on above
|
! calculate the overall hardening based on above
|
||||||
j = 0_pInt
|
do j = 1_pInt,prm%totalNslip
|
||||||
slipFamilies2: do f = 1_pInt,size(prm%Nslip,1)
|
dotState(instance)%s_slip(j,of) = c_SlipSlip * left_SlipSlip(j) * & ! evolution of slip resistance j
|
||||||
slipSystems2: do i = 1_pInt,prm%Nslip(f)
|
|
||||||
j = j+1_pInt
|
|
||||||
dotState(instance)%s_slip(j,of) = & ! evolution of slip resistance j
|
|
||||||
c_SlipSlip * left_SlipSlip(j) * &
|
|
||||||
dot_product(prm%interaction_SlipSlip(j,1:prm%totalNslip),right_SlipSlip*abs(gdot_slip)) + & ! dot gamma_slip modulated by right-side slip factor
|
dot_product(prm%interaction_SlipSlip(j,1:prm%totalNslip),right_SlipSlip*abs(gdot_slip)) + & ! dot gamma_slip modulated by right-side slip factor
|
||||||
dot_product(prm%interaction_SlipTwin(j,1:prm%totalNtwin),gdot_twin) ! dot gamma_twin modulated by right-side twin factor
|
dot_product(prm%interaction_SlipTwin(j,1:prm%totalNtwin),gdot_twin) ! dot gamma_twin modulated by right-side twin factor
|
||||||
dotState(instance)%sumGamma(of) = dotState(instance)%sumGamma(of) + &
|
enddo
|
||||||
abs(gdot_slip(j))
|
dotState(instance)%sumGamma(of) = dotState(instance)%sumGamma(of) + sum(abs(gdot_slip))
|
||||||
dotState(instance)%accshear_slip(j,of) = abs(gdot_slip(j))
|
dotState(instance)%accshear_slip(1:prm%totalNslip,of) = abs(gdot_slip)
|
||||||
enddo slipSystems2
|
|
||||||
enddo slipFamilies2
|
|
||||||
|
|
||||||
j = 0_pInt
|
j = 0_pInt
|
||||||
twinFamilies2: do f = 1_pInt,size(prm%Ntwin,1)
|
twinFamilies2: do f = 1_pInt,size(prm%Ntwin,1)
|
||||||
|
@ -801,8 +795,8 @@ function plastic_phenopowerlaw_postResults(Tstar_v,ipc,ip,el)
|
||||||
plastic_phenopowerlaw_postResults = 0.0_pReal
|
plastic_phenopowerlaw_postResults = 0.0_pReal
|
||||||
c = 0_pInt
|
c = 0_pInt
|
||||||
|
|
||||||
outputsLoop: do o = 1_pInt,size(param(instance)%outputID)
|
outputsLoop: do o = 1_pInt,size(prm%outputID)
|
||||||
select case(param(instance)%outputID(o))
|
select case(prm%outputID(o))
|
||||||
case (resistance_slip_ID)
|
case (resistance_slip_ID)
|
||||||
plastic_phenopowerlaw_postResults(c+1_pInt:c+prm%totalNslip) = state(instance)%s_slip(1:prm%totalNslip,of)
|
plastic_phenopowerlaw_postResults(c+1_pInt:c+prm%totalNslip) = state(instance)%s_slip(1:prm%totalNslip,of)
|
||||||
c = c + prm%totalNslip
|
c = c + prm%totalNslip
|
||||||
|
@ -813,22 +807,22 @@ function plastic_phenopowerlaw_postResults(Tstar_v,ipc,ip,el)
|
||||||
|
|
||||||
case (shearrate_slip_ID)
|
case (shearrate_slip_ID)
|
||||||
j = 0_pInt
|
j = 0_pInt
|
||||||
slipFamilies1: do f = 1_pInt,size(param(instance)%Nslip,1)
|
slipFamilies1: do f = 1_pInt,size(prm%Nslip,1)
|
||||||
index_myFamily = sum(lattice_NslipSystem(1:f-1_pInt,ph)) ! at which index starts my family
|
index_myFamily = sum(lattice_NslipSystem(1:f-1_pInt,ph)) ! at which index starts my family
|
||||||
slipSystems1: do i = 1_pInt,param(instance)%Nslip(f)
|
slipSystems1: do i = 1_pInt,prm%Nslip(f)
|
||||||
j = j + 1_pInt
|
j = j + 1_pInt
|
||||||
tau_slip_pos = dot_product(Tstar_v,lattice_Sslip_v(1:6,1,index_myFamily+i,ph))
|
tau_slip_pos = dot_product(Tstar_v,lattice_Sslip_v(1:6,1,index_myFamily+i,ph))
|
||||||
tau_slip_neg = tau_slip_pos
|
tau_slip_neg = tau_slip_pos
|
||||||
do k = 1,lattice_NnonSchmid(ph)
|
do k = 1,lattice_NnonSchmid(ph)
|
||||||
tau_slip_pos = tau_slip_pos +param(instance)%nonSchmidCoeff(k)* &
|
tau_slip_pos = tau_slip_pos +prm%nonSchmidCoeff(k)* &
|
||||||
dot_product(Tstar_v,lattice_Sslip_v(1:6,2*k,index_myFamily+i,ph))
|
dot_product(Tstar_v,lattice_Sslip_v(1:6,2*k,index_myFamily+i,ph))
|
||||||
tau_slip_neg = tau_slip_neg +param(instance)%nonSchmidCoeff(k)* &
|
tau_slip_neg = tau_slip_neg +prm%nonSchmidCoeff(k)* &
|
||||||
dot_product(Tstar_v,lattice_Sslip_v(1:6,2*k+1,index_myFamily+i,ph))
|
dot_product(Tstar_v,lattice_Sslip_v(1:6,2*k+1,index_myFamily+i,ph))
|
||||||
enddo
|
enddo
|
||||||
plastic_phenopowerlaw_postResults(c+j) = param(instance)%gdot0_slip*0.5_pReal* &
|
plastic_phenopowerlaw_postResults(c+j) = prm%gdot0_slip*0.5_pReal* &
|
||||||
((abs(tau_slip_pos)/state(instance)%s_slip(j,of))**param(instance)%n_slip &
|
((abs(tau_slip_pos)/state(instance)%s_slip(j,of))**prm%n_slip &
|
||||||
*sign(1.0_pReal,tau_slip_pos) &
|
*sign(1.0_pReal,tau_slip_pos) &
|
||||||
+(abs(tau_slip_neg)/(state(instance)%s_slip(j,of)))**param(instance)%n_slip &
|
+(abs(tau_slip_neg)/(state(instance)%s_slip(j,of)))**prm%n_slip &
|
||||||
*sign(1.0_pReal,tau_slip_neg))
|
*sign(1.0_pReal,tau_slip_neg))
|
||||||
enddo slipSystems1
|
enddo slipSystems1
|
||||||
enddo slipFamilies1
|
enddo slipFamilies1
|
||||||
|
@ -836,9 +830,9 @@ function plastic_phenopowerlaw_postResults(Tstar_v,ipc,ip,el)
|
||||||
|
|
||||||
case (resolvedstress_slip_ID)
|
case (resolvedstress_slip_ID)
|
||||||
j = 0_pInt
|
j = 0_pInt
|
||||||
slipFamilies2: do f = 1_pInt,size(param(instance)%Nslip,1)
|
slipFamilies2: do f = 1_pInt,size(prm%Nslip,1)
|
||||||
index_myFamily = sum(lattice_NslipSystem(1:f-1_pInt,ph)) ! at which index starts my family
|
index_myFamily = sum(lattice_NslipSystem(1:f-1_pInt,ph)) ! at which index starts my family
|
||||||
slipSystems2: do i = 1_pInt,param(instance)%Nslip(f)
|
slipSystems2: do i = 1_pInt,prm%Nslip(f)
|
||||||
j = j + 1_pInt
|
j = j + 1_pInt
|
||||||
plastic_phenopowerlaw_postResults(c+j) = &
|
plastic_phenopowerlaw_postResults(c+j) = &
|
||||||
dot_product(Tstar_v,lattice_Sslip_v(1:6,1,index_myFamily+i,ph))
|
dot_product(Tstar_v,lattice_Sslip_v(1:6,1,index_myFamily+i,ph))
|
||||||
|
@ -862,24 +856,24 @@ function plastic_phenopowerlaw_postResults(Tstar_v,ipc,ip,el)
|
||||||
c = c + prm%totalNtwin
|
c = c + prm%totalNtwin
|
||||||
case (shearrate_twin_ID)
|
case (shearrate_twin_ID)
|
||||||
j = 0_pInt
|
j = 0_pInt
|
||||||
twinFamilies1: do f = 1_pInt,size(param(instance)%Ntwin,1)
|
twinFamilies1: do f = 1_pInt,size(prm%Ntwin,1)
|
||||||
index_myFamily = sum(lattice_NtwinSystem(1:f-1_pInt,ph)) ! at which index starts my family
|
index_myFamily = sum(lattice_NtwinSystem(1:f-1_pInt,ph)) ! at which index starts my family
|
||||||
twinSystems1: do i = 1_pInt,param(instance)%Ntwin(f)
|
twinSystems1: do i = 1_pInt,prm%Ntwin(f)
|
||||||
j = j + 1_pInt
|
j = j + 1_pInt
|
||||||
tau = dot_product(Tstar_v,lattice_Stwin_v(1:6,index_myFamily+i,ph))
|
tau = dot_product(Tstar_v,lattice_Stwin_v(1:6,index_myFamily+i,ph))
|
||||||
plastic_phenopowerlaw_postResults(c+j) = (1.0_pReal-state(instance)%sumF(of))*& ! 1-F
|
plastic_phenopowerlaw_postResults(c+j) = (1.0_pReal-state(instance)%sumF(of))*& ! 1-F
|
||||||
param(instance)%gdot0_twin*&
|
prm%gdot0_twin*&
|
||||||
(abs(tau)/state(instance)%s_twin(j,of))**&
|
(abs(tau)/state(instance)%s_twin(j,of))**&
|
||||||
param(instance)%n_twin*max(0.0_pReal,sign(1.0_pReal,tau))
|
prm%n_twin*max(0.0_pReal,sign(1.0_pReal,tau))
|
||||||
enddo twinSystems1
|
enddo twinSystems1
|
||||||
enddo twinFamilies1
|
enddo twinFamilies1
|
||||||
c = c + prm%totalNtwin
|
c = c + prm%totalNtwin
|
||||||
|
|
||||||
case (resolvedstress_twin_ID)
|
case (resolvedstress_twin_ID)
|
||||||
j = 0_pInt
|
j = 0_pInt
|
||||||
twinFamilies2: do f = 1_pInt,size(param(instance)%Ntwin,1)
|
twinFamilies2: do f = 1_pInt,size(prm%Ntwin,1)
|
||||||
index_myFamily = sum(lattice_NtwinSystem(1:f-1_pInt,ph)) ! at which index starts my family
|
index_myFamily = sum(lattice_NtwinSystem(1:f-1_pInt,ph)) ! at which index starts my family
|
||||||
twinSystems2: do i = 1_pInt,param(instance)%Ntwin(f)
|
twinSystems2: do i = 1_pInt,prm%Ntwin(f)
|
||||||
j = j + 1_pInt
|
j = j + 1_pInt
|
||||||
plastic_phenopowerlaw_postResults(c+j) = &
|
plastic_phenopowerlaw_postResults(c+j) = &
|
||||||
dot_product(Tstar_v,lattice_Stwin_v(1:6,index_myFamily+i,ph))
|
dot_product(Tstar_v,lattice_Stwin_v(1:6,index_myFamily+i,ph))
|
||||||
|
|
Loading…
Reference in New Issue