ERROR:: Itersolve: Failed convergence tolerances

Numerical methods and mathematical models of Elmer
Post Reply
annier
Posts: 1169
Joined: 27 Aug 2013, 13:51
Antispam: Yes

ERROR:: Itersolve: Failed convergence tolerances

Post by annier »

Hi,
When i made the mesh finer
with
Initial Number of Segments to a Boundary = 11
to Final Number of Segement to the Boundary = 1000
almost 100 times finer mesh.
I faced this statements in the Solver Log File.

Code: Select all

ERROR:: IterSolve: Failed convergence tolerances.
This is the simulation with Coupling of Advection-Diffusion Solver with MeshSolver.

yours
annier
Anil Kunwar
Faculty of Mechanical Engineering, Silesian University of Technology, Gliwice
annier
Posts: 1169
Joined: 27 Aug 2013, 13:51
Antispam: Yes

Re: ERROR:: Itersolve: Failed convergence tolerances

Post by annier »

The Mesh Update Solver has the following settings

Code: Select all

Solver 2
  Equation = Mesh Update
  Procedure = "MeshSolve" "MeshSolver"
  Variable = -dofs 2 Mesh Update
  Exec Solver = Always
  Stabilize = True
  Bubbles = False
  Lumped Mass Matrix = False
  Optimize Bandwidth = True
  Steady State Convergence Tolerance = 1.0e-5
  Nonlinear System Convergence Tolerance = 1.0e-7
  Nonlinear System Max Iterations = 20
  Nonlinear System Newton After Iterations = 3
  Nonlinear System Newton After Tolerance = 1.0e-3
  Nonlinear System Relaxation Factor = 1
  Linear System Solver = Iterative
  Linear System Iterative Method = BiCGStab
  Linear System Max Iterations = 500
  Linear System Convergence Tolerance = 1.0e-10
  Linear System Preconditioning = ILU0
  Linear System ILUT Tolerance = 1.0e-3
  Linear System Abort Not Converged = False
  Linear System Residual Output = 1
  Linear System Precondition Recompute = 1
End
Since in the solver log file, the message comes after the reading of MeshUpdate solver, should i change the tolerance setting or decrease the mesh fineness?

yours
annier
Anil Kunwar
Faculty of Mechanical Engineering, Silesian University of Technology, Gliwice
annier
Posts: 1169
Joined: 27 Aug 2013, 13:51
Antispam: Yes

Re: ERROR:: Itersolve: Failed convergence tolerances

Post by annier »

Code: Select all

...
501 0.2496E-02
ERROR:: IterSolve: Failed convergence tolerances.
ComputeChange: NS (ITER=1) (NRM,RELC): ( 0.52658356E-04  2.0000000     ) :: mesh update
MeshSolve:  Result Norm   :   5.26583561113408311E-005
MeshSolve:  Relative Change :    2.0000000000000000
ComputeChange: SS (ITER=1) (NRM,RELC): ( 0.52658356E-04  2.0000000     ) :: mesh update

.
.
.
   497 0.3409E-05
     498 0.3429E-05
     499 0.3454E-05
     500 0.3345E-05
     501 0.3345E-05
ERROR:: IterSolve: Failed convergence tolerances.
ComputeChange: NS (ITER=1) (NRM,RELC): ( 0.64315314E-04 0.19930908     ) :: mesh update
MeshSolve:  Result Norm   :   6.43153136213277433E-005
MeshSolve:  Relative Change :   0.19930908445683038
ComputeChange: SS (ITER=2) (NRM,RELC): ( 0.64315314E-04 0.19930908     ) :: mesh update
Anil Kunwar
Faculty of Mechanical Engineering, Silesian University of Technology, Gliwice
raback
Site Admin
Posts: 4851
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: ERROR:: Itersolve: Failed convergence tolerances

Post by raback »

Hi,

You can increase number of iterations and decrease the linear system tolerance, or use better preconditioner, or experiment with different iterative methods. For 2D scalar problems the direct umfpack is often a good alternative too.

