Assume one uses the classical AMG with Ruge-Stuben coarsening and direct interpolation for solving real valued problems. How can this approach be recycled to also solve complex valued problems like every harmonic simulation? I have read in papers that it is possible to split the real and imaginary part and create an equivalent real matrix and solve this one. But I have also read that it is possible to use the complex matrix as it is. In that case the c/f splitting is only performed using the real part of the matrix and that the prolongation and restriction needs to be only real as well. And here my main questions arises for which I cannot find any paper or so. What needs to be considered for creating the prolongation and restriction matrix using direct interpolation? Also only the real parts like in c/f splitting or should the amplitude of the complex values be used? Any hint, papers etc. would be nice.


2 Answers 2


How can this approach be recycled to also solve complex valued problems like every harmonic simulation?

The difference of an harmonic simulation to a static simulation are bigger than just replacing real valued matrices by complex valued matrices. You will normally get matrices which can have a few significantly negative eigenvalues in addition the positive eigenvalues clustered around zero.

If we look at this in the picture of geometric multigrid, this normally means that you need a relatively fine coarse mesh, which is already able to resolve the corresponding waves more or less (say >4 points per wave cycle). You can still use multigrid to solve on the really fine grid. If using the classical AMG with Ruge-Stuben coarsening, then you probably have take care yourself that it doesn't use a too coarse mesh, for example by restricting the number of coarsening steps to a very small number.

The article by MacLachlan and Osterlee mentioned in Nico Schlömer's answer probably has more relevant details how to actually adapt classical AMG to complex valued matrices. However, the issue of the negative eigenvalues and their impact on an appropriate coarse mesh is not discussed in that article. The discussed Helmholz intentionallly avoids that isssue, despite that fact that the article also used the harmonic simulation as one example to motivate the study of AMG of complex valued matrices.


Check Algebraic Multigrid Solvers for Complex-Valued Matrices by MacLachlan and Osterlee.

On the implementation side of things, PyAMG supports complex-valued matrices. I've used it before and it works well.

  • $\begingroup$ The paper from MacLachlan and Osterlee explains very well how the c/f splitting is performed. But what I miss is the creation of prolongation operator. The paper says that there are a lot of possibilities to create the prolongation operator but it is not shown which one is used. Any idea? $\endgroup$
    – vydesaster
    Feb 28, 2019 at 10:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.