fixed bug in deltaState; used to lead to unpredictable values in accumulated shear, since deltaState was not defined at this state position
This commit is contained in:
parent
296a5040b9
commit
daf89806b1
|
@ -175,8 +175,7 @@ interactionMatrixSlipSlip !< interact
|
||||||
real(pReal), dimension(:,:,:,:), allocatable, private :: &
|
real(pReal), dimension(:,:,:,:), allocatable, private :: &
|
||||||
lattice2slip, & !< orthogonal transformation matrix from lattice coordinate system to slip coordinate system (passive rotation !!!)
|
lattice2slip, & !< orthogonal transformation matrix from lattice coordinate system to slip coordinate system (passive rotation !!!)
|
||||||
rhoDotEdgeJogsOutput, &
|
rhoDotEdgeJogsOutput, &
|
||||||
sourceProbability, &
|
sourceProbability
|
||||||
shearrate
|
|
||||||
|
|
||||||
real(pReal), dimension(:,:,:,:,:), allocatable, private :: &
|
real(pReal), dimension(:,:,:,:,:), allocatable, private :: &
|
||||||
Cslip3333, & !< elasticity matrix for each instance
|
Cslip3333, & !< elasticity matrix for each instance
|
||||||
|
@ -747,9 +746,6 @@ lattice2slip = 0.0_pReal
|
||||||
allocate(sourceProbability(maxTotalNslip, homogenization_maxNgrains, mesh_maxNips, mesh_NcpElems))
|
allocate(sourceProbability(maxTotalNslip, homogenization_maxNgrains, mesh_maxNips, mesh_NcpElems))
|
||||||
sourceProbability = 2.0_pReal
|
sourceProbability = 2.0_pReal
|
||||||
|
|
||||||
allocate(shearrate(maxTotalNslip,homogenization_maxNgrains,mesh_maxNips,mesh_NcpElems))
|
|
||||||
shearrate = 0.0_pReal
|
|
||||||
|
|
||||||
allocate(rhoDotFluxOutput(maxTotalNslip, 8, homogenization_maxNgrains, mesh_maxNips, mesh_NcpElems))
|
allocate(rhoDotFluxOutput(maxTotalNslip, 8, homogenization_maxNgrains, mesh_maxNips, mesh_NcpElems))
|
||||||
allocate(rhoDotMultiplicationOutput(maxTotalNslip, 2, homogenization_maxNgrains, mesh_maxNips, mesh_NcpElems))
|
allocate(rhoDotMultiplicationOutput(maxTotalNslip, 2, homogenization_maxNgrains, mesh_maxNips, mesh_NcpElems))
|
||||||
allocate(rhoDotSingle2DipoleGlideOutput(maxTotalNslip, 2, homogenization_maxNgrains, mesh_maxNips, mesh_NcpElems))
|
allocate(rhoDotSingle2DipoleGlideOutput(maxTotalNslip, 2, homogenization_maxNgrains, mesh_maxNips, mesh_NcpElems))
|
||||||
|
@ -1857,7 +1853,6 @@ gdotTotal = sum(rhoSgl(1:ns,1:4) * v, 2) * burgers(1:ns,myInstance) * (1.0_pReal
|
||||||
do t = 1_pInt,4_pInt
|
do t = 1_pInt,4_pInt
|
||||||
dgdot_dtau(:,t) = rhoSgl(1:ns,t) * dv_dtau(1:ns,t) * burgers(1:ns,myInstance) * (1.0_pReal - deadZoneSize)
|
dgdot_dtau(:,t) = rhoSgl(1:ns,t) * dv_dtau(1:ns,t) * burgers(1:ns,myInstance) * (1.0_pReal - deadZoneSize)
|
||||||
enddo
|
enddo
|
||||||
shearrate(1:ns,g,ip,el) = gdotTotal
|
|
||||||
|
|
||||||
|
|
||||||
!*** Calculation of Lp and its tangent
|
!*** Calculation of Lp and its tangent
|
||||||
|
@ -2056,12 +2051,16 @@ forall (s = 1_pInt:ns, c = 1_pInt:2_pInt) &
|
||||||
!****************************************************************************
|
!****************************************************************************
|
||||||
!*** assign the changes in the dislocation densities to deltaState
|
!*** assign the changes in the dislocation densities to deltaState
|
||||||
|
|
||||||
deltaRho = 0.0_pReal
|
|
||||||
deltaRho = deltaRhoRemobilization &
|
deltaRho = deltaRhoRemobilization &
|
||||||
+ deltaRhoDipole2SingleStress
|
+ deltaRhoDipole2SingleStress
|
||||||
|
|
||||||
deltaState%p = reshape(deltaRho,(/10_pInt*ns/))
|
deltaState%p = 0.0_pReal
|
||||||
|
forall (s = 1:ns, t = 1_pInt:4_pInt)
|
||||||
|
deltaState%p(iRhoU(s,t,myInstance)) = deltaRho(s,t)
|
||||||
|
deltaState%p(iRhoB(s,t,myInstance)) = deltaRho(s,t+4_pInt)
|
||||||
|
endforall
|
||||||
|
forall (s = 1:ns, c = 1_pInt:2_pInt) &
|
||||||
|
deltaState%p(iRhoD(s,c,myInstance)) = deltaRho(s,c+8_pInt)
|
||||||
|
|
||||||
|
|
||||||
#ifndef _OPENMP
|
#ifndef _OPENMP
|
||||||
|
@ -2261,10 +2260,10 @@ where (abs(rhoDip) * mesh_ipVolume(ip,el) ** 0.667_pReal < significantN(myInstan
|
||||||
rhoDip = 0.0_pReal
|
rhoDip = 0.0_pReal
|
||||||
|
|
||||||
if (numerics_timeSyncing) then
|
if (numerics_timeSyncing) then
|
||||||
forall (t = 1_pInt:4_pInt)
|
forall (s = 1_pInt:ns, t = 1_pInt:4_pInt)
|
||||||
rhoSgl0(1:ns,t) = max(state0(g,ip,el)%p(iRhoU(1:ns,t,myInstance)), 0.0_pReal)
|
rhoSgl0(s,t) = max(state0(g,ip,el)%p(iRhoU(s,t,myInstance)), 0.0_pReal)
|
||||||
rhoSgl0(1:ns,t+4_pInt) = state0(g,ip,el)%p(iRhoB(1:ns,t,myInstance))
|
rhoSgl0(s,t+4_pInt) = state0(g,ip,el)%p(iRhoB(s,t,myInstance))
|
||||||
v0(1:ns,t) = state0(g,ip,el)%p(iV(1:ns,t,myInstance))
|
v0(s,t) = state0(g,ip,el)%p(iV(s,t,myInstance))
|
||||||
endforall
|
endforall
|
||||||
where (abs(rhoSgl0) * mesh_ipVolume(ip,el) ** 0.667_pReal < significantN(myInstance) &
|
where (abs(rhoSgl0) * mesh_ipVolume(ip,el) ** 0.667_pReal < significantN(myInstance) &
|
||||||
.or. abs(rhoSgl0) < significantRho(myInstance)) &
|
.or. abs(rhoSgl0) < significantRho(myInstance)) &
|
||||||
|
@ -2675,7 +2674,7 @@ else
|
||||||
forall (s = 1:ns, c = 1_pInt:2_pInt) &
|
forall (s = 1:ns, c = 1_pInt:2_pInt) &
|
||||||
constitutive_nonlocal_dotState(iRhoD(s,c,myInstance)) = rhoDot(s,c+8_pInt)
|
constitutive_nonlocal_dotState(iRhoD(s,c,myInstance)) = rhoDot(s,c+8_pInt)
|
||||||
forall (s = 1:ns) &
|
forall (s = 1:ns) &
|
||||||
constitutive_nonlocal_dotState(iGamma(s,myInstance)) = shearrate(s,g,ip,el)
|
constitutive_nonlocal_dotState(iGamma(s,myInstance)) = sum(gdot(s,1:4))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
Loading…
Reference in New Issue