<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>