[petsc-users] Customized Jacobi-Vector action approximation

Jonas Mairhofer mairhofer at itt.uni-stuttgart.de
Sat May 31 10:02:59 CDT 2014


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


More information about the petsc-users mailing list