matrix free for linear solver

li pan li76pan at
Mon Mar 3 12:16:34 CST 2008

hi Matt,
I used to discuss with somebody about SNES for
nonlinear equation. One can use -snes_mf_operator for
matrix free calculation. As far as I know, SNES uses a
Newton-Kryplov Method. In each Newton, one has to
solve a linear equation, which is :
residual = Jacobian * delt_u
If I can solve the linear equation in a iterative way
in Kryplov space, then I only need to optimise
Jacobian*delt_u - residual
The matrix vector multiplication can be expressed
through the gradient calculation for residual. That's
why we can forget the Jacobian matrix. The method is
generally called Jacobian free Newton Kryplov mehtod
(JFNK). You must know it.
Actually, that's the way snes works with -snes_mf.
Here, we define the function SNESSetFunction(). And as
argument, we give the calculation of residual.
I wrote so much only because of the continuity of the
Now my question is, if the SNES method includes a JFNK
method to solve the linear equation, why can't I use
it for my linear equation directly? And how?



--- Matthew Knepley <knepley at> wrote:

> On Mon, Mar 3, 2008 at 11:05 AM, li pan
> <li76pan at> wrote:
> > Dear all,
> >  If I want to solve a linear equation in matrix
> free
> >  scheme, how is the command line argument? I only
> know
> >  for nonlinear solver it is _snes_mf
> What do you mean here? How do you have linear
> equations without
> a matrix? If you mean that you would only like to
> specify the action
> of the operator, you should use MATSHELL.
>   Matt
> >  thanx
> >
> >  pan
> >
> >
> >
> >      
> >  Looking for last minute shopping deals?
> >  Find them fast with Yahoo! Search. 
> >
> >
> -- 
> What most experimenters take for granted before they
> begin their
> experiments is infinitely more interesting than any
> results to which
> their experiments lead.
> -- Norbert Wiener

Never miss a thing.  Make Yahoo your home page.

More information about the petsc-users mailing list