## Improving Convergence of Multiphysics Problems

##### Walter Frei | December 23, 2013

In our previous blog entry, we introduced the *Fully Coupled* and the *Segregated* algorithms used for solving steady-state multiphysics problems in COMSOL. Here, we will examine techniques for accelerating the convergence of these two methods.

### Load Ramping and Nonlinearity Ramping Techniques

As we just learned, the fully coupled approach to solving a steady-state nonlinear problem actually uses the exact same damped Newton-Raphson algorithm used to solve a single physics nonlinear problem. Although this algorithm does converge well for many cases, it can fail or converge very slowly if the choice of initial conditions are poor. It should come as no surprise then that the techniques we have already looked at, such as Load Ramping and Nonlinearity Ramping, are just as valid when applied to a multiphysics problem. In fact, there is really nothing to add to these techniques — they can be used equivalently.

### Ramping Multiphysics Problems

There is one new variation of the nonlinearity ramping technique, and that is to ramp the coupling between the physics. *Numerically*, it is in fact identical to the nonlinearity ramping technique already discussed, but *conceptually* it is the magnitude of the couplings between the physics that is ramped up, rather than the magnitude of the nonlinearity in a single physics. The only difficulty is choosing, and implementing, the term that should be ramped. Luckily, most multiphysics problems have quite obvious couplings between the physics, which can be found simply by writing out the governing equations and boundary conditions and examining how the material properties and loads are dependent upon the variables being solved for.

The most important thing to remember is that the underlying algorithm used to solve a fully coupled multiphysics problem is exactly the same as the algorithm used to solve a nonlinear single physics problem. Keeping this in mind, you will find that fully coupled mutliphysics problems really do not pose any additional conceptual hurdles beyond understanding how the physics in the model interact with each other.

On the other hand, the segregated approach can lead to a variety of different solution strategies that can greatly accelerate solution convergence, and significantly affect the amount of memory needed to solve the problem. To understand this, let’s make a flowchart of the different multiphysics solution techniques. Consider the same problem from our previous blog post about a busbar that heats up due to current flow and experiences thermal stresses.

### Fully Coupled Approach

First, the fully coupled solver starts from an initial guess and applies Newton-Raphson iterations until the solution has converged:

When solving such a problem, you will get a Convergence Plot, which shows the error estimate decreasing between Newton-Raphson iterations. Ideally, the error should go down monotonically if it does converge, then start investigating ramping the loads, the nonlinearities, or the multiphysics couplings. This approach will almost always require a more memory-intensive direct solver to solve the linear system of equations in each Newton-Raphson step.

### Segregated Approach

Now, compare the fully coupled approach to the segregated approach, which solves each physics sequentially until convergence:

You will get a different kind of convergence plot for such a problem, one that shows the error associated with each physics you are solving. Each of the physics can use the optimal solver, either the direct or the less memory-intensive iterative, to solve the linear system of equations. Each segregated step can be a nonlinear problem on its own, and can be solved to a desired tolerance, and with custom damping, as appropriate for the particular combination of physics problem being solved.

With this solution method, you will get at least two convergence plots, one for the iterative solver(s) possibly used within a segregated step, and a second for the overall convergence of the segregated approach:

The above plot shows the decrease in error for each physics. Although more iterations may be required for the same problem, each loop through the segregated solution approach can be much faster than the Newton-Raphson step required for the fully coupled approach. You can also get a little bit more information out of this, if only one or two physics are not converging, then you will want to check the set-up of these first.

### Sequential Solution Step

One thing you may recall about this problem is that the temperature change is driven by the resistive heating from the current, and the current distribution depends upon the electrical conductivity, which is temperature-dependent. That is, the voltage and temperature solutions are *bi-directionally* coupled. On the other hand, although the thermal strain and the Young’s Modulus are dependent upon temperature, the voltage and temperature solutions do not depend upon the displacements or stresses. That is, there is a *uni-directional* coupling from the thermal problem to the structural problem. We can immediately see that there is an even more efficient way to solve this problem. We can solve the voltage and temperature problem first and subsequently solve for the displacements:

So, we can see that there are (at least) three different ways of solving this problem: fully coupled, segregated and assuming couplings between all of the physics are segregated, or with a sequential solution step to take advantage of the uni-directional coupling between temperature and displacements. When solving a multiphysics problem, COMSOL will assume coupling between all physics, and try to choose the optimal fully coupled or segregated approach, based on the physics and the problem size. Of course, it is always instructive to go into the solver settings to see what settings the software has chosen.

