better avoid initialization of residuum_old with huge, since it posed problems in Abaqus
This commit is contained in:
parent
07fd2681c6
commit
c775edaa6d
|
@ -2838,7 +2838,7 @@ NiterationStress = 0_pInt
|
||||||
jacoCounter = 0_pInt
|
jacoCounter = 0_pInt
|
||||||
steplength0 = 1.0_pReal
|
steplength0 = 1.0_pReal
|
||||||
steplength = steplength0
|
steplength = steplength0
|
||||||
residuum_old = huge(1.0_pReal)
|
residuum_old = 0.0_pReal
|
||||||
|
|
||||||
LpLoop: do
|
LpLoop: do
|
||||||
NiterationStress = NiterationStress + 1_pInt
|
NiterationStress = NiterationStress + 1_pInt
|
||||||
|
@ -2913,14 +2913,14 @@ LpLoop: do
|
||||||
return ! ...me = .false. to inform integrator about problem
|
return ! ...me = .false. to inform integrator about problem
|
||||||
elseif (math_norm33(residuum) < aTol) then ! converged if below absolute tolerance
|
elseif (math_norm33(residuum) < aTol) then ! converged if below absolute tolerance
|
||||||
exit LpLoop ! ...leave iteration loop
|
exit LpLoop ! ...leave iteration loop
|
||||||
elseif (math_norm33(residuum) > math_norm33(residuum_old)) then ! not converged and worse residuum...
|
elseif (math_norm33(residuum) < math_norm33(residuum_old) .or. NiterationStress == 1_pInt ) then ! not converged, but improved norm of residuum (always proceed in first iteration)...
|
||||||
steplength = 0.5_pReal * steplength ! ...try with smaller step length in same direction
|
|
||||||
Lpguess = Lpguess_old + steplength * deltaLp
|
|
||||||
cycle LpLoop
|
|
||||||
else ! not converged, but improved norm of residuum...
|
|
||||||
residuum_old = residuum ! ...remember old values and...
|
residuum_old = residuum ! ...remember old values and...
|
||||||
Lpguess_old = Lpguess
|
Lpguess_old = Lpguess
|
||||||
steplength = steplength0 ! ...proceed with normal step length (calculate new search direction)
|
steplength = steplength0 ! ...proceed with normal step length (calculate new search direction)
|
||||||
|
else ! not converged and residuum not improved...
|
||||||
|
steplength = 0.5_pReal * steplength ! ...try with smaller step length in same direction
|
||||||
|
Lpguess = Lpguess_old + steplength * deltaLp
|
||||||
|
cycle LpLoop
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue