[petsc-users] V-cycle multigrid with matrix shells

Sylvain Barbot sylbar.vainbot at gmail.com
Thu Oct 7 04:45:27 CDT 2010


Hi,

I am trying to implement the multigrid solver to solve a linear
inhomogeneous elliptic equation with non-constant coefficients in 3-D
with 3 degrees of freedom with matrix shells. The grid is structured
with non-uniform sampling. I insist on using matrix shells because of
memory limitations.

The direct solver gmres, or alike, gives very accurate solutions even
for large problems (say, with a grid of 256x256x256), but computation
is lengthy. I am hoping to get significant speedup using a multigrid
solver. It looks like the DMMG objects may provide all the tools
necessary to do so: smoother, restriction and interpolation. But
typically in my problems, I do not have an analytical expression for
the right-hand side, just a given forcing term in finest resolution
with high-frequency content (not easily subsampled). Also I do not
typically have any non-trivial first guess.

It looks the the default Petsc multi-grid solver starts from the
coarser grid and builds a solution with a finer and finer resolution
as levels increase. I would like to do the opposite, with the typical
smoothing of the residuals, then restriction, smoothing, restriction,
then direct solving at the coarsest level, then as many
interpolation-correction-smoothing as necessary to go back to the
finest level, the typical V cycle.

questions:
1) is it at all possible to specify this mode of operation, from the
finest to the coarser level, and back? Any examples out there?

2) is it readily possible to use matrix shells with DMMG? I imagine
the Jacobian matrix may simply be provided as a matrix shell. Is there
any examples of multi-grid methods with shell matrices online?

3) to deal with non-uniform sampling: can I provide the coordinates of
the finest grid with DASetCoordinates, then expect DMMG to provide the
subsampled coordinates at the coarser levels?

Thanks a lot in advance for any advice.
Best,
Sylvain Barbot


More information about the petsc-users mailing list