The solution of the Poisson equation is a ubiquitous problem in computational astrophysics. Most notably, the treatment of self-gravitating flows involves the Poisson equation for the gravitational field. In hydrodynamics codes using spherical polar grids, one often resorts to a truncated spherical harmonics expansion for an approximate solution. Here we present a non-iterative method that is similar in spirit, but uses the full set of eigenfunctions of the discretized Laplacian to obtain an exact solution of the discretized Poisson equation. This allows the solver to handle density distributions for which the truncated multipole expansion fails, such as off-center point masses. In 3D, the operation count of the new method is competitive with a naive implementation of the truncated spherical harmonics expansion with N ℓ ≈ 15 multipoles. We also discuss the parallel implementation of the algorithm. The serial code and a template for the parallel solver are made publicly available.
- methods: numerical