}
+% ------------------------------------
+% 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
% ------------------------------------
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 .
<h4> Boundary conditions </h4>