I'm hoping to implement a homotopy solver for sparse systems in PETSc. I have a question about the details of implementing the linear algebra steps so that I can take advantage of all the SNES tools.
My question doesn't have much to do with homotopy maps, per se. The idea, which as far as I know comes from Layne Watson's 1986 paper, is to decompose the Jacobian of the homotopy map, A, into a sum of two matrices with special properties: A = M + L where M is sparse, symmetric, and invertible, and L is rank one. Therefore, linear systems with M should be relatively easy to solve, using preconditioning and Krylov subspace methods. The Newton update, which solves Az = b, can be found using the Sherman-Morrison formula. I have two questions. First, is it possible to implement this using tools that already exist in PETSc? If not, is the best approach to write a shell preconditioner? Second, would a homotopy solver like this be useful to the community? Thanks for your help!
