added two new outputs: "rho_dot_flux_mobile" and "rho_dot_sgl_mobile"

corrected outputs of dislocation density rates: take into account that blocked dislocation density is a signed quantity
This commit is contained in:
Christoph Kords 2014-01-07 15:55:28 +00:00
parent 72b01424aa
commit 629295242f
2 changed files with 26 additions and 5 deletions

View File

@ -46,6 +46,7 @@ plasticity nonlocal
(output) resistance
(output) rho_dot
(output) rho_dot_sgl
(output) rho_dot_sgl_mobile
(output) rho_dot_dip
(output) rho_dot_gen
(output) rho_dot_gen_edge
@ -59,6 +60,7 @@ plasticity nonlocal
(output) rho_dot_ann_the_screw
(output) rho_dot_edgejogs
(output) rho_dot_flux
(output) rho_dot_flux_mobile
(output) rho_dot_flux_edge
(output) rho_dot_flux_screw
(output) velocity_edge_pos

View File

@ -229,6 +229,7 @@ enum, bind(c)
resistance_ID, &
rho_dot_ID, &
rho_dot_sgl_ID, &
rho_dot_sgl_mobile_ID, &
rho_dot_dip_ID, &
rho_dot_gen_ID, &
rho_dot_gen_edge_ID, &
@ -242,6 +243,7 @@ enum, bind(c)
rho_dot_ann_the_screw_ID, &
rho_dot_edgejogs_ID, &
rho_dot_flux_ID, &
rho_dot_flux_mobile_ID, &
rho_dot_flux_edge_ID, &
rho_dot_flux_screw_ID, &
velocity_edge_pos_ID, &
@ -549,6 +551,8 @@ do while (trim(line) /= IO_EOF)
constitutive_nonlocal_outputID(Noutput(i),i) = rho_dot_ID
case('rho_dot_sgl')
constitutive_nonlocal_outputID(Noutput(i),i) = rho_dot_sgl_ID
case('rho_dot_sgl_mobile')
constitutive_nonlocal_outputID(Noutput(i),i) = rho_dot_sgl_mobile_ID
case('rho_dot_dip')
constitutive_nonlocal_outputID(Noutput(i),i) = rho_dot_dip_ID
case('rho_dot_gen')
@ -575,6 +579,8 @@ do while (trim(line) /= IO_EOF)
constitutive_nonlocal_outputID(Noutput(i),i) = rho_dot_edgejogs_ID
case('rho_dot_flux')
constitutive_nonlocal_outputID(Noutput(i),i) = rho_dot_flux_ID
case('rho_dot_flux_mobile')
constitutive_nonlocal_outputID(Noutput(i),i) = rho_dot_flux_mobile_ID
case('rho_dot_flux_edge')
constitutive_nonlocal_outputID(Noutput(i),i) = rho_dot_flux_edge_ID
case('rho_dot_flux_screw')
@ -1076,6 +1082,7 @@ instancesLoop: do i = 1,maxNmatIDs
resistance_ID, &
rho_dot_ID, &
rho_dot_sgl_ID, &
rho_dot_sgl_mobile_ID, &
rho_dot_dip_ID, &
rho_dot_gen_ID, &
rho_dot_gen_edge_ID, &
@ -1089,6 +1096,7 @@ instancesLoop: do i = 1,maxNmatIDs
rho_dot_ann_the_screw_ID, &
rho_dot_edgejogs_ID, &
rho_dot_flux_ID, &
rho_dot_flux_mobile_ID, &
rho_dot_flux_edge_ID, &
rho_dot_flux_screw_ID, &
velocity_edge_pos_ID, &
@ -3711,11 +3719,18 @@ outputsLoop: do o = 1_pInt,phase_Noutput(material_phase(ipc,ip,el))
cs = cs + ns
case (rho_dot_ID)
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = sum(rhoDotSgl,2) + sum(rhoDotDip,2)
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = sum(rhoDotSgl(1:ns,1:4),2) &
+ sum(rhoDotSgl(1:ns,5:8)*sign(1.0_pReal,rhoSgl(1:ns,5:8)),2) &
+ sum(rhoDotDip,2)
cs = cs + ns
case (rho_dot_sgl_ID)
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = sum(rhoDotSgl,2)
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = sum(rhoDotSgl(1:ns,1:4),2) &
+ sum(rhoDotSgl(1:ns,5:8)*sign(1.0_pReal,rhoSgl(1:ns,5:8)),2)
cs = cs + ns
case (rho_dot_sgl_mobile_ID)
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = sum(rhoDotSgl(1:ns,1:4),2)
cs = cs + ns
case (rho_dot_dip_ID)
@ -3770,19 +3785,23 @@ outputsLoop: do o = 1_pInt,phase_Noutput(material_phase(ipc,ip,el))
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = rhoDotEdgeJogsOutput(1:ns,ipc,ip,el)
cs = cs + ns
case (rho_dot_flux_mobile_ID)
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = sum(rhoDotFluxOutput(1:ns,1:4,ipc,ip,el),2)
cs = cs + ns
case (rho_dot_flux_ID)
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = sum(rhoDotFluxOutput(1:ns,1:4,ipc,ip,el),2) &
+ sum(abs(rhoDotFluxOutput(1:ns,5:8,ipc,ip,el)),2)
+ sum(rhoDotFluxOutput(1:ns,5:8,ipc,ip,el)*sign(1.0_pReal,rhoSgl(1:ns,5:8)),2)
cs = cs + ns
case (rho_dot_flux_edge_ID)
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = sum(rhoDotFluxOutput(1:ns,1:2,ipc,ip,el),2) &
+ sum(abs(rhoDotFluxOutput(1:ns,5:6,ipc,ip,el)),2)
+ sum(rhoDotFluxOutput(1:ns,5:6,ipc,ip,el)*sign(1.0_pReal,rhoSgl(1:ns,5:6)),2)
cs = cs + ns
case (rho_dot_flux_screw_ID)
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = sum(rhoDotFluxOutput(1:ns,3:4,ipc,ip,el),2) &
+ sum(abs(rhoDotFluxOutput(1:ns,7:8,ipc,ip,el)),2)
+ sum(rhoDotFluxOutput(1:ns,7:8,ipc,ip,el)*sign(1.0_pReal,rhoSgl(1:ns,7:8)),2)
cs = cs + ns
case (velocity_edge_pos_ID)