<div class="gmail_quote">On Mon, Jul 30, 2012 at 4:06 PM, Michele Rosso <span dir="ltr"><<a href="mailto:mrosso@uci.edu" target="_blank">mrosso@uci.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<font face="Ubuntu">Hi,<br>
<br>
I am solving a variable coefficients Poisson equation with
periodic BCs.<br>
The equation is discretized by using the standard 5-points stencil
finite differencing scheme.<br>
I managed to solve the system successfully</font><font face="Ubuntu"> with the PCG method and now I would like to add<br>
a preconditioner to speed up the calculation. My idea is to use
the multigrid preconditioner.<br>
<br>
Example ex22f.F implements what I think I need. <br>
If I understand correctly example ex22f.F, the subroutines
"ComputeRHS" and "ComputeMatrix" define how the <br>
matrix and rhs-vector have to be computed at each level.<br>
In my case tough, both the jacobian and the rhs-vector cannot be
computed "analytically", that is, they depend on variables<br>
whose values are available only at the finest grid.<br>
<br>
How can I overcome this difficulty? <br></font></div></blockquote><div><br></div><div>Two possibilities:<br><br>1. homogenize on your own and rediscretize</div><div><br></div><div>2. use Galerkin coarse operators (possibly with algebraic multigrid)</div>
<div><br></div><div><br></div><div>Option 2 is much more convenient because it neverĀ </div><div><br></div><div>For geometric multigrid using DMDA, just use -pc_type mg -pc_mg_galerkin</div><div><br></div><div>For algebraic multigrid, use -pc_type gamg -pc_gamg_agg_nsmooths 1</div>
</div>