We're currently working on some papers in this area... but I don't have
anything to share yet.
Here's what I will say.  If you are using a matrix or jacobian free method
and you specify your residual correctly... then (in theory) you will get the
right answer (eventually....).  In reality, you're using a Krylov method...
and we all know that those aren't going anywhere without some
preconditioning.

With libMesh and Petsc (and Trilinos... eventually) you can fill in the
Jacobian matrix (by specifying a compute_jacobian() function) and even if
you are solving matrix free... you can precondition what's in the Jacobian
matrix and use the result to precondition your matrix free solve.

Look at example19.  Note that there are both compute_residual() and
compute_jacobian() functions that are attached to the non-linear solver.  By
default example19 will solve in a pure matrix free manner (the same as
specifying -snes_mf on the command-line)... but if you pass "-pre" on the
command-line it will cause the jacobian matrix to get filled using
compute_jacobian and that matrix will be preconditioned... and the result
will be used to precondition the matrix free solve.  This is equivalent to
passing "-snes_mf_operator" on the command-line when using Petsc (if you
look at the code you will see that indeed when using petsc that option is
set when you pass "-pre").

Now.... like I mentioned earlier if your residual is correct.... you will
get the right solution.... regardless of what you put into the jacobian....
right??  Well... the truth is tricky.  It turns out that as long as you
don't put something _wrong_ into the jacobian you will be good to go.
 But.... you don't necessarily have to put the exact _right_ thing either.
 There is some grey area here... and what works for one system of equations
won't work for another.  In general, if you put something resembling the
true jacobian in there... it will greatly help your linear solves.

So... back to multigrid.  It doesn't like non-symmetric operators right?  So
just don't put any into your jacobian!  Essentially, you'll just be
preconditioning the symmetric part of your problem... but this might be
sufficient to get good convergence behavior.  Note... this is just a
suggestion.... you can dream up all kinds of things to put into the
Jacobian............

I hope that helps,
Derek

On Sat, Nov 8, 2008 at 12:01 AM, Vijay M <[EMAIL PROTECTED]> wrote:

> Derek,
>
> My Jacobian is very much unsymmetric and so I am curious based on what Roy
> suggests. If the BoomerAMG does not work with unsymmetric systems, this
> could be a problem.
>
> When you get back, please do detail on your findings and I would be very
> much interested to know about your experiences.
>
> Thanks.
> Vijay
>
> > -----Original Message-----
> > From: Roy Stogner [mailto:[EMAIL PROTECTED]
> > Sent: Friday, November 07, 2008 9:48 PM
> > To: Derek Gaston
> > Cc: [email protected]
> > Subject: Re: [Libmesh-users] Multigrid techniques with libmesh
> >
> >
> > On Fri, 7 Nov 2008, Derek Gaston wrote:
> >
> > > The answer to #2 is YES... We use Hypre with BoomerAMG to precondition
> > > our matrix free solves all the time.  Just build petsc with Hypre
> > > support and pass the following on the command-line for your app:
> > >
> > > -snes_mf_operator -pc_type hypre -pc_hypre_type boomeramg
> > >
> > > This will use AMG on whatever you put into the jacobian matrix and use
> > > the result to precondition your matrix free solve.
> >
> > Wait - run that by me again?
> >
> > "matrix free solves" ... "use AMG on whatever you put into the
> > jacobian matrix" ...
> >
> > Wouldn't that make it an "AMG free solve"?
> >
> > But seriously, how is AMG possible without a matrix to work with?
> >
> > Also: do you have BoomerAMG working on asymmetric problems?  It was
> > giving us real trouble (like, converging to the wrong result trouble)
> > a couple years back when we tried to use it on a problem with an
> > asymmetric jacobian.
> > ---
> > Roy
> >
> > -------------------------------------------------------------------------
> > This SF.Net email is sponsored by the Moblin Your Move Developer's
> > challenge
> > Build the coolest Linux based applications with Moblin SDK & win great
> > prizes
> > Grand prize is a trip for two to an Open Source event anywhere in the
> > world
> > http://moblin-contest.org/redirect.php?banner_id=100&url=/
> > _______________________________________________
> > Libmesh-users mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/libmesh-users
>
>
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to