Discussion Closed This discussion was created more than 6 months ago and has been closed. To start a new discussion with a link back to this one, click here.

Solver divergence triggered by smaller relative tolerance ?

Please login with a confirmed email address before reporting spam

While experimenting with the fully coupled direct solver for transient FSI, I have noticed a few times that a simulation that completes without error has diverged when I reduce the relative tolerance. I can understand that the simulation might fail due to not reaching the tolerance criteria, but causing divergence is not something I have experienced in other software.

What I would like to know is whether this is a “known behaviour” of the COMSOL solver, or am I assuming a causal link between relative tolerance and divergence, where there is none.

Thanks.


3 Replies Last Post 2018年3月8日 GMT-5 09:04
Henrik Sönnerlind COMSOL Employee

Please login with a confirmed email address before reporting spam

Posted: 6 years ago 2018年3月6日 GMT-5 02:01

Hi Dan,

This not so common, but I have seen it a number of times for other physics fields.

One possible reason is that a tighter tolerance can cause the automatic time stepping to choose other time steps. If there is a point in time which is unstable for some reason, for example a bifurcation point, you may suddenly hit it, whereas with the more relaxed tolerance made the solver take a large stride across the critical region.

For fluid mechanics, there may also be numerical effects caused by the artificial stabilization used.

My best suggestion is that you take a look at the solver log, and try to figure out if there is a difference in the time stepping behavior. Maybe it is necessary to limit the time step in either direction?

Regards, Henrik

-------------------
Henrik Sönnerlind
COMSOL
Hi Dan, This not so common, but I have seen it a number of times for other physics fields. One possible reason is that a tighter tolerance can cause the automatic time stepping to choose other time steps. If there is a point in time which is unstable for some reason, for example a bifurcation point, you may suddenly hit it, whereas with the more relaxed tolerance made the solver take a large stride across the critical region. For fluid mechanics, there may also be numerical effects caused by the artificial stabilization used. My best suggestion is that you take a look at the solver log, and try to figure out if there is a difference in the time stepping behavior. Maybe it is necessary to limit the time step in either direction? Regards, Henrik

Please login with a confirmed email address before reporting spam

Posted: 6 years ago 2018年3月8日 GMT-5 05:36

Thank you for your insights.

Switching off turbulence stabilization does seem to help

Regarding time stepping. The behaviour of the solver is somewhat confusing. You can see in the attached screen grab that I set the max timestep to be 0.0001, but in the log file, the solver is testing stepsizes such as 6.2e+5. The units in the log file are not seconds ?

Thank you for your insights. Switching off turbulence stabilization does seem to help Regarding time stepping. The behaviour of the solver is somewhat confusing. You can see in the attached screen grab that I set the max timestep to be 0.0001, but in the log file, the solver is testing stepsizes such as 6.2e+5. The units in the log file are not seconds ?


Henrik Sönnerlind COMSOL Employee

Please login with a confirmed email address before reporting spam

Posted: 6 years ago 2018年3月8日 GMT-5 09:04

>

Regarding time stepping. The behaviour of the solver is somewhat confusing. You can see in the attached screen grab that I set the max timestep to be 0.0001, but in the log file, the solver is testing stepsizes such as 6.2e+5. The units in the log file are not seconds ?

Stepsize is not a time step. It is an internal measure of the increment of the degrees of freedom in one iteration in the nonlinear solver (within the current time step).

Regards,

Henrik

-------------------
Henrik Sönnerlind
COMSOL
> >Regarding time stepping. The behaviour of the solver is somewhat confusing. You can see in the attached screen grab that I set the max timestep to be 0.0001, but in the log file, the solver is testing stepsizes such as 6.2e+5. The units in the log file are not seconds ? *Stepsize* is not a time step. It is an internal measure of the increment of the degrees of freedom in one iteration in the nonlinear solver (within the current time step). Regards, Henrik

Note that while COMSOL employees may participate in the discussion forum, COMSOL® software users who are on-subscription should submit their questions via the Support Center for a more comprehensive response from the Technical Support team.