From a946feda72c74e27f1778f8a27e63772cc75bd37 Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Fri, 15 Jul 2022 14:40:58 -0600 Subject: [PATCH] Expand a discussion in step-58. --- doc/doxygen/references.bib | 53 ++++++++++++++++++++++++++++++++ examples/step-58/doc/results.dox | 24 +++++++++++++-- 2 files changed, 74 insertions(+), 3 deletions(-) diff --git a/doc/doxygen/references.bib b/doc/doxygen/references.bib index 6ee00d582f..9ddbbef63a 100644 --- a/doc/doxygen/references.bib +++ b/doc/doxygen/references.bib @@ -611,6 +611,59 @@ } +% ------------------------------------ +% Step 58 +% ------------------------------------ + +@article{Fraysse2005, + author = { Frayss\'e, Val\'erie and Giraud, Luc and Gratton, Serge and Langou, Julien }, + title = { Algorithm 842: A set of GMRES routines for real and complex arithmetics on high performance computers }, + journal = { ACM Trans. Math. Softw. }, + year = { 2005 }, + volume = { 31 }, + issue = { 2 }, + pages = { 228--238 }, + doi = {10.1145/1067967.1067970}, + url = {http://doi.org/10.1145/1067967.1067970}, +} + + +@article{Day2001, + author = { Day, David and Heroux, Michael A. }, + title = { Solving Complex-Valued Linear Systems via Equivalent Real Formulations }, + journal = { SIAM J. Sci. Comput. }, + year = { 2001 }, + volume = { 23 }, + issue = { 2 }, + pages = { 480--498 }, + doi = {10.1137/S1064827500372262}, + url = {http://doi.org/10.1137/S1064827500372262}, +} + +@article{Axelsson2014, + author = { Axelsson, Owe and Neytcheva, Maya and Ahmad, Bashir }, + title = { A comparison of iterative methods to solve complex valued linear algebraic systems }, + journal = { Numer Algor }, + year = { 2014 }, + volume = { 66 }, + issue = { 4 }, + pages = { 811--841 }, + doi = {10.1007/s11075-013-9764-1}, + url = {http://doi.org/10.1007/s11075-013-9764-1}, +} + +@article{Liao2016, + author = { Liao, Li-Dan and Zhang, Guo-Feng }, + title = { Preconditioning of complex linear systems from the Helmholtz equation }, + journal = { Computers \& Mathematics with Applications }, + year = { 2016 }, + volume = { 72 }, + issue = { 9 }, + pages = { 2473--2485 }, + doi = {10.1016/j.camwa.2016.09.004}, + url = {http://doi.org/10.1016/j.camwa.2016.09.004}, +} + % ------------------------------------ % Step 61 % ------------------------------------ diff --git a/examples/step-58/doc/results.dox b/examples/step-58/doc/results.dox index c4f515b360..0126023bc3 100644 --- a/examples/step-58/doc/results.dox +++ b/examples/step-58/doc/results.dox @@ -176,10 +176,28 @@ know that we could do far better: of these in other tutorial programs. In all cases, they need to be accompanied by good preconditioners. For the current case, one could in principle use GMRES -- a method that does not require - any specific properties of the matrix -- but would be better - advised to implement an iterative scheme that exploits the one + any specific properties of the matrix -- as the outer solver but + at least at the time of writing this sentence (in 2022), the + SolverGMRES class can only handle real-valued linear systems. + This can be overcome by implementing a variation of GMRES that + can deal with complex-valued matrices and vectors, see for + example + @cite Fraysse2005 . + Even better would be to implement an iterative scheme that exploits the one structural feature we know is true for this problem: That the matrix - is complex-symmetric (albeit not Hermitian). + is complex-symmetric (albeit not Hermitian), for which a literature + search would probably find schemes as well. + +- A different strategy towards iterative solvers would be to break the + linear system into a $2\times 2$ block system of real and imaginary + components, like we did in step-29. This would then enable using + real-valued iterative solvers on the outer level (e.g., the existing + GMRES implementation), but one would have to come up with preconditioners + that exploit the block structure. There is, again, literature on the + topic, of which we simply point out a non-representative sample: + @cite Axelsson2014 , + @cite Day2001 , + @cite Liao2016 .

Boundary conditions

-- 2.39.5