When I learned about SOR, it was mostly given as one of the first examples of iterative methods, and then later the iterative methods that I would end up using would be Krylov subspace methods.

Are any of the iterative methods like Gauss-Seidel and SOR ever used in practice? Do you know of any real packages that use them "seriously", for something other than demonstration purposes?


2 Answers 2


Yes, but not as stand-alone solvers for linear systems of equations. These days, they are used as smoothers in multigrid or as preconditioners in krylov methods.

  • $\begingroup$ Thank you for the answer; do you happen to know of specific software packages that use them like this? $\endgroup$
    – Kirill
    Jan 14, 2014 at 19:17
  • $\begingroup$ Many packages implement them. Among them, I have found PETSC to be fairly easy to use for beginners. $\endgroup$
    – Paul
    Jan 14, 2014 at 19:22
  • $\begingroup$ You might also want to check out PyAMG if you're a python user. $\endgroup$ Jan 15, 2014 at 3:48

Paul already gave the short answer (that all PDE and linear algebra packages do implement these methods, but that they are most frequently used only as smoothers in multigrid methods). The long answer can be found in lectures 34-38 here: http://www.math.tamu.edu/~bangerth/videos.html

  • $\begingroup$ Wolfgang, on that subject, how do you quantify what makes the best smoother for multigrid methods? It's certainly viable to use SOR/GS, or explicit RK methods, or Krylov methods to accomplish the same task. $\endgroup$
    – Aurelius
    Jan 24, 2014 at 15:46
  • $\begingroup$ It's not trivial to give any theoretical answer to this. In practice, people compare outer iteration numbers to reach a given tolerance for different smoothers, or better even the runtime. $\endgroup$ Jan 25, 2014 at 2:17

Your Answer

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

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