-Peter
annier
Posts: 1169
Joined: 27 Aug 2013, 13:51
Antispam: Yes

Re: ERROR:: Itersolve: Failed convergence tolerances

Post by annier »

Hi Peter,
Thank you very much for the reply.
In accordance to your suggestion, i made the following change and it worked.

Code: Select all

Linear System Convergence Tolerance = 1.0e-5  !Previously it was 1.0e-10
And now this warning has not appeared.
Thank you.
yours
annier
Anil Kunwar
Faculty of Mechanical Engineering, Silesian University of Technology, Gliwice
annier
Posts: 1169
Joined: 27 Aug 2013, 13:51
Antispam: Yes

Re: ERROR:: Itersolve: Failed convergence tolerances

Post by annier »

raback wrote: You can increase number of iterations and decrease the linear system tolerance, or use better preconditioner, or experiment with different iterative methods. For 2D scalar problems the direct umfpack is often a good alternative too.
Hi Peter,
Is increasing the number of iterations mean increasing Steady State Max Iterations.
i had previously set its value as

Code: Select all

Steady State Max Iterations = 4
Do i need to increase it more?
The default was 1.

or, do you mean
Nonlinear System Max Iterations or Linear System Max Iterations within the Mesh Update Solver?
yours
annier
Anil Kunwar
Faculty of Mechanical Engineering, Silesian University of Technology, Gliwice
annier
Posts: 1169
Joined: 27 Aug 2013, 13:51
Antispam: Yes

Re: ERROR:: Itersolve: Failed convergence tolerances

Post by annier »

Hi Peter,
In the test case for fsi_beam, the mesh update solver has the following settings:

Code: Select all

Solver 3
  Equation = Mesh Update
  Linear System Solver = Iterative
  Linear System Iterative Method = BiCGStab
  Linear System Preconditioning = ILU1
  Linear System Max Iterations = 500
  Linear System Convergence Tolerance = 1.0e-8
  Steady State Convergence Tolerance = 1.0e-6
End
is it not involving the non-liner system iterations?
yours
annier
Anil Kunwar
Faculty of Mechanical Engineering, Silesian University of Technology, Gliwice
raback
Site Admin
Posts: 4851
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: ERROR:: Itersolve: Failed convergence tolerances

Post by raback »

Hi

When you have problems in linear solvers as in the case of iterative ones:

Code: Select all

ERROR:: IterSolve: Failed convergence tolerances
The relavant keywords to experiment with are the ones with "Linear System ..." etc.

-Peter
annier
Posts: 1169
Joined: 27 Aug 2013, 13:51
Antispam: Yes

Re: ERROR:: Itersolve: Failed convergence tolerances

Post by annier »

Hi,
When i performed in mesh for larger geometrical length, there was no error. When i reduced the scale via

Code: Select all

coordinate scaling =1.0e-4
, this error

Code: Select all

ERROR:: IterSolve: Failed convergence tolerances
appeared.
Solution :
I changed the

Code: Select all

Solver 1
...
Linear System Max Iterations = 350
...
End
to

Code: Select all

Solver 1
...
Linear System Max Iterations = 1000
...
End
Then there was no error.
Another Possibility,
Although, the error could be eliminated by changing

Code: Select all

Solver 1 
...
Linear System Convergence Tolerance = 1.0e-8
..
End 
to

Code: Select all

Solver 1 
...
Linear System Convergence Tolerance = 1.0e-4
..
End 
Doing this in this particular simulation gave some unrealistic temperature results.
However, this method needs to be implemented with reasonable assumption when "changing only number of linear system max iterations" don't cause the avoidance of the error.


I understood now the meaning of this quote
raback wrote:The relavant keywords to experiment with are the ones with "Linear System ..." etc.
.

Inference:
Hence, the possible solutions are:
1. Increasing the number of linear system max iterations.
2. Decreasing the value of linear system convergence tolerance.


Yours
Anil Kunwar
Anil Kunwar
Faculty of Mechanical Engineering, Silesian University of Technology, Gliwice
Post Reply