8
$\begingroup$

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?

$\endgroup$
10
$\begingroup$

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.

$\endgroup$
  • $\begingroup$ Thank you for the answer; do you happen to know of specific software packages that use them like this? $\endgroup$ – Kirill Jan 14 '14 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 '14 at 19:22
  • $\begingroup$ You might also want to check out PyAMG if you're a python user. $\endgroup$ – Daniel Shapero Jan 15 '14 at 3:48
6
$\begingroup$

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

$\endgroup$
  • $\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 '14 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$ – Wolfgang Bangerth Jan 25 '14 at 2:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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