using also variable cutback factor for Li
This commit is contained in:
parent
295bcd20f0
commit
590a5c8b91
|
@ -3179,7 +3179,9 @@ logical function crystallite_integrateStress(&
|
|||
aTol_crystalliteStress, &
|
||||
rTol_crystalliteStress, &
|
||||
iJacoLpresiduum, &
|
||||
numerics_integrationMode
|
||||
numerics_integrationMode, &
|
||||
subStepSizeLp, &
|
||||
subStepSizeLi
|
||||
use debug, only: debug_level, &
|
||||
debug_crystallite, &
|
||||
debug_levelBasic, &
|
||||
|
@ -3265,9 +3267,7 @@ logical function crystallite_integrateStress(&
|
|||
dLp_dT3333, &
|
||||
dLi_dT3333
|
||||
real(pReal) detInvFi, & ! determinant of InvFi
|
||||
steplengthLp0, &
|
||||
steplengthLp, &
|
||||
steplengthLi0, &
|
||||
steplengthLi, &
|
||||
dt, & ! time increment
|
||||
aTolLp, &
|
||||
|
@ -3529,9 +3529,9 @@ logical function crystallite_integrateStress(&
|
|||
.or. norm2(residuumLi) < norm2(residuumLi_old)) then ! not converged, but improved norm of residuum (always proceed in first iteration)...
|
||||
residuumLi_old = residuumLi ! ...remember old values and...
|
||||
Liguess_old = Liguess
|
||||
steplengthLi = steplengthLi0 ! ...proceed with normal step length (calculate new search direction)
|
||||
steplengthLi = 1.0_pReal ! ...proceed with normal step length (calculate new search direction)
|
||||
else ! not converged and residuum not improved...
|
||||
steplengthLi = 0.5_pReal * steplengthLi ! ...try with smaller step length in same direction
|
||||
steplengthLi = subStepSizeLi * steplengthLi ! ...try with smaller step length in same direction
|
||||
Liguess = Liguess_old + steplengthLi * deltaLi
|
||||
cycle LiLoop
|
||||
endif
|
||||
|
|
|
@ -43,6 +43,7 @@ module numerics
|
|||
subStepSizeCryst = 0.25_pReal, & !< size of first substep when cutback in crystallite
|
||||
subStepSizeHomog = 0.25_pReal, & !< size of first substep when cutback in homogenization
|
||||
subStepSizeLp = 0.5_pReal, & !< size of first substep when cutback in Lp calculation
|
||||
subStepSizeLi = 0.5_pReal, & !< size of first substep when cutback in Li calculation
|
||||
stepIncreaseCryst = 1.5_pReal, & !< increase of next substep size when previous substep converged in crystallite
|
||||
stepIncreaseHomog = 1.5_pReal, & !< increase of next substep size when previous substep converged in homogenization
|
||||
rTol_crystalliteState = 1.0e-6_pReal, & !< relative tolerance in crystallite state loop
|
||||
|
@ -298,6 +299,8 @@ subroutine numerics_init
|
|||
stepIncreaseCryst = IO_floatValue(line,chunkPos,2_pInt)
|
||||
case ('substepsizelp')
|
||||
subStepSizeLp = IO_floatValue(line,chunkPos,2_pInt)
|
||||
case ('substepsizeli')
|
||||
subStepSizeLi = IO_floatValue(line,chunkPos,2_pInt)
|
||||
case ('substepminhomog')
|
||||
subStepMinHomog = IO_floatValue(line,chunkPos,2_pInt)
|
||||
case ('substepsizehomog')
|
||||
|
@ -519,6 +522,7 @@ subroutine numerics_init
|
|||
write(6,'(a24,1x,es8.1)') ' subStepSizeCryst: ',subStepSizeCryst
|
||||
write(6,'(a24,1x,es8.1)') ' stepIncreaseCryst: ',stepIncreaseCryst
|
||||
write(6,'(a24,1x,es8.1)') ' subStepSizeLp: ',subStepSizeLp
|
||||
write(6,'(a24,1x,es8.1)') ' subStepSizeLi: ',subStepSizeLi
|
||||
write(6,'(a24,1x,i8)') ' nState: ',nState
|
||||
write(6,'(a24,1x,i8)') ' nStress: ',nStress
|
||||
write(6,'(a24,1x,es8.1)') ' rTol_crystalliteState: ',rTol_crystalliteState
|
||||
|
@ -648,6 +652,7 @@ subroutine numerics_init
|
|||
if (subStepSizeCryst <= 0.0_pReal) call IO_error(301_pInt,ext_msg='subStepSizeCryst')
|
||||
if (stepIncreaseCryst <= 0.0_pReal) call IO_error(301_pInt,ext_msg='stepIncreaseCryst')
|
||||
if (subStepSizeLp <= 0.0_pReal) call IO_error(301_pInt,ext_msg='subStepSizeLp')
|
||||
if (subStepSizeLi <= 0.0_pReal) call IO_error(301_pInt,ext_msg='subStepSizeLi')
|
||||
if (subStepMinHomog <= 0.0_pReal) call IO_error(301_pInt,ext_msg='subStepMinHomog')
|
||||
if (subStepSizeHomog <= 0.0_pReal) call IO_error(301_pInt,ext_msg='subStepSizeHomog')
|
||||
if (stepIncreaseHomog <= 0.0_pReal) call IO_error(301_pInt,ext_msg='stepIncreaseHomog')
|
||||
|
|
Loading…
Reference in New Issue