Merge branch 'fortran-fix' into 'development'
Fortran fix See merge request damask/DAMASK!356
This commit is contained in:
commit
06a5531031
|
@ -287,20 +287,17 @@ subroutine materialpoint_stressAndItsTangent(dt,FEsolving_execIP,FEsolving_execE
|
||||||
.and. NiterationMPstate < num%nMPstate)
|
.and. NiterationMPstate < num%nMPstate)
|
||||||
NiterationMPstate = NiterationMPstate + 1
|
NiterationMPstate = NiterationMPstate + 1
|
||||||
|
|
||||||
|
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. doneAndHappy(1)) then
|
if (converged) then
|
||||||
call mechanical_partition(homogenization_F(1:3,1:3,ce),ce)
|
doneAndHappy = mechanical_updateState(dt,homogenization_F(1:3,1:3,ce),ce)
|
||||||
converged = .true.
|
converged = all(doneAndHappy)
|
||||||
do co = 1, myNgrains
|
else
|
||||||
converged = converged .and. crystallite_stress(dt,co,ip,el)
|
doneAndHappy = [.true.,.false.]
|
||||||
enddo
|
|
||||||
|
|
||||||
if (.not. converged) then
|
|
||||||
doneAndHappy = [.true.,.false.]
|
|
||||||
else
|
|
||||||
doneAndHappy = mechanical_updateState(dt,homogenization_F(1:3,1:3,ce),ce)
|
|
||||||
converged = all(doneAndHappy)
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
enddo convergenceLooping
|
enddo convergenceLooping
|
||||||
|
|
|
@ -561,7 +561,7 @@ function integrateStress(F,subFp0,subFi0,Delta_t,co,ip,el) result(broken)
|
||||||
cycle LpLoop
|
cycle LpLoop
|
||||||
endif
|
endif
|
||||||
|
|
||||||
calculateJacobiLi: if (mod(jacoCounterLp, num%iJacoLpresiduum) == 0) then
|
calculateJacobiLp: if (mod(jacoCounterLp, num%iJacoLpresiduum) == 0) then
|
||||||
jacoCounterLp = jacoCounterLp + 1
|
jacoCounterLp = jacoCounterLp + 1
|
||||||
|
|
||||||
do o=1,3; do p=1,3
|
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
|
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
|
if (ierr /= 0) return ! error
|
||||||
deltaLp = - math_9to33(temp_9)
|
deltaLp = - math_9to33(temp_9)
|
||||||
endif calculateJacobiLi
|
endif calculateJacobiLp
|
||||||
|
|
||||||
Lpguess = Lpguess &
|
Lpguess = Lpguess &
|
||||||
+ deltaLp * steplengthLp
|
+ deltaLp * steplengthLp
|
||||||
|
@ -601,7 +601,7 @@ function integrateStress(F,subFp0,subFi0,Delta_t,co,ip,el) result(broken)
|
||||||
cycle LiLoop
|
cycle LiLoop
|
||||||
endif
|
endif
|
||||||
|
|
||||||
calculateJacobiLp: if (mod(jacoCounterLi, num%iJacoLpresiduum) == 0) then
|
calculateJacobiLi: if (mod(jacoCounterLi, num%iJacoLpresiduum) == 0) then
|
||||||
jacoCounterLi = jacoCounterLi + 1
|
jacoCounterLi = jacoCounterLi + 1
|
||||||
|
|
||||||
temp_33 = matmul(matmul(A,B),invFi_current)
|
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
|
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
|
if (ierr /= 0) return ! error
|
||||||
deltaLi = - math_9to33(temp_9)
|
deltaLi = - math_9to33(temp_9)
|
||||||
endif calculateJacobiLp
|
endif calculateJacobiLi
|
||||||
|
|
||||||
Liguess = Liguess &
|
Liguess = Liguess &
|
||||||
+ deltaLi * steplengthLi
|
+ deltaLi * steplengthLi
|
||||||
|
|
Loading…
Reference in New Issue