Steady state convergence tolerance

Numerical methods and mathematical models of Elmer
Roland
Posts: 235
Joined: 12 Apr 2018, 11:29
Antispam: Yes

Steady state convergence tolerance

Post by Roland »

Hi,
Concerning the linear/non linear convergence tolerance of a solver is roughly ok for me about the understanding of how it works.
But I don't understand how the "Steady state convergence tolerance" works when using a solver. How is this convergence tolerance taken into account?
Could somebody give some explanations about this?
Thanks in advance for any help!
Roland
kevinarden
Posts: 2342
Joined: 25 Jan 2019, 01:28
Antispam: Yes

Re: Steady state convergence tolerance

Post by kevinarden »

I believe the linear/non linear convergence tolerance of a solver applies to that individual solver.
Each individual solver stops when it converges. Then the next solver starts.

The steady state convergence applies to the equation which is the combination of all the solvers

A common stopping criterion applies a residual level for the equation, below which the equation is deemed to be converged. When the equation satisfy the respective residual control, the simulation then stops.
Roland
Posts: 235
Joined: 12 Apr 2018, 11:29
Antispam: Yes

Re: Steady state convergence tolerance

Post by Roland »

Hi,
Thanks Kevin for your reply.
But how could this stopping criterion be applied to the equation? What is the error expression defined for this equation which gathers all the concerned solvers? Is there something like a flowchart which could describe this kind of convergence test?
Thanks in advance for any help!
Roland
raback
Site Admin
Posts: 4838
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: Steady state convergence tolerance

Post by raback »

Hi Roland,

The convergence criterion is |u_i - u_j| < c*(|u_i|+|u_j|)/2, where c is the tolerance. For nonlinear system j refers to previous nonlinear iterate. For coupled system j refers to the solution of the previous time the coupled system visited the solver.

Generally it may be a good idea that the tolerances for linear system are the tightest, for nonlinear system a little sloppier, and for steady state system even more so. For example, values 1.0e-8, 1.0e-5 and 1.0e-4 could be used.

-Peter
Roland
Posts: 235
Joined: 12 Apr 2018, 11:29
Antispam: Yes

Re: Steady state convergence tolerance

Post by Roland »

Hi Peter,
Thanks for your answer.
But I still don't feel exactly what this convergence criterion (which I understand for non-linear and linear iterations when using a solver) is for " steady state ". What do you mean exactly by "Steady state" ? What confuses me is that you refer to non-linear systems, then to coupled systems. Can you please explain what is exactly the "Steady state" compared with a nonlinear system and a coupled system? And why is it necessary to have a convergence tolerance for "Steady state"?
Thanks in advance
Roland
Roland
Posts: 235
Joined: 12 Apr 2018, 11:29
Antispam: Yes

Re: Steady state convergence tolerance

Post by Roland »

Hi Peter,
After thinking this "Steady state convergence tolerance" matter a bit more and after reading one of your former post explaining the 3 convergence nested levels (liner, nonlinear and loosely coupled equations system) I think I understand now what is the "Steady state": when several equations are loosely coupled you have to iterate from one to the other equation , and this until the multiphyisic solution is converged thanks to the "Steady state convergence tolerance". I guess that this is the same as what is called "segregated solver" in Comsol. At last I think I understand now that this has nothing to do with the "physical steady state" of a model...
I let you confirm if I am on the right way...
Thanks in advance.
Roland
Roland
Posts: 235
Joined: 12 Apr 2018, 11:29
Antispam: Yes

Re: Steady state convergence tolerance

Post by Roland »

...Sorry, my former post has been interrupted.
I continue it here after:
I am still trying to better understand how all the linear, nonlinear, steady_state convergence tolerances interact in a time dependant nonlinear multiphysics coupled problem. In the Elmer solver manual a pseudo-code describes the "basic loosely coupled iteration scheme" employed by the Elmer solver and using the nonlinear Gauss-Seidel iteration method, which is interesting for understanding how a coupled system is managed.
If we take for instance following time dependant non linear coupled system with 2 dependant variables u1 and u2:
F1(u1,u2)=0
F2(u1,u2)=0 (with F1 including time dependance of u1 with time, and F2 including time dependance of u2 with time for instance),
could it be possible to write a pseudo-code showing how the linear, nonlinear, steady_state convergences and time steps interact?
I think that such a pseudo-code (flow chart?) would be very iteresting for a better understanding of the real working of the solver.
Thanks in advance for any help about that.
Roland
Roland
Posts: 235
Joined: 12 Apr 2018, 11:29
Antispam: Yes

Re: Steady state convergence tolerance

Post by Roland »

Hi,
Having no answer about my former post I will try to ask the things on a more simple way:
In a non linear multiphysics coupled model I would like to better understand how the nonlinear convergence tolerance and the steady_state convergence tolerance interact when the solver works. Can this be explained by a simplified pseudo-code?
It would be nice if somebody could help me to better understand this.
Thanks in advance for any help!
Roland
kevinarden
Posts: 2342
Joined: 25 Jan 2019, 01:28
Antispam: Yes

Re: Steady state convergence tolerance

Post by kevinarden »

I would describe it as the solution to the equation/equations always vary with time, until a steady state develops.
Steady state as opposed to transient gets to the steady state non-changing result faster than going through every transient step.
Steady state means that the variables are no longer changing with time. In a solution you may be interested in the transient response, which is usually early, or you may only be interested in the steady state. Note that not all equations have a steady state, they may always stay transient, i.e. turbulent flow.

The solution path of the equations may be linear or non-linear depending on the equation. A pure iterative solution is just rial and error, I will plug in numbers for the variables to see if it is solution to the equations. If not, plug in different numbers and try again, I can look at the the results and guess how the numbers should change to converge to a solution.

More advance methods use mathematics to guide the variable guesses to the solution in a more efficient method.

These methods assume an initial linear path, calculate a convergence (i.e. a non changing number)
Then take that path and calculate a non-linear solution, then uses that to correct the linear path to the curve.
Steady State means the the solution of both of the above quits changing, and making more iterations of linear followed by non-linear corrections results in a non-changing result.

Therefore
linear converge tolerance = ?
Non-linear convergence tolerance = ?
steady state convergence tolerance = ?

will result in a numerical solution of the equation (accuracy depends on all of the above and the mesh)
iterative is just a bunch of guesses at the solution until certain convergence criteria is met, linear , and non-linear are intermediate convergences
steady state is convergence on the final solution (to the specified tolerance)
convergence.png
convergence.png (16.95 KiB) Viewed 27 times
Roland
Posts: 235
Joined: 12 Apr 2018, 11:29
Antispam: Yes

Re: Steady state convergence tolerance

Post by Roland »

Hi,
Thanks a lot Kevin for your detailed explanation which I will read and come again to you if I have some more points to clear.
Roland
Post Reply