Changed AL solver errors to absolute. Stress boundary error now max of relative and absolute error
This commit is contained in:
parent
b44edf5534
commit
be655ae536
|
@ -541,10 +541,10 @@ subroutine AL_converged(snes_local,it,xnorm,snorm,fnorm,reason,dummy,ierr)
|
|||
logical :: Converged
|
||||
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. &
|
||||
all([ err_f/sqrt(sum((F_aim-math_I3)**2.0_pReal))/err_f_tol, &
|
||||
err_p/sqrt(sum((F_aim-math_I3)**2.0_pReal))/err_p_tol, &
|
||||
all([ err_f/err_f_tol, &
|
||||
err_p/err_p_tol, &
|
||||
err_stress/err_stress_tol] < 1.0_pReal)) &
|
||||
.or. terminallyIll
|
||||
|
||||
|
@ -557,11 +557,11 @@ subroutine AL_converged(snes_local,it,xnorm,snorm,fnorm,reason,dummy,ierr)
|
|||
endif
|
||||
write(6,'(1/,a)') ' ... reporting ....................................................'
|
||||
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/sqrt(sum((F_aim-math_I3)**2.0_pReal)),' -, tol =',err_f_tol,')'
|
||||
err_f/err_f_tol, &
|
||||
' (',err_f,' -, tol =',err_f_tol,')'
|
||||
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/sqrt(sum((F_aim-math_I3)**2.0_pReal)),' -, tol =',err_p_tol,')'
|
||||
err_p/err_p_tol, &
|
||||
' (',err_p,' -, tol =',err_p_tol,')'
|
||||
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,')'
|
||||
write(6,'(/,a)') ' =========================================================================='
|
||||
|
|
|
@ -353,7 +353,7 @@ logical function basic_Converged(err_div,pAvgDiv,err_stress,pAvgStress)
|
|||
pAvgDivL2
|
||||
|
||||
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,&
|
||||
err_stress/err_stress_tol ] < 1.0_pReal)
|
||||
|
|
|
@ -446,7 +446,7 @@ subroutine BasicPETSc_converged(snes_local,it,xnorm,snorm,fnorm,reason,dummy,ier
|
|||
pAvgDivL2, &
|
||||
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)))))
|
||||
Converged = (it >= itmin .and. &
|
||||
all([ err_div/pAvgDivL2/err_div_tol, &
|
||||
|
|
|
@ -55,9 +55,9 @@ fixed_seed 0 # put any number larger than zero, intege
|
|||
## spectral parameters ##
|
||||
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_tolabs 9.9e40 # absolute tolerance for fulfillment of stress BC
|
||||
err_f_tol 1e-6 # 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_stress_tolabs 1.0e3 # absolute tolerance for fulfillment of stress BC
|
||||
err_f_tol 1e-7 # tolerance for compatible and incompatible deformation gradient 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
|
||||
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
|
||||
|
|
Loading…
Reference in New Issue