Unfortunately, those are hard problems in which the "good" methods are technical and hard to make black-box. There are "sweeping" methods that solve on 2D "slabs" with PML boundary conditions, H-matrix based methods, and fancy multigrid methods. Attempting to solve with STRUMPACK is probably the easiest thing to try (--download-strumpack).
https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MATSOLVERSSTRUMPACK.html Is the matrix complex symmetric? Note that you can use a direct solver (MUMPS, STRUMPACK, etc.) for a 3D problem like this if you have enough memory. I'm assuming the memory or time is unacceptable and you want an iterative method with much lower setup costs. Alexey Kozlov <alexey.v.kozlo...@nd.edu> writes: > Dear all, > > I am solving a convected wave equation in a frequency domain. This equation > is a 3D Helmholtz equation with added first-order derivatives and mixed > derivatives, and with complex coefficients. The discretized PDE results in > a sparse linear system (about 10^6 equations) which is solved in PETSc. I > am having difficulty with the code convergence at high frequency, skewed > grid, and high Mach number. I suspect it may be due to the preconditioner I > use. I am currently using the ILU preconditioner with the number of fill > levels 2 or 3, and BCGS or GMRES solvers. I suspect the state of the art > has evolved and there are better preconditioners for Helmholtz-like > problems. Could you, please, advise me on a better preconditioner? > > Thanks, > Alexey > > -- > Alexey V. Kozlov > > Research Scientist > Department of Aerospace and Mechanical Engineering > University of Notre Dame > > 117 Hessert Center > Notre Dame, IN 46556-5684 > Phone: (574) 631-4335 > Fax: (574) 631-8355 > Email: akoz...@nd.edu