Help!Numerical Error:IterSolver Iterations:too many iterations were needed!

Extension of Elmer in computational glaciology
Post Reply
jeffjoy
Posts: 23
Joined: 10 Nov 2020, 04:01
Antispam: Yes

Help!Numerical Error:IterSolver Iterations:too many iterations were needed!

Post by jeffjoy »

The procedure can run before,but recently,I run the procedure in a new machine, it doesn't work,errors!
Who knows?please!Error !too many iterations were needed ! in the navier-Stokes equations!

Code: Select all

Solver 4
  Equation = "Navier-Stokes"
  
  Stabilization Method = String Stabilized
  Flow Model = Stokes

  Exported Variable 1 = -dofs 1 "dSdt" 
  Exported Variable 2 = -dofs 1 "dS" 
  Exported Variable 3 = -dofs 1 "ZbDEM"
  Exported Variable 4 = -dofs 1 "ZsDEM"

  Linear System Solver = Iterative      
  Linear System Iterative Method = BICGStab
   
  Linear System Preconditioning = ILU0
  Linear System Convergence Tolerance = Real 1.0e-4 !8
  Linear System Max Iterations = 500
  Linear System Residual Output = 500
  Linear System Abort Not Converged = True 

  Nonlinear System Max Iterations = 50
  Nonlinear System Convergence Tolerance  = 1.0e-3 !5
  Nonlinear System Newton After Iterations = 5 
  Nonlinear System Newton After Tolerance = 1.0e-02
  Nonlinear System Relaxation Factor = 1.00

  Steady State Convergence Tolerance = Real 1.0e-3
End
Attachments
图像 1.png
图像 1.png (72.1 KiB) Viewed 3661 times
raback
Site Admin
Posts: 4801
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: Help!Numerical Error:IterSolver Iterations:too many iterations were needed!

Post by raback »

Hi

Try with better preconditioners, in fact you could use the IncompressibleNSVec module that comes with block preconditioner and it custom made for the glaciology community. Black-box cheap precondtioners do not work for all problems.

-Peter

PS. Please don't sent the same issue to multiple forums.
jeffjoy
Posts: 23
Joined: 10 Nov 2020, 04:01
Antispam: Yes

Re: Help!Numerical Error:IterSolver Iterations:too many iterations were needed!

Post by jeffjoy »

raback wrote: 16 Nov 2021, 02:51 Hi

Try with better preconditioners, in fact you could use the IncompressibleNSVec module that comes with block preconditioner and it custom made for the glaciology community. Black-box cheap precondtioners do not work for all problems.

-Peter

PS. Please don't sent the same issue to multiple forums.
Thank you!but i can't find the use of the IncompressibleNSVec module,how to use it,where have a case,please!I am a newer!
raback
Site Admin
Posts: 4801
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: Help!Numerical Error:IterSolver Iterations:too many iterations were needed!

Post by raback »

Hi

There is a whole portal dedicated to Elmer/Ice, you could start from dedicated course material therein, see

http://elmerice.elmerfem.org/courses-tutorials

-Peter
jeffjoy
Posts: 23
Joined: 10 Nov 2020, 04:01
Antispam: Yes

Re: Help!Numerical Error:IterSolver Iterations:too many iterations were needed!

Post by jeffjoy »

Hello,I use the 'incompressiveNV' to solve,it doesn't matter, even i set the Convergence Tolerence to 1.0e-1.
So,do you know?Thanks!

Code: Select all

 Equation = "Stokes-Vec"
  Procedure = "IncompressibleNSVec" "IncompressibleNSSolver"
  Stokes Flow = logical true

  Div-Curl Discretization = Logical False
  Stabilization Method = String Stabilized

  Exported Variable 1 = -dofs 1 "dSdt" 
  Exported Variable 2 = -dofs 1 "dS" 
  Exported Variable 3 = -dofs 1 "ZbDEM"
  Exported Variable 4 = -dofs 1 "ZsDEM"

  Linear System Solver = Iterative
  Linear System Iterative Method = BiCGStab
  Linear System Max Iterations  = 1000
  Linear System Preconditioning = ILU0
  Linear System Convergence Tolerance = 1.0e-01 !8

  Linear System Residual Output = 100

 !Non-linear iteration settings:
  !------------------------------ 
  Nonlinear System Max Iterations = 20
  Nonlinear System Convergence Tolerance  = 1.0e-1 !5
  Nonlinear System Newton After Iterations = 4
  Nonlinear System Newton After Tolerance = 1.0e-1  ! 4
  Nonlinear System Reset Newton = Logical True
  Nonlinear System Abort Not Converged = Logical True

  ! Convergence on timelevel (not required here)
  !---------------------------------------------
  Steady State Convergence Tolerance = Real 1.0e-1 !3


  Relative Integration Order = -1
  !Number of Integration Points = Integer 44 ! 21, 28, 44, 64, ...

  ! 1st iteration viscosity is constant
  Constant-Viscosity Start = Logical False


  !! Timing infos
   Bulk Assembly Timing = Logical True
   Linear System Timing = Logical True
   Linear System Timing Cumulative = Logical True
