The "mass" matrix for compact FD is usually well-conditioned. I suggest assembling it once so you can experiment with methods. You can try solving it using a Krylov method with only jacobi preconditioning. If that converges fast enough for you, you can reduce memory costs and speed it up somewhat by writing a MatShell that applies the action (instead of using the assembled matrix).
On Fri, Jun 22, 2012 at 7:03 AM, Gaetano Esposito < gaetano at email.virginia.edu> wrote: > Compact finite differences have been already discussed in this post > and following responses: > http://lists.mcs.anl.gov/pipermail/petsc-users/2011-November/011006.html. > > If I understand well, the matrix for a 2-D (or 3-D) *implicit* solver > that makes use of compact FD for the calculation of derivatives is not > "banded" because of the ordering of the x-y-z variables in the > solution vector destroys any structure, and the matrix is simply > sparse (bandwith=sqrt(n)). In that post is actually suggested that a > sparse dense solver could be more attractive because of that. > > However, if the PDE's are solved explicitly in time, the derivatives > in all directions may be calculated independently by using an > efficient sequential algorithm (o(n)). I am not familiar with any > parallel implementations of the banded diagonal algorithm solvers, but > I was wondering whether this could be efficiently implemented in Petsc > with the existing MA modules. But at that point, I don't know whether > there will be any advantage in possibly using an iterative solver that > converges to the exact solution in N iterations for a well behaved > matrix as the one deriving from compact FD. > > --g > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120622/748c6b6b/attachment.html>
