Parallel direct Poisson solver for discretisations with one Fourier diagonalisable direction
In the context of time-accurate numerical simulation of incompressible flows, a Poisson equation needs to be solved at least once per time-step to project the velocity field onto a divergence-free space. Due to the non-local nature of its solution, this elliptic system is one of the most time consuming and difficult to parallelise parts of the code. In this paper, a parallel direct Poisson solver restricted to problems with one uniform periodic direction is presented. It is a combination of a direct Schur-complement based decomposition (DSD) and a Fourier diagonalisation. The latter decomposes the original system into a set of mutually independent 2D systems which are solved by means of the DSD algorithm. Since no restrictions are imposed in the non-periodic directions, the overall algorithm is well-suited for solving problems discretised on extruded 2D unstructured meshes. The load balancing between parallel processes and the parallelisation strategy are also presented and discussed. The scalability of the solver is successfully tested using up to 8192 CPU cores for meshes with up to 109 grid points. Finally, the performance of the DSD algorithm as 2D solver is analysed by direct comparison with two preconditioned conjugate gradient methods. For this purpose, the turbulent flow around a circular cylinder at Reynolds numbers 3900 and 10,000 are used as problem models.
unstructured meshes parallel poisson solver fft schur complement dns