The scipy SuperLU preconditioner does not seem to work well for solving the Laplace equation for interpolation. This implements a the (M)ILU0 preconditioner from MODFLOW 6, which works well.
A different ILU0 implementation can be found here: https://github.com/c-f-h/ilupp
It factors differently, but converges in the same number of iterations (with a slightly different answer), with basically the same performance to this Numba compiled version.
The scipy SuperLU preconditioner does not seem to work well for solving the Laplace equation for interpolation. This implements a the (M)ILU0 preconditioner from MODFLOW 6, which works well.
A different ILU0 implementation can be found here: https://github.com/c-f-h/ilupp It factors differently, but converges in the same number of iterations (with a slightly different answer), with basically the same performance to this Numba compiled version.