### Conclusion of the Solver Blog Series

This series of postings has been designed to give you an understanding of the algorithms used in COMSOL to solve single physics and multiphysics linear and nonlinear steady-state problems. Issues such as meshing, accuracy, and convergence have been covered. With this information, you should be able to more confidently address the solutions to your models of this type.

## Comments

Felix HildebrandJune 17, 2015 5:40 amVery nice summary of the possible solver configurations! I am wondering how to set up the sequential solver for a time-dependent problem such that in each time step, it carries out the described sequential solution of first (u_V,u_T) and then sequentially (u_D)? Is there an option in the segregated solver to make a segregated node sequential?

Walter FreiJune 17, 2015 9:54 amHello Felix,

If you set up a 3D multiphysics problem and use a time-dependent solver, the default behavior will be to segregate the solution as you can describe. You are of course welcome to adjust the default settings of you wish to do so.

Gohan JangJune 30, 2015 2:13 amDear Walter,

Thank you very much for your writing. your blog’s are really fruitful and helpful.

But, in this blog, It’s little bit hard to me for following your diagram of segregated approach at COMSOL interface. Shortly, it’s hard to me for solving each physics (fV, fT, fD) separately and iteratively (like fV->fT->fD -> fV->fT->fD -> fV … etc.). I try to add “segregated” option in my Stationary Solver, and I can found there is “Variables” section for each segregated step, but I cannot find section for select physics for solving for each segregated step. Then, If am I guess right, they solve (fV + fT + fD) for variable uV, not fV for Uv, for the first segregated step?

Walter FreiJune 30, 2015 8:52 amDear Gohan,

You may want to contact your COMSOL Support Team about this, as your question appears to be specific to a file you are working with. The Support Team will be happy to address this question for you.

Marco MorroneNovember 19, 2015 4:55 pmDear Walter,

Thank you for your precious writing. There is something that I didn’t understand quite well:

With respect to the sequential solution step of the example mentioned above, how can you create the bi-directional coupling between two segregated physics and then transferring the result of such a strong coupling to the uni-directional one (in this case, of course, not temperature dependent)? I guess maybe by using two different studies, but still it’s not clear to me how the temperature increase is sent back from one physics to the other to change the material properties if not fully coupled in one matrix.

Marco MorroneNovember 20, 2015 4:53 am… especially for a time-dependent phenomenon.

Regards

Son PhamFebruary 22, 2016 7:25 pmHello everyone, I’m simulating a BAVA antenna with two grounds on outer sides and one inner radiation layer. Unfortunately, when the program’s computing, it seemed that it couldn’t be convergence process. I must stopped the program after a long run.

Anyone can help me with this problem please?

I used lumped port mode to stimulate the antenna. I also tried to design a 50 ohm connector, yet it couldn’t fix the problem. Thanks a lot.

Son PhamFebruary 23, 2016 3:48 pmI would like to share here my experience in convergence problem a bit.

When my simulation of an antenna running didn’t converge, I had changed into cartesian PML, and it converged quickly. Before that, I also corrected the size of exciting source surface, and the simulation almost converged!!!

So I think we should look at the mesh at some where in our structure as well as the size of our structure. Be careful with wavelength…

If someone has other experience in RF debug, please leave comment to help other novice guys like me.

Thanks a lot.

Nhan NguyenMarch 15, 2016 7:42 amDear Walter,

Thank you very much for your writing. It’s very helpful.

But I still can not solve my problem after reading your writing.

For example, I use ODE in Time-Dependent Study:

Name: x, f(u,ut,utt,t)= x*t[1/s]-2*y-1

Name: y, f(u,ut,utt,t)= y-3*x

I want to let Comsol solve x–>y–>x–>y–>x….

At t=0, x=0 –> y=0

At t=1[s], –> x=1 –> y=3

At t=2[s], –> x=3.5 –> y= 10.5

I really need help from you !

Walter FreiMarch 15, 2016 9:07 amDear Nhan,

These kinds of questions that are specific to a particular model that you are working with should be directed to the COMSOL Support Team.

Richard StormMay 30, 2016 4:23 pmHow can I get those plots in Comsol? I mean how can I plot the “error” vs “Iteration number” in Comsol 5.2 ?