added output of slip direction and slip normal

changed name of fluxdensity outputs
This commit is contained in:
Christoph Kords 2013-05-23 08:19:36 +00:00
parent 19dc95a915
commit ec2503253e
2 changed files with 78 additions and 37 deletions

View File

@ -253,18 +253,24 @@ plasticity nonlocal
(output) velocity_edge_neg (output) velocity_edge_neg
(output) velocity_screw_pos (output) velocity_screw_pos
(output) velocity_screw_neg (output) velocity_screw_neg
(output) fluxDensity_edge_pos_x (output) slipdirection.x
(output) fluxDensity_edge_pos_y (output) slipdirection.y
(output) fluxDensity_edge_pos_z (output) slipdirection.z
(output) fluxDensity_edge_neg_x (output) slipnormal.x
(output) fluxDensity_edge_neg_y (output) slipnormal.y
(output) fluxDensity_edge_neg_z (output) slipnormal.z
(output) fluxDensity_screw_pos_x (output) fluxDensity_edge_pos.x
(output) fluxDensity_screw_pos_y (output) fluxDensity_edge_pos.y
(output) fluxDensity_screw_pos_z (output) fluxDensity_edge_pos.z
(output) fluxDensity_screw_neg_x (output) fluxDensity_edge_neg.x
(output) fluxDensity_screw_neg_y (output) fluxDensity_edge_neg.y
(output) fluxDensity_screw_neg_z (output) fluxDensity_edge_neg.z
(output) fluxDensity_screw_pos.x
(output) fluxDensity_screw_pos.y
(output) fluxDensity_screw_pos.z
(output) fluxDensity_screw_neg.x
(output) fluxDensity_screw_neg.y
(output) fluxDensity_screw_neg.z
(output) maximumDipoleHeight_edge (output) maximumDipoleHeight_edge
(output) maximumDipoleHeight_screw (output) maximumDipoleHeight_screw
(output) accumulatedshear (output) accumulatedshear

View File

