polishing
This commit is contained in:
parent
ec2503253e
commit
3aaf60cffe
|
@ -30,7 +30,10 @@
|
||||||
MODULE constitutive_nonlocal
|
MODULE constitutive_nonlocal
|
||||||
|
|
||||||
!* Include other modules
|
!* Include other modules
|
||||||
use prec, only: pReal,pInt
|
use prec, only: &
|
||||||
|
pReal, &
|
||||||
|
pInt, &
|
||||||
|
p_vec
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
private
|
private
|
||||||
|
@ -206,7 +209,6 @@ CONTAINS
|
||||||
subroutine constitutive_nonlocal_init(myFile)
|
subroutine constitutive_nonlocal_init(myFile)
|
||||||
|
|
||||||
use, intrinsic :: iso_fortran_env ! to get compiler_version and compiler_options (at least for gfortran 4.6 at the moment)
|
use, intrinsic :: iso_fortran_env ! to get compiler_version and compiler_options (at least for gfortran 4.6 at the moment)
|
||||||
use prec, only: pInt, pReal
|
|
||||||
use math, only: math_Mandel3333to66, &
|
use math, only: math_Mandel3333to66, &
|
||||||
math_Voigt66to3333, &
|
math_Voigt66to3333, &
|
||||||
math_mul3x3, &
|
math_mul3x3, &
|
||||||
|
@ -942,9 +944,6 @@ endsubroutine
|
||||||
!*********************************************************************
|
!*********************************************************************
|
||||||
subroutine constitutive_nonlocal_stateInit(state)
|
subroutine constitutive_nonlocal_stateInit(state)
|
||||||
|
|
||||||
use prec, only: pReal, &
|
|
||||||
pInt, &
|
|
||||||
p_vec
|
|
||||||
use lattice, only: lattice_maxNslipFamily
|
use lattice, only: lattice_maxNslipFamily
|
||||||
use math, only: math_sampleGaussVar
|
use math, only: math_sampleGaussVar
|
||||||
use mesh, only: mesh_ipVolume, &
|
use mesh, only: mesh_ipVolume, &
|
||||||
|
@ -1101,8 +1100,6 @@ endsubroutine
|
||||||
!*********************************************************************
|
!*********************************************************************
|
||||||
pure function constitutive_nonlocal_aTolState(myInstance)
|
pure function constitutive_nonlocal_aTolState(myInstance)
|
||||||
|
|
||||||
use prec, only: pReal, &
|
|
||||||
pInt
|
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
!*** input variables
|
!*** input variables
|
||||||
|
@ -1129,9 +1126,6 @@ endfunction
|
||||||
!*********************************************************************
|
!*********************************************************************
|
||||||
pure function constitutive_nonlocal_homogenizedC(state,g,ip,el)
|
pure function constitutive_nonlocal_homogenizedC(state,g,ip,el)
|
||||||
|
|
||||||
use prec, only: pReal, &
|
|
||||||
pInt, &
|
|
||||||
p_vec
|
|
||||||
use mesh, only: mesh_NcpElems, &
|
use mesh, only: mesh_NcpElems, &
|
||||||
mesh_maxNips
|
mesh_maxNips
|
||||||
use material, only: homogenization_maxNgrains, &
|
use material, only: homogenization_maxNgrains, &
|
||||||
|
@ -1162,52 +1156,53 @@ endfunction
|
||||||
!*********************************************************************
|
!*********************************************************************
|
||||||
!* calculates quantities characterizing the microstructure *
|
!* calculates quantities characterizing the microstructure *
|
||||||
!*********************************************************************
|
!*********************************************************************
|
||||||
subroutine constitutive_nonlocal_microstructure(state, Temperature, Fe, Fp, g, ip, el)
|
subroutine constitutive_nonlocal_microstructure(state, Temperature, Fe, Fp, gr, ip, el)
|
||||||
|
|
||||||
use prec, only: pReal, &
|
use IO, only: &
|
||||||
pInt, &
|
IO_error
|
||||||
p_vec
|
use math, only: &
|
||||||
use IO, only: IO_error
|
pi, &
|
||||||
use math, only: math_Mandel33to6, &
|
math_mul33x3, &
|
||||||
math_mul33x33, &
|
math_mul3x3, &
|
||||||
math_mul33x3, &
|
math_norm3, &
|
||||||
math_mul3x3, &
|
math_invert33, &
|
||||||
math_norm3, &
|
math_transpose33
|
||||||
math_inv33, &
|
use debug, only: &
|
||||||
math_invert33, &
|
debug_level, &
|
||||||
math_transpose33, &
|
debug_constitutive, &
|
||||||
pi
|
debug_levelBasic, &
|
||||||
use debug, only: debug_level, &
|
debug_levelExtensive, &
|
||||||
debug_constitutive, &
|
debug_levelSelective, &
|
||||||
debug_levelBasic, &
|
debug_g, &
|
||||||
debug_levelExtensive, &
|
debug_i, &
|
||||||
debug_levelSelective, &
|
debug_e
|
||||||
debug_g, &
|
use mesh, only: &
|
||||||
debug_i, &
|
mesh_NcpElems, &
|
||||||
debug_e
|
mesh_maxNips, &
|
||||||
use mesh, only: mesh_NcpElems, &
|
mesh_element, &
|
||||||
mesh_maxNips, &
|
mesh_ipNeighborhood, &
|
||||||
mesh_element, &
|
mesh_ipCoordinates, &
|
||||||
mesh_ipNeighborhood, &
|
mesh_ipVolume, &
|
||||||
mesh_ipCoordinates, &
|
mesh_ipAreaNormal, &
|
||||||
mesh_ipVolume, &
|
mesh_ipArea, &
|
||||||
mesh_ipAreaNormal, &
|
FE_NipNeighbors, &
|
||||||
FE_NipNeighbors, &
|
FE_maxNipNeighbors, &
|
||||||
FE_maxNipNeighbors, &
|
FE_geomtype, &
|
||||||
FE_geomtype, &
|
FE_celltype
|
||||||
FE_celltype
|
use material, only: &
|
||||||
use material, only: homogenization_maxNgrains, &
|
homogenization_maxNgrains, &
|
||||||
material_phase, &
|
material_phase, &
|
||||||
phase_localPlasticity, &
|
phase_localPlasticity, &
|
||||||
phase_plasticityInstance
|
phase_plasticityInstance
|
||||||
use lattice, only: lattice_sd, &
|
use lattice, only: &
|
||||||
lattice_st, &
|
lattice_sd, &
|
||||||
lattice_interactionSlipSlip
|
lattice_st, &
|
||||||
|
lattice_interactionSlipSlip
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
!*** input variables
|
!*** input variables
|
||||||
integer(pInt), intent(in) :: g, & ! current grain ID
|
integer(pInt), intent(in) :: gr, & ! current grain ID
|
||||||
ip, & ! current integration point
|
ip, & ! current integration point
|
||||||
el ! current element
|
el ! current element
|
||||||
real(pReal), intent(in) :: Temperature ! temperature
|
real(pReal), intent(in) :: Temperature ! temperature
|
||||||
|
@ -1256,7 +1251,7 @@ real(pReal), dimension(2) :: rhoExcessGradient, &
|
||||||
real(pReal), dimension(3) :: ipCoords, &
|
real(pReal), dimension(3) :: ipCoords, &
|
||||||
neighboring_ipCoords, &
|
neighboring_ipCoords, &
|
||||||
rhoExcessDifferences
|
rhoExcessDifferences
|
||||||
real(pReal), dimension(constitutive_nonlocal_totalNslip(phase_plasticityInstance(material_phase(g,ip,el)))) :: &
|
real(pReal), dimension(constitutive_nonlocal_totalNslip(phase_plasticityInstance(material_phase(gr,ip,el)))) :: &
|
||||||
rhoForest, & ! forest dislocation density
|
rhoForest, & ! forest dislocation density
|
||||||
tauBack, & ! back stress from pileup on same slip system
|
tauBack, & ! back stress from pileup on same slip system
|
||||||
tauThreshold ! threshold shear stress
|
tauThreshold ! threshold shear stress
|
||||||
|
@ -1266,24 +1261,24 @@ real(pReal), dimension(3,3) :: invFe, & ! inverse of elast
|
||||||
invConnections
|
invConnections
|
||||||
real(pReal), dimension(3,FE_maxNipNeighbors) :: &
|
real(pReal), dimension(3,FE_maxNipNeighbors) :: &
|
||||||
connection_latticeConf
|
connection_latticeConf
|
||||||
real(pReal), dimension(2,constitutive_nonlocal_totalNslip(phase_plasticityInstance(material_phase(g,ip,el)))) :: &
|
real(pReal), dimension(2,constitutive_nonlocal_totalNslip(phase_plasticityInstance(material_phase(gr,ip,el)))) :: &
|
||||||
rhoExcess
|
rhoExcess
|
||||||
real(pReal), dimension(constitutive_nonlocal_totalNslip(phase_plasticityInstance(material_phase(g,ip,el))),2) :: &
|
real(pReal), dimension(constitutive_nonlocal_totalNslip(phase_plasticityInstance(material_phase(gr,ip,el))),2) :: &
|
||||||
rhoDip ! dipole dislocation density (edge, screw)
|
rhoDip ! dipole dislocation density (edge, screw)
|
||||||
real(pReal), dimension(constitutive_nonlocal_totalNslip(phase_plasticityInstance(material_phase(g,ip,el))),8) :: &
|
real(pReal), dimension(constitutive_nonlocal_totalNslip(phase_plasticityInstance(material_phase(gr,ip,el))),8) :: &
|
||||||
rhoSgl ! single dislocation density (edge+, edge-, screw+, screw-, used edge+, used edge-, used screw+, used screw-)
|
rhoSgl ! single dislocation density (edge+, edge-, screw+, screw-, used edge+, used edge-, used screw+, used screw-)
|
||||||
real(pReal), dimension(constitutive_nonlocal_totalNslip(phase_plasticityInstance(material_phase(g,ip,el))), &
|
real(pReal), dimension(constitutive_nonlocal_totalNslip(phase_plasticityInstance(material_phase(gr,ip,el))), &
|
||||||
constitutive_nonlocal_totalNslip(phase_plasticityInstance(material_phase(g,ip,el)))) :: &
|
constitutive_nonlocal_totalNslip(phase_plasticityInstance(material_phase(gr,ip,el)))) :: &
|
||||||
myInteractionMatrix ! corrected slip interaction matrix
|
myInteractionMatrix ! corrected slip interaction matrix
|
||||||
real(pReal), dimension(2,maxval(constitutive_nonlocal_totalNslip),FE_maxNipNeighbors) :: &
|
real(pReal), dimension(2,maxval(constitutive_nonlocal_totalNslip),FE_maxNipNeighbors) :: &
|
||||||
neighboring_rhoExcess, & ! excess density at neighboring material point
|
neighboring_rhoExcess, & ! excess density at neighboring material point
|
||||||
neighboring_rhoTotal ! total density at neighboring material point
|
neighboring_rhoTotal ! total density at neighboring material point
|
||||||
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(gr,ip,el))),2) :: &
|
||||||
m ! direction of dislocation motion
|
m ! direction of dislocation motion
|
||||||
logical inversionError
|
logical inversionError
|
||||||
|
|
||||||
|
|
||||||
phase = material_phase(g,ip,el)
|
phase = material_phase(gr,ip,el)
|
||||||
instance = phase_plasticityInstance(phase)
|
instance = phase_plasticityInstance(phase)
|
||||||
latticeStruct = constitutive_nonlocal_structure(instance)
|
latticeStruct = constitutive_nonlocal_structure(instance)
|
||||||
ns = constitutive_nonlocal_totalNslip(instance)
|
ns = constitutive_nonlocal_totalNslip(instance)
|
||||||
|
@ -1292,16 +1287,18 @@ ns = constitutive_nonlocal_totalNslip(instance)
|
||||||
!*** get basic states
|
!*** get basic states
|
||||||
|
|
||||||
forall (s = 1_pInt:ns, t = 1_pInt:4_pInt) &
|
forall (s = 1_pInt:ns, t = 1_pInt:4_pInt) &
|
||||||
rhoSgl(s,t) = max(state(g,ip,el)%p((t-1_pInt)*ns+s), 0.0_pReal) ! ensure positive single mobile densities
|
rhoSgl(s,t) = max(state(gr,ip,el)%p((t-1_pInt)*ns+s), 0.0_pReal) ! ensure positive single mobile densities
|
||||||
forall (t = 5_pInt:8_pInt) &
|
forall (t = 5_pInt:8_pInt) &
|
||||||
rhoSgl(1:ns,t) = state(g,ip,el)%p((t-1_pInt)*ns+1_pInt:t*ns)
|
rhoSgl(1:ns,t) = state(gr,ip,el)%p((t-1_pInt)*ns+1_pInt:t*ns)
|
||||||
forall (s = 1_pInt:ns, c = 1_pInt:2_pInt) &
|
forall (s = 1_pInt:ns, c = 1_pInt:2_pInt) &
|
||||||
rhoDip(s,c) = max(state(g,ip,el)%p((7_pInt+c)*ns+s), 0.0_pReal) ! ensure positive dipole densities
|
rhoDip(s,c) = max(state(gr,ip,el)%p((7_pInt+c)*ns+s), 0.0_pReal) ! ensure positive dipole densities
|
||||||
where (abs(rhoSgl) * mesh_ipVolume(ip,el) ** 0.667_pReal < constitutive_nonlocal_significantN(instance) &
|
where (abs(rhoSgl) * mesh_ipVolume(ip,el) ** 0.667_pReal &
|
||||||
.or. abs(rhoSgl) < constitutive_nonlocal_significantRho(instance)) &
|
< constitutive_nonlocal_significantN(instance) &
|
||||||
|
.or. abs(rhoSgl) < constitutive_nonlocal_significantRho(instance)) &
|
||||||
rhoSgl = 0.0_pReal
|
rhoSgl = 0.0_pReal
|
||||||
where (abs(rhoDip) * mesh_ipVolume(ip,el) ** 0.667_pReal < constitutive_nonlocal_significantN(instance) &
|
where (abs(rhoDip) * mesh_ipVolume(ip,el) ** 0.667_pReal &
|
||||||
.or. abs(rhoDip) < constitutive_nonlocal_significantRho(instance)) &
|
< constitutive_nonlocal_significantN(instance) &
|
||||||
|
.or. abs(rhoDip) < constitutive_nonlocal_significantRho(instance)) &
|
||||||
rhoDip = 0.0_pReal
|
rhoDip = 0.0_pReal
|
||||||
|
|
||||||
|
|
||||||
|
@ -1320,7 +1317,7 @@ forall (s = 1_pInt:ns) &
|
||||||
|
|
||||||
myInteractionMatrix = 0.0_pReal
|
myInteractionMatrix = 0.0_pReal
|
||||||
myInteractionMatrix(1:ns,1:ns) = constitutive_nonlocal_interactionMatrixSlipSlip(1:ns,1:ns,instance)
|
myInteractionMatrix(1:ns,1:ns) = constitutive_nonlocal_interactionMatrixSlipSlip(1:ns,1:ns,instance)
|
||||||
if (latticeStruct == 1_pInt) then ! in case of fcc: coefficients are corrected for the line tension effect (see Kubin,Devincre,Hoc; 2008; Modeling dislocation storage rates and mean free paths in face-centered cubic crystals)
|
if (latticeStruct == 1_pInt) then ! in case of fcc: coefficients are corrected for the line tension effect (see Kubin,Devincre,Hoc; 2008; Modeling dislocation storage rates and mean free paths in face-centered cubic crystals)
|
||||||
do s = 1_pInt,ns
|
do s = 1_pInt,ns
|
||||||
myRhoForest = max(rhoForest(s),constitutive_nonlocal_significantRho(instance))
|
myRhoForest = max(rhoForest(s),constitutive_nonlocal_significantRho(instance))
|
||||||
correction = ( 1.0_pReal - constitutive_nonlocal_linetensionEffect(instance) &
|
correction = ( 1.0_pReal - constitutive_nonlocal_linetensionEffect(instance) &
|
||||||
|
@ -1328,11 +1325,12 @@ if (latticeStruct == 1_pInt) then ! in case of fcc: coefficients are corrected f
|
||||||
* log(0.35_pReal * constitutive_nonlocal_burgers(s,instance) * sqrt(myRhoForest)) &
|
* log(0.35_pReal * constitutive_nonlocal_burgers(s,instance) * sqrt(myRhoForest)) &
|
||||||
/ log(0.35_pReal * constitutive_nonlocal_burgers(s,instance) * 1e6_pReal)) ** 2.0_pReal
|
/ log(0.35_pReal * constitutive_nonlocal_burgers(s,instance) * 1e6_pReal)) ** 2.0_pReal
|
||||||
do s2 = 1_pInt,ns
|
do s2 = 1_pInt,ns
|
||||||
interactionCoefficient = lattice_interactionSlipSlip(constitutive_nonlocal_slipSystemLattice(s,instance), &
|
interactionCoefficient = &
|
||||||
constitutive_nonlocal_slipSystemLattice(s2,instance), &
|
lattice_interactionSlipSlip(constitutive_nonlocal_slipSystemLattice(s,instance), &
|
||||||
latticeStruct)
|
constitutive_nonlocal_slipSystemLattice(s2,instance), &
|
||||||
|
latticeStruct)
|
||||||
select case(interactionCoefficient)
|
select case(interactionCoefficient)
|
||||||
case(4_pInt,5_pInt,6_pInt) ! only correct junction forming interactions (4,5,6)
|
case(4_pInt,5_pInt,6_pInt) ! only correct junction forming interactions (4,5,6)
|
||||||
myInteractionMatrix(s,s2) = correction * myInteractionMatrix(s,s2)
|
myInteractionMatrix(s,s2) = correction * myInteractionMatrix(s,s2)
|
||||||
endselect
|
endselect
|
||||||
enddo
|
enddo
|
||||||
|
@ -1367,7 +1365,7 @@ if (.not. phase_localPlasticity(phase) .and. constitutive_nonlocal_shortRangeStr
|
||||||
neighboring_el = mesh_ipNeighborhood(1,n,ip,el)
|
neighboring_el = mesh_ipNeighborhood(1,n,ip,el)
|
||||||
neighboring_ip = mesh_ipNeighborhood(2,n,ip,el)
|
neighboring_ip = mesh_ipNeighborhood(2,n,ip,el)
|
||||||
if (neighboring_el > 0 .and. neighboring_ip > 0) then
|
if (neighboring_el > 0 .and. neighboring_ip > 0) then
|
||||||
neighboring_phase = material_phase(g,neighboring_ip,neighboring_el)
|
neighboring_phase = material_phase(gr,neighboring_ip,neighboring_el)
|
||||||
neighboring_instance = phase_plasticityInstance(neighboring_phase)
|
neighboring_instance = phase_plasticityInstance(neighboring_phase)
|
||||||
neighboring_latticeStruct = constitutive_nonlocal_structure(neighboring_instance)
|
neighboring_latticeStruct = constitutive_nonlocal_structure(neighboring_instance)
|
||||||
neighboring_ns = constitutive_nonlocal_totalNslip(neighboring_instance)
|
neighboring_ns = constitutive_nonlocal_totalNslip(neighboring_instance)
|
||||||
|
@ -1380,13 +1378,15 @@ if (.not. phase_localPlasticity(phase) .and. constitutive_nonlocal_shortRangeStr
|
||||||
nRealNeighbors = nRealNeighbors + 1_pInt
|
nRealNeighbors = nRealNeighbors + 1_pInt
|
||||||
connection_latticeConf(1:3,n) = math_mul33x3(invFe, neighboring_ipCoords - ipCoords)
|
connection_latticeConf(1:3,n) = math_mul33x3(invFe, neighboring_ipCoords - ipCoords)
|
||||||
forall (s = 1_pInt:ns, c = 1_pInt:2_pInt)
|
forall (s = 1_pInt:ns, c = 1_pInt:2_pInt)
|
||||||
neighboring_rhoExcess(c,s,n) = max(state(g,neighboring_ip,neighboring_el)%p((2_pInt*c-2_pInt)*ns+s), 0.0_pReal) & ! positive mobiles
|
neighboring_rhoExcess(c,s,n) = &
|
||||||
- max(state(g,neighboring_ip,neighboring_el)%p((2_pInt*c-1_pInt)*ns+s), 0.0_pReal) ! negative mobiles
|
max(state(gr,neighboring_ip,neighboring_el)%p((2_pInt*c-2_pInt)*ns+s), 0.0_pReal) &! positive mobiles
|
||||||
neighboring_rhoTotal(c,s,n) = max(state(g,neighboring_ip,neighboring_el)%p((2_pInt*c-2_pInt)*ns+s), 0.0_pReal) & ! positive mobiles
|
- max(state(gr,neighboring_ip,neighboring_el)%p((2_pInt*c-1_pInt)*ns+s), 0.0_pReal) ! negative mobiles
|
||||||
+ max(state(g,neighboring_ip,neighboring_el)%p((2_pInt*c-1_pInt)*ns+s), 0.0_pReal) & ! negative mobiles
|
neighboring_rhoTotal(c,s,n) = &
|
||||||
+ abs(state(g,neighboring_ip,neighboring_el)%p((2_pInt*c+2_pInt)*ns+s)) & ! positive deads
|
max(state(gr,neighboring_ip,neighboring_el)%p((2_pInt*c-2_pInt)*ns+s), 0.0_pReal) &! positive mobiles
|
||||||
+ abs(state(g,neighboring_ip,neighboring_el)%p((2_pInt*c+3_pInt)*ns+s)) & ! negative deads
|
+ max(state(gr,neighboring_ip,neighboring_el)%p((2_pInt*c-1_pInt)*ns+s), 0.0_pReal) &! negative mobiles
|
||||||
+ max(state(g,neighboring_ip,neighboring_el)%p((c+7_pInt)*ns+s), 0.0_pReal) ! dipoles
|
+ abs(state(gr,neighboring_ip,neighboring_el)%p((2_pInt*c+2_pInt)*ns+s)) & ! positive deads
|
||||||
|
+ abs(state(gr,neighboring_ip,neighboring_el)%p((2_pInt*c+3_pInt)*ns+s)) & ! negative deads
|
||||||
|
+ max(state(gr,neighboring_ip,neighboring_el)%p((c+7_pInt)*ns+s), 0.0_pReal) ! dipoles
|
||||||
endforall
|
endforall
|
||||||
else
|
else
|
||||||
! thats myself! probably using periodic images -> assume constant excess density
|
! thats myself! probably using periodic images -> assume constant excess density
|
||||||
|
@ -1414,8 +1414,8 @@ if (.not. phase_localPlasticity(phase) .and. constitutive_nonlocal_shortRangeStr
|
||||||
!* 1. interpolation of the excess density in the neighorhood
|
!* 1. interpolation of the excess density in the neighorhood
|
||||||
!* 2. interpolation of the dead dislocation density in the central volume
|
!* 2. interpolation of the dead dislocation density in the central volume
|
||||||
|
|
||||||
m(1:3,1:ns,1) = lattice_sd(1:3, constitutive_nonlocal_slipSystemLattice(1:ns,instance), latticeStruct)
|
m(1:3,1:ns,1) = lattice_sd(1:3,constitutive_nonlocal_slipSystemLattice(1:ns,instance),latticeStruct)
|
||||||
m(1:3,1:ns,2) = -lattice_st(1:3, constitutive_nonlocal_slipSystemLattice(1:ns,instance), latticeStruct)
|
m(1:3,1:ns,2) = -lattice_st(1:3,constitutive_nonlocal_slipSystemLattice(1:ns,instance),latticeStruct)
|
||||||
|
|
||||||
do s = 1_pInt,ns
|
do s = 1_pInt,ns
|
||||||
|
|
||||||
|
@ -1432,7 +1432,8 @@ if (.not. phase_localPlasticity(phase) .and. constitutive_nonlocal_shortRangeStr
|
||||||
if (inversionError) then
|
if (inversionError) then
|
||||||
call IO_error(-1_pInt,ext_msg='back stress calculation: inversion error')
|
call IO_error(-1_pInt,ext_msg='back stress calculation: inversion error')
|
||||||
endif
|
endif
|
||||||
rhoExcessGradient(c) = math_mul3x3(math_mul33x3(invConnections, rhoExcessDifferences), m(1:3,s,c))
|
rhoExcessGradient(c) = math_mul3x3(m(1:3,s,c), &
|
||||||
|
math_mul33x3(invConnections,rhoExcessDifferences))
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
!* plus gradient from deads
|
!* plus gradient from deads
|
||||||
|
@ -1462,17 +1463,17 @@ endif
|
||||||
|
|
||||||
!*** set dependent states
|
!*** set dependent states
|
||||||
|
|
||||||
state(g,ip,el)%p(11_pInt*ns+1:12_pInt*ns) = rhoForest
|
state(gr,ip,el)%p(11_pInt*ns+1:12_pInt*ns) = rhoForest
|
||||||
state(g,ip,el)%p(12_pInt*ns+1:13_pInt*ns) = tauThreshold
|
state(gr,ip,el)%p(12_pInt*ns+1:13_pInt*ns) = tauThreshold
|
||||||
state(g,ip,el)%p(13_pInt*ns+1:14_pInt*ns) = tauBack
|
state(gr,ip,el)%p(13_pInt*ns+1:14_pInt*ns) = tauBack
|
||||||
|
|
||||||
|
|
||||||
#ifndef _OPENMP
|
#ifndef _OPENMP
|
||||||
if (iand(debug_level(debug_constitutive),debug_levelExtensive) /= 0_pInt &
|
if (iand(debug_level(debug_constitutive),debug_levelExtensive) /= 0_pInt &
|
||||||
.and. ((debug_e == el .and. debug_i == ip .and. debug_g == g)&
|
.and. ((debug_e == el .and. debug_i == ip .and. debug_g == gr)&
|
||||||
.or. .not. iand(debug_level(debug_constitutive),debug_levelSelective) /= 0_pInt)) then
|
.or. .not. iand(debug_level(debug_constitutive),debug_levelSelective) /= 0_pInt)) then
|
||||||
write(6,*)
|
write(6,*)
|
||||||
write(6,'(a,i8,1x,i2,1x,i1)') '<< CONST >> nonlocal_microstructure at el ip g',el,ip,g
|
write(6,'(a,i8,1x,i2,1x,i1)') '<< CONST >> nonlocal_microstructure at el ip g',el,ip,gr
|
||||||
write(6,*)
|
write(6,*)
|
||||||
write(6,'(a,/,12x,12(e10.3,1x))') '<< CONST >> rhoForest', rhoForest
|
write(6,'(a,/,12x,12(e10.3,1x))') '<< CONST >> rhoForest', rhoForest
|
||||||
write(6,'(a,/,12x,12(f10.5,1x))') '<< CONST >> tauThreshold / MPa', tauThreshold/1e6
|
write(6,'(a,/,12x,12(f10.5,1x))') '<< CONST >> tauThreshold / MPa', tauThreshold/1e6
|
||||||
|
@ -1490,9 +1491,6 @@ endsubroutine
|
||||||
!*********************************************************************
|
!*********************************************************************
|
||||||
subroutine constitutive_nonlocal_kinetics(v, tau, c, Temperature, state, g, ip, el, dv_dtau)
|
subroutine constitutive_nonlocal_kinetics(v, tau, c, Temperature, state, g, ip, el, dv_dtau)
|
||||||
|
|
||||||
use prec, only: pReal, &
|
|
||||||
pInt, &
|
|
||||||
p_vec
|
|
||||||
use debug, only: debug_level, &
|
use debug, only: debug_level, &
|
||||||
debug_constitutive, &
|
debug_constitutive, &
|
||||||
debug_levelBasic, &
|
debug_levelBasic, &
|
||||||
|
@ -1664,9 +1662,6 @@ endsubroutine
|
||||||
!*********************************************************************
|
!*********************************************************************
|
||||||
subroutine constitutive_nonlocal_LpAndItsTangent(Lp, dLp_dTstar99, Tstar_v, Temperature, state, g, ip, el)
|
subroutine constitutive_nonlocal_LpAndItsTangent(Lp, dLp_dTstar99, Tstar_v, Temperature, state, g, ip, el)
|
||||||
|
|
||||||
use prec, only: pReal, &
|
|
||||||
pInt, &
|
|
||||||
p_vec
|
|
||||||
use math, only: math_Plain3333to99, &
|
use math, only: math_Plain3333to99, &
|
||||||
math_mul6x6, &
|
math_mul6x6, &
|
||||||
math_Mandel6to33
|
math_Mandel6to33
|
||||||
|
@ -1854,9 +1849,6 @@ endsubroutine
|
||||||
!*********************************************************************
|
!*********************************************************************
|
||||||
subroutine constitutive_nonlocal_deltaState(deltaState, state, Tstar_v, Temperature, g,ip,el)
|
subroutine constitutive_nonlocal_deltaState(deltaState, state, Tstar_v, Temperature, g,ip,el)
|
||||||
|
|
||||||
use prec, only: pReal, &
|
|
||||||
pInt, &
|
|
||||||
p_vec
|
|
||||||
use debug, only: debug_level, &
|
use debug, only: debug_level, &
|
||||||
debug_constitutive, &
|
debug_constitutive, &
|
||||||
debug_levelBasic, &
|
debug_levelBasic, &
|
||||||
|
@ -2043,10 +2035,7 @@ endsubroutine
|
||||||
!*********************************************************************
|
!*********************************************************************
|
||||||
function constitutive_nonlocal_dotState(Tstar_v, Fe, Fp, Temperature, state, state0, timestep, subfrac, g,ip,el)
|
function constitutive_nonlocal_dotState(Tstar_v, Fe, Fp, Temperature, state, state0, timestep, subfrac, g,ip,el)
|
||||||
|
|
||||||
use prec, only: pReal, &
|
use prec, only: DAMASK_NaN
|
||||||
pInt, &
|
|
||||||
p_vec, &
|
|
||||||
DAMASK_NaN
|
|
||||||
use numerics, only: numerics_integrationMode, &
|
use numerics, only: numerics_integrationMode, &
|
||||||
numerics_timeSyncing
|
numerics_timeSyncing
|
||||||
use IO, only: IO_error
|
use IO, only: IO_error
|
||||||
|
@ -2638,8 +2627,6 @@ endfunction
|
||||||
!*********************************************************************
|
!*********************************************************************
|
||||||
subroutine constitutive_nonlocal_updateCompatibility(orientation,i,e)
|
subroutine constitutive_nonlocal_updateCompatibility(orientation,i,e)
|
||||||
|
|
||||||
use prec, only: pReal, &
|
|
||||||
pInt
|
|
||||||
use math, only: math_qDisorientation, &
|
use math, only: math_qDisorientation, &
|
||||||
math_mul3x3, &
|
math_mul3x3, &
|
||||||
math_qRot
|
math_qRot
|
||||||
|
@ -2811,9 +2798,6 @@ endsubroutine
|
||||||
!*********************************************************************
|
!*********************************************************************
|
||||||
pure function constitutive_nonlocal_dotTemperature(Tstar_v,Temperature,state,g,ip,el)
|
pure function constitutive_nonlocal_dotTemperature(Tstar_v,Temperature,state,g,ip,el)
|
||||||
|
|
||||||
use prec, only: pReal, &
|
|
||||||
pInt, &
|
|
||||||
p_vec
|
|
||||||
use mesh, only: mesh_NcpElems, &
|
use mesh, only: mesh_NcpElems, &
|
||||||
mesh_maxNips
|
mesh_maxNips
|
||||||
use material, only: homogenization_maxNgrains
|
use material, only: homogenization_maxNgrains
|
||||||
|
@ -2845,9 +2829,6 @@ endfunction
|
||||||
!*********************************************************************
|
!*********************************************************************
|
||||||
function constitutive_nonlocal_dislocationstress(state, Fe, g, ip, el)
|
function constitutive_nonlocal_dislocationstress(state, Fe, g, ip, el)
|
||||||
|
|
||||||
use prec, only: pReal, &
|
|
||||||
pInt, &
|
|
||||||
p_vec
|
|
||||||
use math, only: math_mul33x33, &
|
use math, only: math_mul33x33, &
|
||||||
math_mul33x3, &
|
math_mul33x3, &
|
||||||
math_invert33, &
|
math_invert33, &
|
||||||
|
@ -3202,9 +3183,6 @@ endfunction
|
||||||
!*********************************************************************
|
!*********************************************************************
|
||||||
function constitutive_nonlocal_postResults(Tstar_v, Fe, Temperature, dt, state, dotState, g,ip,el)
|
function constitutive_nonlocal_postResults(Tstar_v, Fe, Temperature, dt, state, dotState, g,ip,el)
|
||||||
|
|
||||||
use prec, only: pReal, &
|
|
||||||
pInt, &
|
|
||||||
p_vec
|
|
||||||
use math, only: math_mul6x6, &
|
use math, only: math_mul6x6, &
|
||||||
math_mul33x3, &
|
math_mul33x3, &
|
||||||
math_mul33x33, &
|
math_mul33x33, &
|
||||||
|
|
Loading…
Reference in New Issue