Changed AL solver errors to absolute. Stress boundary error now max of relative and absolute error

This commit is contained in:
Pratheek Shanthraj 2013-03-22 14:46:55 +00:00
parent b44edf5534
commit be655ae536
4 changed files with 12 additions and 12 deletions

View File

@ -541,10 +541,10 @@ subroutine AL_converged(snes_local,it,xnorm,snorm,fnorm,reason,dummy,ierr)
logical :: Converged logical :: Converged
real(pReal) :: err_stress_tol real(pReal) :: err_stress_tol
err_stress_tol = min(maxval(abs(P_av))*err_stress_tolrel,err_stress_tolabs) err_stress_tol = max(maxval(abs(P_av))*err_stress_tolrel,err_stress_tolabs)
Converged = (it > itmin .and. & Converged = (it > itmin .and. &
all([ err_f/sqrt(sum((F_aim-math_I3)**2.0_pReal))/err_f_tol, & all([ err_f/err_f_tol, &
err_p/sqrt(sum((F_aim-math_I3)**2.0_pReal))/err_p_tol, & err_p/err_p_tol, &
err_stress/err_stress_tol] < 1.0_pReal)) & err_stress/err_stress_tol] < 1.0_pReal)) &
.or. terminallyIll .or. terminallyIll
@ -557,11 +557,11 @@ subroutine AL_converged(snes_local,it,xnorm,snorm,fnorm,reason,dummy,ierr)
endif endif
write(6,'(1/,a)') ' ... reporting ....................................................' write(6,'(1/,a)') ' ... reporting ....................................................'
write(6,'(/,a,f8.2,a,es11.5,a,es11.4,a)') ' mismatch F = ', & write(6,'(/,a,f8.2,a,es11.5,a,es11.4,a)') ' mismatch F = ', &
err_f/sqrt(sum((F_aim-math_I3)**2.0_pReal))/err_f_tol, & err_f/err_f_tol, &
' (',err_f/sqrt(sum((F_aim-math_I3)**2.0_pReal)),' -, tol =',err_f_tol,')' ' (',err_f,' -, tol =',err_f_tol,')'
write(6,'(a,f8.2,a,es11.5,a,es11.4,a)') ' mismatch P = ', & write(6,'(a,f8.2,a,es11.5,a,es11.4,a)') ' mismatch P = ', &
err_p/sqrt(sum((F_aim-math_I3)**2.0_pReal))/err_p_tol, & err_p/err_p_tol, &
' (',err_p/sqrt(sum((F_aim-math_I3)**2.0_pReal)),' -, tol =',err_p_tol,')' ' (',err_p,' -, tol =',err_p_tol,')'
write(6,'(a,f8.2,a,es11.5,a,es11.4,a)') ' error stress BC = ', & write(6,'(a,f8.2,a,es11.5,a,es11.4,a)') ' error stress BC = ', &
err_stress/err_stress_tol, ' (',err_stress, ' Pa, tol =',err_stress_tol,')' err_stress/err_stress_tol, ' (',err_stress, ' Pa, tol =',err_stress_tol,')'
write(6,'(/,a)') ' ==========================================================================' write(6,'(/,a)') ' =========================================================================='

View File

@ -353,7 +353,7 @@ logical function basic_Converged(err_div,pAvgDiv,err_stress,pAvgStress)
pAvgDivL2 pAvgDivL2
pAvgDivL2 = sqrt(maxval(math_eigenvalues33(math_mul33x33(pAvgDiv,math_transpose33(pAvgDiv))))) ! L_2 norm of average stress (http://mathworld.wolfram.com/SpectralNorm.html) pAvgDivL2 = sqrt(maxval(math_eigenvalues33(math_mul33x33(pAvgDiv,math_transpose33(pAvgDiv))))) ! L_2 norm of average stress (http://mathworld.wolfram.com/SpectralNorm.html)
err_stress_tol = min(maxval(abs(pAvgStress))*err_stress_tolrel,err_stress_tolabs) err_stress_tol = max(maxval(abs(pAvgStress))*err_stress_tolrel,err_stress_tolabs)
basic_Converged = all([ err_div/pAvgDivL2/err_div_tol,& basic_Converged = all([ err_div/pAvgDivL2/err_div_tol,&
err_stress/err_stress_tol ] < 1.0_pReal) err_stress/err_stress_tol ] < 1.0_pReal)

View File

@ -446,7 +446,7 @@ subroutine BasicPETSc_converged(snes_local,it,xnorm,snorm,fnorm,reason,dummy,ier
pAvgDivL2, & pAvgDivL2, &
err_stress_tol err_stress_tol
err_stress_tol =min(maxval(abs(P_av))*err_stress_tolrel,err_stress_tolabs) err_stress_tol =max(maxval(abs(P_av))*err_stress_tolrel,err_stress_tolabs)
pAvgDivL2 = sqrt(maxval(math_eigenvalues33(math_mul33x33(P_av,math_transpose33(P_av))))) pAvgDivL2 = sqrt(maxval(math_eigenvalues33(math_mul33x33(P_av,math_transpose33(P_av)))))
Converged = (it >= itmin .and. & Converged = (it >= itmin .and. &
all([ err_div/pAvgDivL2/err_div_tol, & all([ err_div/pAvgDivL2/err_div_tol, &

View File

@ -55,9 +55,9 @@ fixed_seed 0 # put any number larger than zero, intege
## spectral parameters ## ## spectral parameters ##
err_div_tol 1.0e-5 # Div(P)/avg(P)*meter err_div_tol 1.0e-5 # Div(P)/avg(P)*meter
err_stress_tolrel 0.01 # relative tolerance for fulfillment of stress BC err_stress_tolrel 0.01 # relative tolerance for fulfillment of stress BC
err_stress_tolabs 9.9e40 # absolute tolerance for fulfillment of stress BC err_stress_tolabs 1.0e3 # absolute tolerance for fulfillment of stress BC
err_f_tol 1e-6 # tolerance for compatible and incompatible deformation gradient fields in AL solver err_f_tol 1e-7 # tolerance for compatible and incompatible deformation gradient fields in AL solver
err_p_tol 1e-5 # tolerance for compatible and incompatible stress fields in AL solver err_p_tol 1e-7 # tolerance for compatible and incompatible stress fields in AL solver
fftw_timelimit -1.0 # timelimit of plan creation for FFTW, see manual on www.fftw.org, Default -1.0: disable timelimit fftw_timelimit -1.0 # timelimit of plan creation for FFTW, see manual on www.fftw.org, Default -1.0: disable timelimit
rotation_tol 1.0e-12 # tolerance of rotation specified in loadcase, Default 1.0e-12: first guess rotation_tol 1.0e-12 # tolerance of rotation specified in loadcase, Default 1.0e-12: first guess
fftw_plan_mode FFTW_PATIENT # reads the planing-rigor flag, see manual on www.fftw.org, Default FFTW_PATIENT: use patient planner flag fftw_plan_mode FFTW_PATIENT # reads the planing-rigor flag, see manual on www.fftw.org, Default FFTW_PATIENT: use patient planner flag