clarified tolerances in prec (abs vs rel)

all units conform to SI now !! (especially MPa --> Pa)

CONSEQUENCE: mattex files need to respect SI
This commit is contained in:
Philip Eisenlohr 2007-11-15 11:21:37 +00:00
parent e86a288a21
commit ad3ccf22c2
2 changed files with 11 additions and 10 deletions

View File

@ -441,13 +441,13 @@ stress: do ! inner iteration: stress
Rstress = Tstar_v - T_elastic
! step size control: if residuum does not improve redo iteration with reduced step size
if(maxval(abs(Rstress)) > maxval(abs(Rstress_old)) .and. &
maxval(abs(Rstress)) > 1.0e-6 .and. iStress > 1) then
! write(6,*) 'Hallo', iStress
maxval(abs(Rstress)) > abstol_ResStress .and. iStress > 1) then
Tstar_v=Tstar_v+0.5*dTstar_v
dTstar_v=0.5*dTstar_v
cycle
endif
if (iStress > 1 .and. (maxval(abs(Tstar_v)) < 1.0e-3_pReal .or. maxval(abs(Rstress/maxval(abs(Tstar_v)))) < tol_Stress)) exit stress
if (iStress > 1 .and. &
(maxval(abs(Tstar_v)) < abstol_Stress .or. maxval(abs(Rstress/maxval(abs(Tstar_v)))) < reltol_Stress)) exit stress
! update stress guess using inverse of dRes/dTstar (Newton--Raphson)
LTL = 0.0_pReal
@ -488,7 +488,7 @@ stress: do ! inner iteration: stress
forall (i=1:constitutive_Nstatevars(grain,CPFEM_in,cp_en), state_new(i)/=0.0_pReal) &
RstateS(i) = Rstate(i)/state_new(i)
state_new = state_old+dstate
if (maxval(abs(RstateS)) < tol_State) exit state
if (maxval(abs(RstateS)) < reltol_State) exit state
enddo state
! write(6,*) 'istate', istate

View File

@ -19,13 +19,14 @@
! *** Maximum number of iterations in outer (state variables) loop ***
integer(pInt), parameter :: nState = 50_pInt
! *** Convergence criteria for outer (state variables) loop ***
real(pReal), parameter :: tol_State = 1.0e-6_pReal
real(pReal), parameter :: reltol_State = 1.0e-6_pReal
! *** Maximum number of iterations in inner (stress) loop ***
integer(pInt), parameter :: nStress = 500_pInt
! *** Convergence criteria for inner (stress) loop ***
real(pReal), parameter :: tol_Stress = 1.0e-6_pReal
! *** Factor for maximum stress correction in inner (stress) loop ***
! real(pReal), parameter :: crite = 0.1_pReal
real(pReal), parameter :: reltol_Stress = 1.0e-6_pReal
! *** Convergence criteria for inner (stress) loop ***
real(pReal), parameter :: abstol_Stress = 1.0e3_pReal
! *** Convergence criteria for inner (stress) loop ***
real(pReal), parameter :: abstol_ResStress = 1.0_pReal
END MODULE prec