@ -834,18 +834,24 @@ do i = 1,maxNinstance
'velocity_edge_neg', & 'velocity_edge_neg', &
'velocity_screw_pos', & 'velocity_screw_pos', &
'velocity_screw_neg', & 'velocity_screw_neg', &
'fluxdensity_edge_pos_x', & 'slipdirection.x', &
'fluxdensity_edge_pos_y', & 'slipdirection.y', &
'fluxdensity_edge_pos_z', & 'slipdirection.z', &
'fluxdensity_edge_neg_x', & 'slipnormal.x', &
'fluxdensity_edge_neg_y', & 'slipnormal.y', &
'fluxdensity_edge_neg_z', & 'slipnormal.z', &
'fluxdensity_screw_pos_x', & 'fluxdensity_edge_pos.x', &
'fluxdensity_screw_pos_y', & 'fluxdensity_edge_pos.y', &
'fluxdensity_screw_pos_z', & 'fluxdensity_edge_pos.z', &
'fluxdensity_screw_neg_x', & 'fluxdensity_edge_neg.x', &
'fluxdensity_screw_neg_y', & 'fluxdensity_edge_neg.y', &
'fluxdensity_screw_neg_z', & 'fluxdensity_edge_neg.z', &
'fluxdensity_screw_pos.x', &
'fluxdensity_screw_pos.y', &
'fluxdensity_screw_pos.z', &
'fluxdensity_screw_neg.x', &
'fluxdensity_screw_neg.y', &
'fluxdensity_screw_neg.z', &
'maximumdipoleheight_edge', & 'maximumdipoleheight_edge', &
'maximumdipoleheight_screw', & 'maximumdipoleheight_screw', &
'accumulatedshear', & 'accumulatedshear', &
@ -3212,7 +3218,8 @@ use material, only: homogenization_maxNgrains, &
phase_Noutput phase_Noutput
use lattice, only: lattice_Sslip_v, & use lattice, only: lattice_Sslip_v, &
lattice_sd, & lattice_sd, &
lattice_st lattice_st, &
lattice_sn
implicit none implicit none
@ -3262,6 +3269,8 @@ real(pReal), dimension(constitutive_nonlocal_totalNslip(phase_plasticityInstance
real(pReal), dimension(3,constitutive_nonlocal_totalNslip(phase_plasticityInstance(material_phase(g,ip,el))),2) :: & real(pReal), dimension(3,constitutive_nonlocal_totalNslip(phase_plasticityInstance(material_phase(g,ip,el))),2) :: &
m, & ! direction of dislocation motion for edge and screw (unit vector) m, & ! direction of dislocation motion for edge and screw (unit vector)
m_currentconf ! direction of dislocation motion for edge and screw (unit vector) in current configuration m_currentconf ! direction of dislocation motion for edge and screw (unit vector) in current configuration
real(pReal), dimension(3,constitutive_nonlocal_totalNslip(phase_plasticityInstance(material_phase(g,ip,el)))) :: &
n_currentconf ! slip system normal (unit vector) in current configuration
real(pReal), dimension(3,3) :: sigma real(pReal), dimension(3,3) :: sigma
myInstance = phase_plasticityInstance(material_phase(g,ip,el)) myInstance = phase_plasticityInstance(material_phase(g,ip,el))
@ -3327,6 +3336,8 @@ m(1:3,1:ns,1) = lattice_sd(1:3,constitutive_nonlocal_slipSystemLattice(1:ns,myIn
m(1:3,1:ns,2) = -lattice_st(1:3,constitutive_nonlocal_slipSystemLattice(1:ns,myInstance),myStructure) m(1:3,1:ns,2) = -lattice_st(1:3,constitutive_nonlocal_slipSystemLattice(1:ns,myInstance),myStructure)
forall (c = 1_pInt:2_pInt, s = 1_pInt:ns) & forall (c = 1_pInt:2_pInt, s = 1_pInt:ns) &
m_currentconf(1:3,s,c) = math_mul33x3(Fe, m(1:3,s,c)) m_currentconf(1:3,s,c) = math_mul33x3(Fe, m(1:3,s,c))
forall (s = 1_pInt:ns) &
n_currentconf(1:3,s) = math_mul33x3(Fe, lattice_sn(1:3,constitutive_nonlocal_slipSystemLattice(s,myInstance),myStructure))
do o = 1_pInt,phase_Noutput(material_phase(g,ip,el)) do o = 1_pInt,phase_Noutput(material_phase(g,ip,el))
@ -3587,51 +3598,75 @@ do o = 1_pInt,phase_Noutput(material_phase(g,ip,el))
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = v(1:ns,4) constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = v(1:ns,4)
cs = cs + ns cs = cs + ns
case ('fluxdensity_edge_pos_x') case ('slipdirection.x')
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = m_currentconf(1,1:ns,1)
cs = cs + ns
case ('slipdirection.y')
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = m_currentconf(2,1:ns,1)
cs = cs + ns
case ('slipdirection.z')
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = m_currentconf(3,1:ns,1)
cs = cs + ns
case ('slipnormal.x')
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = n_currentconf(1,1:ns)
cs = cs + ns
case ('slipnormal.y')
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = n_currentconf(2,1:ns)
cs = cs + ns
case ('slipnormal.z')
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = n_currentconf(3,1:ns)
cs = cs + ns
case ('fluxdensity_edge_pos.x')
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = rhoSgl(1:ns,1) * v(1:ns,1) * m_currentconf(1,1:ns,1) constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = rhoSgl(1:ns,1) * v(1:ns,1) * m_currentconf(1,1:ns,1)
cs = cs + ns cs = cs + ns
case ('fluxdensity_edge_pos_y') case ('fluxdensity_edge_pos.y')
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = rhoSgl(1:ns,1) * v(1:ns,1) * m_currentconf(2,1:ns,1) constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = rhoSgl(1:ns,1) * v(1:ns,1) * m_currentconf(2,1:ns,1)
cs = cs + ns cs = cs + ns
case ('fluxdensity_edge_pos_z') case ('fluxdensity_edge_pos.z')
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = rhoSgl(1:ns,1) * v(1:ns,1) * m_currentconf(3,1:ns,1) constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = rhoSgl(1:ns,1) * v(1:ns,1) * m_currentconf(3,1:ns,1)
cs = cs + ns cs = cs + ns
case ('fluxdensity_edge_neg_x') case ('fluxdensity_edge_neg.x')
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = - rhoSgl(1:ns,2) * v(1:ns,2) * m_currentconf(1,1:ns,1) constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = - rhoSgl(1:ns,2) * v(1:ns,2) * m_currentconf(1,1:ns,1)
cs = cs + ns cs = cs + ns
case ('fluxdensity_edge_neg_y') case ('fluxdensity_edge_neg.y')
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = - rhoSgl(1:ns,2) * v(1:ns,2) * m_currentconf(2,1:ns,1) constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = - rhoSgl(1:ns,2) * v(1:ns,2) * m_currentconf(2,1:ns,1)
cs = cs + ns cs = cs + ns
case ('fluxdensity_edge_neg_z') case ('fluxdensity_edge_neg.z')
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = - rhoSgl(1:ns,2) * v(1:ns,2) * m_currentconf(3,1:ns,1) constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = - rhoSgl(1:ns,2) * v(1:ns,2) * m_currentconf(3,1:ns,1)
cs = cs + ns cs = cs + ns
case ('fluxdensity_screw_pos_x') case ('fluxdensity_screw_pos.x')
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = rhoSgl(1:ns,3) * v(1:ns,3) * m_currentconf(1,1:ns,2) constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = rhoSgl(1:ns,3) * v(1:ns,3) * m_currentconf(1,1:ns,2)
cs = cs + ns cs = cs + ns
case ('fluxdensity_screw_pos_y') case ('fluxdensity_screw_pos.y')
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = rhoSgl(1:ns,3) * v(1:ns,3) * m_currentconf(2,1:ns,2) constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = rhoSgl(1:ns,3) * v(1:ns,3) * m_currentconf(2,1:ns,2)
cs = cs + ns cs = cs + ns
case ('fluxdensity_screw_pos_z') case ('fluxdensity_screw_pos.z')
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = rhoSgl(1:ns,3) * v(1:ns,3) * m_currentconf(3,1:ns,2) constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = rhoSgl(1:ns,3) * v(1:ns,3) * m_currentconf(3,1:ns,2)
cs = cs + ns cs = cs + ns
case ('fluxdensity_screw_neg_x') case ('fluxdensity_screw_neg.x')
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = - rhoSgl(1:ns,4) * v(1:ns,4) * m_currentconf(1,1:ns,2) constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = - rhoSgl(1:ns,4) * v(1:ns,4) * m_currentconf(1,1:ns,2)
cs = cs + ns cs = cs + ns
case ('fluxdensity_screw_neg_y') case ('fluxdensity_screw_neg.y')
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = - rhoSgl(1:ns,4) * v(1:ns,4) * m_currentconf(2,1:ns,2) constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = - rhoSgl(1:ns,4) * v(1:ns,4) * m_currentconf(2,1:ns,2)
cs = cs + ns cs = cs + ns
case ('fluxdensity_screw_neg_z') case ('fluxdensity_screw_neg.z')
constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = - rhoSgl(1:ns,4) * v(1:ns,4) * m_currentconf(3,1:ns,2) constitutive_nonlocal_postResults(cs+1_pInt:cs+ns) = - rhoSgl(1:ns,4) * v(1:ns,4) * m_currentconf(3,1:ns,2)
cs = cs + ns cs = cs + ns