From: Wolfgang Bangerth Date: Fri, 15 Jul 2022 20:40:58 +0000 (-0600) Subject: Expand a discussion in step-58. X-Git-Tag: v9.5.0-rc1~1083^2 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F14144%2Fhead;p=dealii.git Expand a discussion in step-58. --- 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