[petsc-dev] ML Reuse redux

John Fettig john.fettig at gmail.com
Fri Aug 26 14:50:30 CDT 2011


On Fri, Aug 26, 2011 at 2:27 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote:
> On Fri, Aug 26, 2011 at 13:19, John Fettig <john.fettig at gmail.com> wrote:
>>
>> When you are solving a
>> series of equations, where the nonzero pattern stays the same but the
>> values change, shouldn't it make sense to offer an option for AMG
>> solvers which changes the matrices used on the levels but does not
>> recompute the restriction/interpolating matrices?
>
> Smoothed aggregation is not a purely symbolic operation, it actually uses
> the matrix entries to compute the interpolation operator. Now if the matrix
> entries are not changing too quickly, the old interpolants might still be
> good, in which case it would be nice to only update the Galerkin coarse
> level operators.

Exactly, this would provide a nice intermediate between "build
everything anew" and "reuse everything".  From experimentation in
serial, it is a very useful option to have.

> With ML, there is a technical problem that we don't get the interpolation
> back in a PETSc Mat, so we can't use PETSc MatPtAP(). I don't know if they
> have a similar function that is callable by users, or another way to only
> update the Galerkin operators without redoing the smoothed aggregation.

There must be a way for them to do it.  In the version 5 guide, they write:

"In this fragment of code, the user defines the ML preconditioner, but
the preconditioner
is created only with the call ComputePreconditioner(). This may be
useful, for example,
when ML is used in conjunction with nonlinear solvers (like Nox [17]). Method
ReComputePreconditioner() can be used to recompute the preconditioner
using already
available information about the aggregates. ReComputePreconditioner()
reuses the already
computed tentative prolongator, then recomputes the smoothed
prolongators and the
other components of the hierarchy, like smoothers and coarse solver11."

Although they don't explain how it could be done in the "Advanced
usage" section, leaving your question unanswered.

John



More information about the petsc-dev mailing list