new outputs "accumulatedshear", "velocity_edge", and "velocity_screw" (the latter two replace the output "dislocationvelocity")
This commit is contained in:
parent
bc01f94be4
commit
7033e84fc7
|
@ -204,7 +204,8 @@ constitution nonlocal
|
|||
(output) rho_dot_flux
|
||||
(output) rho_dot_flux_edge
|
||||
(output) rho_dot_flux_screw
|
||||
(output) dislocationvelocity
|
||||
(output) velocity_edge
|
||||
(output) velocity_screw
|
||||
(output) fluxDensity_edge_pos_x
|
||||
(output) fluxDensity_edge_pos_y
|
||||
(output) fluxDensity_edge_pos_z
|
||||
|
@ -219,6 +220,7 @@ constitution nonlocal
|
|||
(output) fluxDensity_screw_neg_z
|
||||
(output) d_upper_edge
|
||||
(output) d_upper_screw
|
||||
(output) accumulatedshear
|
||||
|
||||
lattice_structure fcc
|
||||
Nslip 12 # number of slip systems
|
||||
|
|
|
@ -46,11 +46,11 @@ character(len=22), dimension(10), parameter :: constitutive_nonlocal_listBasi
|
|||
'rhoSglScrewNegImmobile', &
|
||||
'rhoDipEdge ', &
|
||||
'rhoDipScrew ' /) ! list of "basic" microstructural state variables that are independent from other state variables
|
||||
character(len=15), dimension(3), parameter :: constitutive_nonlocal_listDependentStates = (/'rhoForest ', &
|
||||
'tauThreshold ', &
|
||||
'Tdislocation_v ' /) ! list of microstructural state variables that depend on other state variables
|
||||
character(len=15), dimension(2), parameter :: constitutive_nonlocal_listOtherStates = (/'velocityEdge ', &
|
||||
'velocityScrew ' /) ! list of other dependent state variables that are not updated by microstructure
|
||||
character(len=16), dimension(3), parameter :: constitutive_nonlocal_listDependentStates = (/'rhoForest ', &
|
||||
'tauThreshold ', &
|
||||
'Tdislocation_v ' /) ! list of microstructural state variables that depend on other state variables
|
||||
character(len=16), dimension(2), parameter :: constitutive_nonlocal_listOtherStates = (/'velocityEdge ', &
|
||||
'velocityScrew ' /) ! list of other dependent state variables that are not updated by microstructure
|
||||
real(pReal), parameter :: kB = 1.38e-23_pReal ! Physical parameter, Boltzmann constant in J/Kelvin
|
||||
|
||||
!* Definition of global variables
|
||||
|
@ -110,7 +110,8 @@ real(pReal), dimension(:,:,:,:,:,:), allocatable :: constitutive_nonlocal_
|
|||
real(pReal), dimension(:,:,:), allocatable :: constitutive_nonlocal_forestProjectionEdge, & ! matrix of forest projections of edge dislocations for each instance
|
||||
constitutive_nonlocal_forestProjectionScrew, & ! matrix of forest projections of screw dislocations for each instance
|
||||
constitutive_nonlocal_interactionMatrixSlipSlip ! interaction matrix of the different slip systems for each instance
|
||||
real(pReal), dimension(:,:,:,:), allocatable :: constitutive_nonlocal_lattice2slip ! orthogonal transformation matrix from lattice coordinate system to slip coordinate system (passive rotation !!!)
|
||||
real(pReal), dimension(:,:,:,:), allocatable :: constitutive_nonlocal_lattice2slip, & ! orthogonal transformation matrix from lattice coordinate system to slip coordinate system (passive rotation !!!)
|
||||
constitutive_nonlocal_accumulatedShear ! accumulated shear per slip system up to the start of the FE increment
|
||||
|
||||
|
||||
CONTAINS
|
||||
|
@ -489,6 +490,9 @@ constitutive_nonlocal_interactionMatrixSlipSlip = 0.0_pReal
|
|||
allocate(constitutive_nonlocal_lattice2slip(1:3, 1:3, maxTotalNslip, maxNinstance))
|
||||
constitutive_nonlocal_lattice2slip = 0.0_pReal
|
||||
|
||||
allocate(constitutive_nonlocal_accumulatedShear(maxTotalNslip, homogenization_maxNgrains, mesh_maxNips, mesh_NcpElems))
|
||||
constitutive_nonlocal_accumulatedShear = 0.0_pReal
|
||||
|
||||
allocate(constitutive_nonlocal_rhoDotFlux(maxTotalNslip, 10, homogenization_maxNgrains, mesh_maxNips, mesh_NcpElems))
|
||||
constitutive_nonlocal_rhoDotFlux = 0.0_pReal
|
||||
|
||||
|
@ -576,7 +580,8 @@ do i = 1,maxNinstance
|
|||
'rho_dot_flux', &
|
||||
'rho_dot_flux_edge', &
|
||||
'rho_dot_flux_screw', &
|
||||
'dislocationvelocity', &
|
||||
'velocity_edge', &
|
||||
'velocity_screw', &
|
||||
'fluxdensity_edge_pos_x', &
|
||||
'fluxdensity_edge_pos_y', &
|
||||
'fluxdensity_edge_pos_z', &
|
||||
|
@ -590,7 +595,8 @@ do i = 1,maxNinstance
|
|||
'fluxdensity_screw_neg_y', &
|
||||
'fluxdensity_screw_neg_z', &
|
||||
'd_upper_edge', &
|
||||
'd_upper_screw' )
|
||||
'd_upper_screw', &
|
||||
'accumulatedshear' )
|
||||
mySize = constitutive_nonlocal_totalNslip(i)
|
||||
case('internalstress')
|
||||
mySize = 6_pInt
|
||||
|
@ -2571,10 +2577,14 @@ do o = 1,phase_Noutput(material_phase(g,ip,el))
|
|||
+ sum(abs(constitutive_nonlocal_rhoDotFlux(1:ns,7:8,g,ip,el)),2)
|
||||
cs = cs + ns
|
||||
|
||||
case ('dislocationvelocity')
|
||||
case ('velocity_edge')
|
||||
constitutive_nonlocal_postResults(cs+1:cs+ns) = v(1:ns,1)
|
||||
cs = cs + ns
|
||||
|
||||
case ('velocity_screw')
|
||||
constitutive_nonlocal_postResults(cs+1:cs+ns) = v(1:ns,3)
|
||||
cs = cs + ns
|
||||
|
||||
case ('fluxdensity_edge_pos_x')
|
||||
constitutive_nonlocal_postResults(cs+1:cs+ns) = rhoSgl(1:ns,1) * v(1:ns,1) * m_currentconf(1,1:ns,1)
|
||||
cs = cs + ns
|
||||
|
@ -2640,7 +2650,12 @@ do o = 1,phase_Noutput(material_phase(g,ip,el))
|
|||
constitutive_nonlocal_postResults(cs+5) = sigma(2,3)
|
||||
constitutive_nonlocal_postResults(cs+6) = sigma(3,1)
|
||||
cs = cs + 6_pInt
|
||||
|
||||
|
||||
case('accumulatedshear')
|
||||
constitutive_nonlocal_accumulatedShear(1:ns,g,ip,el) = constitutive_nonlocal_accumulatedShear(1:ns,g,ip,el) + sum(gdot,2)
|
||||
constitutive_nonlocal_postResults(cs+1:cs+ns) = constitutive_nonlocal_accumulatedShear(1:ns,g,ip,el)
|
||||
cs = cs + ns
|
||||
|
||||
end select
|
||||
enddo
|
||||
|
||||
|
|
Loading…
Reference in New Issue