Attachments
图像 2.png
图像 2.png (72.56 KiB) Viewed 3530 times
raback
Site Admin
Posts: 4801
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: Help!Numerical Error:IterSolver Iterations:too many iterations were needed!

Post by raback »

Hi

You're not using block preconditioning strategy. Take some inspiration from:

https://github.com/ElmerCSC/MLB

The *linsys* cases include variations of block preconditioner setting.

-Peter
jeffjoy
Posts: 23
Joined: 10 Nov 2020, 04:01
Antispam: Yes

Re: Help!Numerical Error:IterSolver Iterations:too many iterations were needed!

Post by jeffjoy »

hello, i have used the block preconditioning strategy in the IncompressibleNSVec,but i met a new error in the TemperateIceSolver,error in the picture,so should i put the block preconditioning strategy in the TemperateIceSolver and even the freesurfacesolver?

Code: Select all

Solver 4
  Exec Solver = "Never"
  Equation = "Stokes-Vec"
  Procedure = "IncompressibleNSVec" "IncompressibleNSSolver"
  Stokes Flow = logical true

  Div-Curl Discretization = Logical False
  Stabilization Method = String Stabilized

  Exported Variable 1 = -dofs 1 "dSdt" 
  Exported Variable 2 = -dofs 1 "dS" 
  Exported Variable 3 = -dofs 1 "ZbDEM"
  Exported Variable 4 = -dofs 1 "ZsDEM"

 

 !Non-linear iteration settings:    8  5  4  3     
  !------------------------------ 
  Nonlinear System Max Iterations = 1
  Nonlinear System Convergence Tolerance  = 1.0e-3
  Nonlinear System Newton After Iterations = 10
  Nonlinear System Newton After Tolerance = 1.0e-1
  ! Nonlinear System Relaxation Factor = 1.00
  ! Nonlinear System Reset Newton = Logical True
 Linear System Residual Output = 0
  include linsys/block4_4boomeramg.sif
  !include linsys/block4_idrs.sif


  ! Convergence on timelevel (not required here)
  !---------------------------------------------
  Steady State Convergence Tolerance = Real 1.0e-3

  !Relative Integration Order = -1
  Number of Integration Points = Integer 44 ! 21, 28, 44, 64, ...

  ! 1st iteration viscosity is constant
  Constant-Viscosity Start = Logical True


  !! Timing infos
  ! Bulk Assembly Timing = Logical True
   !Linear System Timing = Logical True
   !Linear System Timing Cumulative = Logical True
End

Code: Select all

Solver 8
  !Exec Solver = "Never"
  Equation = String "Homologous Temperature Equation"
  Procedure =  File "ElmerIceSolvers" "TemperateIceSolver"
  ! Comment next line in parallel, as EliminateDirichlet does
  ! not work in parallel!
  !------------------------------------------------------------
!  Before Linsolve = "EliminateDirichlet" "EliminateDirichlet"
  Variable = String "Temperature"

  Stabilize = True

  Optimize Bandwidth = Logical True
  Linear System Solver = "Iterative"
  Linear System Iterative Method = "GCR"
  Linear System Max Iterations = 500
  Linear System Convergence Tolerance = 1.0E-07
  Linear System Abort Not Converged = False
  Linear System Preconditioning = "ILU1"
  Linear System Residual Output = 250
  Nonlinear System Convergence Tolerance = 1.0E-06
  Nonlinear System Max Iterations = 50
  !Nonlinear System Relaxation Factor = Real 9.999E-01
  Steady State Convergence Tolerance = 1.0E-03
  ! the contact algorithm (aka Dirichlet algorithm)
  !-----------------------------------------------------
  !Apply Dirichlet = Logical True
  ! those two variables are needed in order to store
  ! the relative or homologous temperature as well
  ! as the residual
  !-------------------------------------------------
  Exported Variable 1 = String "Temperature Homologous"
  Exported Variable 1 DOFs = 1

  Exported Variable 2 = String "Temperature Residual"
  Exported Variable 2 DOFs = 1
  Apply Dirichlet = True
End
Attachments
图像 5.png
图像 5.png (161.36 KiB) Viewed 3498 times
Post Reply