Merge branch 'development' of magit1.mpie.de:damask/DAMASK into development
This commit is contained in:
commit
4580d8e23f
|
@ -19,7 +19,7 @@ source $DAMASK_ROOT/CONFIG
|
||||||
unset -f set
|
unset -f set
|
||||||
|
|
||||||
# add DAMASK_BIN if present
|
# add DAMASK_BIN if present
|
||||||
[ ( "x$DAMASK_BIN" != "x" ) ] && PATH=$DAMASK_BIN:$PATH
|
[ "x$DAMASK_BIN" != "x" ] && PATH=$DAMASK_BIN:$PATH
|
||||||
|
|
||||||
SOLVER=`which DAMASK_spectral || True 2>/dev/null`
|
SOLVER=`which DAMASK_spectral || True 2>/dev/null`
|
||||||
PROCESSING=`which postResults || True 2>/dev/null`
|
PROCESSING=`which postResults || True 2>/dev/null`
|
||||||
|
|
|
@ -3179,7 +3179,9 @@ logical function crystallite_integrateStress(&
|
||||||
aTol_crystalliteStress, &
|
aTol_crystalliteStress, &
|
||||||
rTol_crystalliteStress, &
|
rTol_crystalliteStress, &
|
||||||
iJacoLpresiduum, &
|
iJacoLpresiduum, &
|
||||||
numerics_integrationMode
|
numerics_integrationMode, &
|
||||||
|
subStepSizeLp, &
|
||||||
|
subStepSizeLi
|
||||||
use debug, only: debug_level, &
|
use debug, only: debug_level, &
|
||||||
debug_crystallite, &
|
debug_crystallite, &
|
||||||
debug_levelBasic, &
|
debug_levelBasic, &
|
||||||
|
@ -3265,9 +3267,7 @@ logical function crystallite_integrateStress(&
|
||||||
dLp_dT3333, &
|
dLp_dT3333, &
|
||||||
dLi_dT3333
|
dLi_dT3333
|
||||||
real(pReal) detInvFi, & ! determinant of InvFi
|
real(pReal) detInvFi, & ! determinant of InvFi
|
||||||
steplengthLp0, &
|
|
||||||
steplengthLp, &
|
steplengthLp, &
|
||||||
steplengthLi0, &
|
|
||||||
steplengthLi, &
|
steplengthLi, &
|
||||||
dt, & ! time increment
|
dt, & ! time increment
|
||||||
aTolLp, &
|
aTolLp, &
|
||||||
|
@ -3353,8 +3353,7 @@ logical function crystallite_integrateStress(&
|
||||||
|
|
||||||
NiterationStressLi = 0_pInt
|
NiterationStressLi = 0_pInt
|
||||||
jacoCounterLi = 0_pInt
|
jacoCounterLi = 0_pInt
|
||||||
steplengthLi0 = 1.0_pReal
|
steplengthLi = 1.0_pReal
|
||||||
steplengthLi = steplengthLi0
|
|
||||||
residuumLi_old = 0.0_pReal
|
residuumLi_old = 0.0_pReal
|
||||||
|
|
||||||
LiLoop: do
|
LiLoop: do
|
||||||
|
@ -3374,8 +3373,7 @@ logical function crystallite_integrateStress(&
|
||||||
|
|
||||||
NiterationStressLp = 0_pInt
|
NiterationStressLp = 0_pInt
|
||||||
jacoCounterLp = 0_pInt
|
jacoCounterLp = 0_pInt
|
||||||
steplengthLp0 = 1.0_pReal
|
steplengthLp = 1.0_pReal
|
||||||
steplengthLp = steplengthLp0
|
|
||||||
residuumLp_old = 0.0_pReal
|
residuumLp_old = 0.0_pReal
|
||||||
Lpguess_old = Lpguess
|
Lpguess_old = Lpguess
|
||||||
|
|
||||||
|
@ -3447,9 +3445,9 @@ logical function crystallite_integrateStress(&
|
||||||
.or. norm2(residuumLp) < norm2(residuumLp_old)) then ! not converged, but improved norm of residuum (always proceed in first iteration)...
|
.or. norm2(residuumLp) < norm2(residuumLp_old)) then ! not converged, but improved norm of residuum (always proceed in first iteration)...
|
||||||
residuumLp_old = residuumLp ! ...remember old values and...
|
residuumLp_old = residuumLp ! ...remember old values and...
|
||||||
Lpguess_old = Lpguess
|
Lpguess_old = Lpguess
|
||||||
steplengthLp = steplengthLp0 ! ...proceed with normal step length (calculate new search direction)
|
steplengthLp = 1.0_pReal ! ...proceed with normal step length (calculate new search direction)
|
||||||
else ! not converged and residuum not improved...
|
else ! not converged and residuum not improved...
|
||||||
steplengthLp = 0.5_pReal * steplengthLp ! ...try with smaller step length in same direction
|
steplengthLp = subStepSizeLp * steplengthLp ! ...try with smaller step length in same direction
|
||||||
Lpguess = Lpguess_old + steplengthLp * deltaLp
|
Lpguess = Lpguess_old + steplengthLp * deltaLp
|
||||||
cycle LpLoop
|
cycle LpLoop
|
||||||
endif
|
endif
|
||||||
|
@ -3530,9 +3528,9 @@ logical function crystallite_integrateStress(&
|
||||||
.or. norm2(residuumLi) < norm2(residuumLi_old)) then ! not converged, but improved norm of residuum (always proceed in first iteration)...
|
.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...
|
residuumLi_old = residuumLi ! ...remember old values and...
|
||||||
Liguess_old = Liguess
|
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...
|
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
|
Liguess = Liguess_old + steplengthLi * deltaLi
|
||||||
cycle LiLoop
|
cycle LiLoop
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -923,12 +923,11 @@ subroutine materialpoint_postResults
|
||||||
material_phase, &
|
material_phase, &
|
||||||
homogenization_Ngrains, &
|
homogenization_Ngrains, &
|
||||||
microstructure_crystallite
|
microstructure_crystallite
|
||||||
use constitutive, only: &
|
|
||||||
#ifdef FEM
|
#ifdef FEM
|
||||||
|
use constitutive, only: &
|
||||||
constitutive_plasticity_maxSizePostResults, &
|
constitutive_plasticity_maxSizePostResults, &
|
||||||
constitutive_source_maxSizePostResults, &
|
constitutive_source_maxSizePostResults
|
||||||
#endif
|
#endif
|
||||||
constitutive_postResults
|
|
||||||
use crystallite, only: &
|
use crystallite, only: &
|
||||||
#ifdef FEM
|
#ifdef FEM
|
||||||
crystallite_maxSizePostResults, &
|
crystallite_maxSizePostResults, &
|
||||||
|
|
|
@ -42,6 +42,8 @@ module numerics
|
||||||
subStepMinHomog = 1.0e-3_pReal, & !< minimum (relative) size of sub-step allowed during cutback in homogenization
|
subStepMinHomog = 1.0e-3_pReal, & !< minimum (relative) size of sub-step allowed during cutback in homogenization
|
||||||
subStepSizeCryst = 0.25_pReal, & !< size of first substep when cutback in crystallite
|
subStepSizeCryst = 0.25_pReal, & !< size of first substep when cutback in crystallite
|
||||||
subStepSizeHomog = 0.25_pReal, & !< size of first substep when cutback in homogenization
|
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
|
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
|
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
|
rTol_crystalliteState = 1.0e-6_pReal, & !< relative tolerance in crystallite state loop
|
||||||
|
@ -295,6 +297,10 @@ subroutine numerics_init
|
||||||
subStepSizeCryst = IO_floatValue(line,chunkPos,2_pInt)
|
subStepSizeCryst = IO_floatValue(line,chunkPos,2_pInt)
|
||||||
case ('stepincreasecryst')
|
case ('stepincreasecryst')
|
||||||
stepIncreaseCryst = IO_floatValue(line,chunkPos,2_pInt)
|
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')
|
case ('substepminhomog')
|
||||||
subStepMinHomog = IO_floatValue(line,chunkPos,2_pInt)
|
subStepMinHomog = IO_floatValue(line,chunkPos,2_pInt)
|
||||||
case ('substepsizehomog')
|
case ('substepsizehomog')
|
||||||
|
@ -515,6 +521,8 @@ subroutine numerics_init
|
||||||
write(6,'(a24,1x,es8.1)') ' subStepMinCryst: ',subStepMinCryst
|
write(6,'(a24,1x,es8.1)') ' subStepMinCryst: ',subStepMinCryst
|
||||||
write(6,'(a24,1x,es8.1)') ' subStepSizeCryst: ',subStepSizeCryst
|
write(6,'(a24,1x,es8.1)') ' subStepSizeCryst: ',subStepSizeCryst
|
||||||
write(6,'(a24,1x,es8.1)') ' stepIncreaseCryst: ',stepIncreaseCryst
|
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)') ' nState: ',nState
|
||||||
write(6,'(a24,1x,i8)') ' nStress: ',nStress
|
write(6,'(a24,1x,i8)') ' nStress: ',nStress
|
||||||
write(6,'(a24,1x,es8.1)') ' rTol_crystalliteState: ',rTol_crystalliteState
|
write(6,'(a24,1x,es8.1)') ' rTol_crystalliteState: ',rTol_crystalliteState
|
||||||
|
@ -643,6 +651,8 @@ subroutine numerics_init
|
||||||
if (subStepMinCryst <= 0.0_pReal) call IO_error(301_pInt,ext_msg='subStepMinCryst')
|
if (subStepMinCryst <= 0.0_pReal) call IO_error(301_pInt,ext_msg='subStepMinCryst')
|
||||||
if (subStepSizeCryst <= 0.0_pReal) call IO_error(301_pInt,ext_msg='subStepSizeCryst')
|
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 (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 (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 (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')
|
if (stepIncreaseHomog <= 0.0_pReal) call IO_error(301_pInt,ext_msg='stepIncreaseHomog')
|
||||||
|
|
Loading…
Reference in New Issue