Two thumbs up.
________________________________
From: Derek Gaston
To: [email protected]
Sent: Thu Jan 22 19:40:11 2009
Subject: [Libmesh-devel] Preconditioner Class
Ok... so I have a huge email already written that has a big long justification
of a Preconditioner Class. But after writing it I realized that it was long
winded and no one would really care about the discovery process I went through
during the last few days.... so I've decided to just skip to the meat. If you
want the justification later let me know....
We need a Preconditioner class. It will allow you to setup a preconditioner
and use it multiple times with different RHS vectors.
It should inherit from LinearSolver, using the matrix and rhs vector to produce
the preconditioned vector in solution whenever solve() is called.
Concrete implementations of this class would be:
PetscPreconditioner
MLPreconditioner (from Trilinos)
ShellPreconditioner
etc..
I also wouldn't mind a PetscHyprePreconditioner where both MLPreconditioner and
it inherit from MultigridPreconditioner. This would allow simple manipulation
of common multigrid preconditioner paramters (like smoothing, cycle numbers,
etc.). But this can be negotiated.
LinearImplicitSystem should allow for attaching a preconditioner class that
would then be used by the solver. LinearImplicitSystem should also allow you
to specify a Preconditioner _as_ the solver itself... or maybe there should be
a separate PreconditionerSystem... I can't decide.
Just to give an example of a Preconditioner: the PetscPreconditioner would
create a PC struct calling PCCreate(), PCSetType() and PCSetOperators() for
you. Then when solve is called it would do a PCApply(pc, rhs, solution).
Looking over ML (in Trilinos) it would have similar behavior.
To sum up the justification of these classes: I have to do a _lot_ of manual
petsc and libmesh manipulation to setup separate preconditioning systems and
_efficiently_ solve them.... and a lot of that manipulation is going to have to
be duplicated for using ML in Trilinos.
So what do you guys think? If I get the thumbs up I could probably have
something in the repository by the end of the day tomorrow...
Derek
------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Libmesh-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-devel