We consider the iterative solution of systems of equations arising from discretizations of the non-linear Euler equations governing compressible flow. The differential equation is discretized on a structured grid, and the steady state solution is computed by a time-marching method.
A convergence acceleration technique based on semicirculant approximations of the difference operator or the Jacobian is used. Implementation issues and variants of the scheme allowing for a reduction of the arithmetic complexity and memory requirement are discussed. The technique can be combined with a variety of iterative solvers, but we focus on non-linear explicit Runge-Kutta time-integration schemes. The results show that the single-stage forward Euler method can be used, and the time step is not limited by a CFL-criterion. Instead it can be chosen as a constant, independent of the number of grid points. This results in that the arithmetic work required for computing the solution is equivalent to the work required for a fixed number of residual evaluations.
Two major advantages of the semicirculant convergence acceleration technique is that it contains few tunable parameters, and that it is robust with respect to the amount of artificial viscosity used in the discretization.
A parallel solver for the Helmholtz equation in a domain consisting of layers with different material properties is presented. A fourth-order accurate finite difference discretization is used. The arising system of equations is solved with a preconditioned Krylov subspace method. A domain decomposition framework is employed, where fast transform subdomain preconditioners are used. Three ways of treating the Schur complement of the preconditioner are investigated, and the corresponding preconditioned iterative methods are compared with a standard direct method. It is noted that the convergence rate of the iterative methods is closely related to how the Schur complement system for the preconditioner is formed, and how accurately it is solved. However, in almost all cases, the gain in both memory requirements and arithmetic complexity is large compared with the direct method. Furthermore, the gain increases with problem size, allowing problems with many unknowns to be solved efficiently. The efficiency is further improved by parallelization using message-passing, enabling us to solve even larger Helmholtz problems in less time.