only needed in one loop

This commit is contained in:
Martin Diehl 2020-12-27 22:56:21 +01:00
parent 822fafc9b6
commit ba9ad3a8c2
2 changed files with 8 additions and 12 deletions

View File

@ -48,7 +48,6 @@ module constitutive
crystallite_orientation !< current orientation crystallite_orientation !< current orientation
real(pReal), dimension(:,:,:,:,:), allocatable :: & real(pReal), dimension(:,:,:,:,:), allocatable :: &
crystallite_F0, & !< def grad at start of FE inc crystallite_F0, & !< def grad at start of FE inc
crystallite_subF, & !< def grad to be reached at end of crystallite inc
crystallite_Fe, & !< current "elastic" def grad (end of converged time step) crystallite_Fe, & !< current "elastic" def grad (end of converged time step)
crystallite_subFp0,& !< plastic def grad at start of crystallite inc crystallite_subFp0,& !< plastic def grad at start of crystallite inc
crystallite_subFi0,& !< intermediate def grad at start of crystallite inc crystallite_subFi0,& !< intermediate def grad at start of crystallite inc
@ -875,7 +874,6 @@ subroutine crystallite_init
crystallite_partitionedLp0, & crystallite_partitionedLp0, &
crystallite_S,crystallite_P, & crystallite_S,crystallite_P, &
crystallite_Fe,crystallite_Lp, & crystallite_Fe,crystallite_Lp, &
crystallite_subF, &
crystallite_subFp0,crystallite_subFi0, & crystallite_subFp0,crystallite_subFi0, &
source = crystallite_partitionedF) source = crystallite_partitionedF)

View File

@ -1488,7 +1488,8 @@ module function crystallite_stress(dt,co,ip,el) result(converged_)
real(pReal), dimension(3,3) :: & real(pReal), dimension(3,3) :: &
subLp0, & !< plastic velocity grad at start of crystallite inc subLp0, & !< plastic velocity grad at start of crystallite inc
subLi0, & !< intermediate velocity grad at start of crystallite inc subLi0, & !< intermediate velocity grad at start of crystallite inc
subF0 subF0, &
subF
ph = material_phaseAt(co,el) ph = material_phaseAt(co,el)
@ -1525,7 +1526,7 @@ module function crystallite_stress(dt,co,ip,el) result(converged_)
todo = subStep > 0.0_pReal ! still time left to integrate on? todo = subStep > 0.0_pReal ! still time left to integrate on?
if (todo) then if (todo) then
subF0 = crystallite_subF(1:3,1:3,co,ip,el) subF0 = subF
subLp0 = crystallite_Lp (1:3,1:3,co,ip,el) subLp0 = crystallite_Lp (1:3,1:3,co,ip,el)
subLi0 = constitutive_mech_Li(ph)%data(1:3,1:3,me) subLi0 = constitutive_mech_Li(ph)%data(1:3,1:3,me)
crystallite_subFp0(1:3,1:3,co,ip,el) = constitutive_mech_Fp(ph)%data(1:3,1:3,me) crystallite_subFp0(1:3,1:3,co,ip,el) = constitutive_mech_Fp(ph)%data(1:3,1:3,me)
@ -1561,15 +1562,12 @@ module function crystallite_stress(dt,co,ip,el) result(converged_)
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
! prepare for integration ! prepare for integration
if (todo) then if (todo) then
crystallite_subF(1:3,1:3,co,ip,el) = subF0 & subF = subF0 &
+ subStep *( crystallite_partitionedF (1:3,1:3,co,ip,el) & + subStep * (crystallite_partitionedF(1:3,1:3,co,ip,el) -crystallite_partitionedF0(1:3,1:3,co,ip,el))
-crystallite_partitionedF0(1:3,1:3,co,ip,el)) crystallite_Fe(1:3,1:3,co,ip,el) = matmul(subF,math_inv33(matmul(constitutive_mech_Fi(ph)%data(1:3,1:3,me), &
crystallite_Fe(1:3,1:3,co,ip,el) = matmul(crystallite_subF(1:3,1:3,co,ip,el), &
math_inv33(matmul(constitutive_mech_Fi(ph)%data(1:3,1:3,me), &
constitutive_mech_Fp(ph)%data(1:3,1:3,me)))) constitutive_mech_Fp(ph)%data(1:3,1:3,me))))
crystallite_subdt(co,ip,el) = subStep * dt crystallite_subdt(co,ip,el) = subStep * dt
converged_ = .not. integrateState(subF0,crystallite_subF(1:3,1:3,co,ip,el),& converged_ = .not. integrateState(subF0,subF,subStep * dt,co,ip,el)
subStep * dt,co,ip,el)
converged_ = converged_ .and. .not. integrateSourceState(subStep * dt,co,ip,el) converged_ = converged_ .and. .not. integrateSourceState(subStep * dt,co,ip,el)
endif endif