Merge remote-tracking branch 'origin/development' into config_from_dream3D

This commit is contained in:
Martin Diehl 2021-03-20 13:43:17 +01:00
commit 4477c2ae73
4 changed files with 19 additions and 22 deletions

@ -1 +1 @@
Subproject commit 13dfa0ee9d702782f0b7999f3f7fb2384f58d768
Subproject commit a4fed7a4b285496f547a7b940f6b6d54419f2384

View File

@ -1 +1 @@
v3.0.0-alpha2-602-ge2d4ab427
v3.0.0-alpha2-624-g06a553103

View File

@ -276,8 +276,8 @@ subroutine materialpoint_stressAndItsTangent(dt,FEsolving_execIP,FEsolving_execE
call phase_restore(ce,.false.) ! wrong name (is more a forward function)
if(homogState(ho)%sizeState > 0) homogState(ho)%State(:,me) = homogState(ho)%State0(:,me)
if(damageState_h(ho)%sizeState > 0) damageState_h(ho)%State(:,me) = damageState_h(ho)%State0(:,me)
if(homogState(ho)%sizeState > 0) homogState(ho)%state(:,me) = homogState(ho)%state0(:,me)
if(damageState_h(ho)%sizeState > 0) damageState_h(ho)%state(:,me) = damageState_h(ho)%state0(:,me)
call damage_partition(ce)
doneAndHappy = [.false.,.true.]
@ -287,20 +287,17 @@ subroutine materialpoint_stressAndItsTangent(dt,FEsolving_execIP,FEsolving_execE
.and. NiterationMPstate < num%nMPstate)
NiterationMPstate = NiterationMPstate + 1
if (.not. doneAndHappy(1)) then
call mechanical_partition(homogenization_F(1:3,1:3,ce),ce)
converged = .true.
do co = 1, myNgrains
converged = converged .and. crystallite_stress(dt,co,ip,el)
enddo
if (.not. converged) then
doneAndHappy = [.true.,.false.]
else
if (converged) then
doneAndHappy = mechanical_updateState(dt,homogenization_F(1:3,1:3,ce),ce)
converged = all(doneAndHappy)
endif
else
doneAndHappy = [.true.,.false.]
endif
enddo convergenceLooping
@ -450,7 +447,7 @@ subroutine homogenization_restartRead(fileHandle)
groupHandle(2) = HDF5_openGroup(groupHandle(1),material_name_homogenization(ho))
call HDF5_read(groupHandle(2),homogState(ho)%state,'omega') ! ToDo: should be done by mech
call HDF5_read(groupHandle(2),homogState(ho)%state0,'omega') ! ToDo: should be done by mech
call HDF5_closeGroup(groupHandle(2))

View File

@ -561,7 +561,7 @@ function integrateStress(F,subFp0,subFi0,Delta_t,co,ip,el) result(broken)
cycle LpLoop
endif
calculateJacobiLi: if (mod(jacoCounterLp, num%iJacoLpresiduum) == 0) then
calculateJacobiLp: if (mod(jacoCounterLp, num%iJacoLpresiduum) == 0) then
jacoCounterLp = jacoCounterLp + 1
do o=1,3; do p=1,3
@ -573,7 +573,7 @@ function integrateStress(F,subFp0,subFi0,Delta_t,co,ip,el) result(broken)
call dgesv(9,1,dRLp_dLp,9,devNull_9,temp_9,9,ierr) ! solve dRLp/dLp * delta Lp = -res for delta Lp
if (ierr /= 0) return ! error
deltaLp = - math_9to33(temp_9)
endif calculateJacobiLi
endif calculateJacobiLp
Lpguess = Lpguess &
+ deltaLp * steplengthLp
@ -601,7 +601,7 @@ function integrateStress(F,subFp0,subFi0,Delta_t,co,ip,el) result(broken)
cycle LiLoop
endif
calculateJacobiLp: if (mod(jacoCounterLi, num%iJacoLpresiduum) == 0) then
calculateJacobiLi: if (mod(jacoCounterLi, num%iJacoLpresiduum) == 0) then
jacoCounterLi = jacoCounterLi + 1
temp_33 = matmul(matmul(A,B),invFi_current)
@ -620,7 +620,7 @@ function integrateStress(F,subFp0,subFi0,Delta_t,co,ip,el) result(broken)
call dgesv(9,1,dRLi_dLi,9,devNull_9,temp_9,9,ierr) ! solve dRLi/dLp * delta Li = -res for delta Li
if (ierr /= 0) return ! error
deltaLi = - math_9to33(temp_9)
endif calculateJacobiLp
endif calculateJacobiLi
Liguess = Liguess &
+ deltaLi * steplengthLi