Hi all,

I am using PETSc to solve a system of nonlinear equations arising from Density Functional Theory. Depending on the actual problem setup the residulas of the matrix-free linear solver (GMRES)
stagnate and the nonlinear system converges only slowly.
Besides preconditioning my second idea to improve the performance of the linear solver was to use a higher order approximation of the Jacobi-vector product. Therefore, I am trying to write a user defined subroutine that calculates the approximation of the matrix-free Jacobi-Vector product, i.e. I would like to have a routine which can replace the default 1st order approximation

J(x)*v  = (F(x+eps*v) - F(x) ) / eps

for instance by a 2nd order approximation such as

J(x)*v = (F(x+eps*v) - F(x-eps*v) ) / 2eps

So assuming that I have a subroutine which claculates the approximation of J(x)*v, how do I get PETSc to use this result in the SNES solver?

Thank you very much,
Jonas

Reply via email to