[petsc-dev] features of GAMG

Mark F. Adams mark.adams at columbia.edu
Sun Dec 25 14:02:36 CST 2011


Stefano,

I've looked at ksp/ksp/examples/tutorial/ex56 and the modification that I make to emin and emax seem to be essential and very useful, respectively.  But I am seeing something funny with Cheb.

Jed:  I'm seeing very little difference in convergence rates on ex56 when I use a first, second or fourth order Cheb smoother.  I've seen some cases where the final residual was slightly larger with a higher order smoother.  I think there is something wrong here ...

Also, I thought we had added something like -pc_mg_smooth to set the number of smoothing steps when you are using the same smoother for the up and down smoother.  I can not see a command for this.  I did '-help | grep smooth', and I tried a few things.  So to test this you need to manually fix the smoothing steps at about line 662 in gamg.c.

Mark

On Dec 3, 2011, at 1:03 PM, Stefano Zampini wrote:

> Mark,
> 
> I observe some strange behaviour in your gamg code: it always consider SA method either if I pass "-pc_gamg_type geo" by command line or using PCGAMGSetSolverType directly into my code. I put a printf of your variables m_type and m_method inside gamg.c and it always prints m_type="string I've passed" and m_method=2.
> 
> I added some code into gamg.c for setting KSP and PC for the smoother. I removed the define PETSC_GAMG_SMOOTHER and pass the correct value for PC to createProlongation function. Is this enough to mantain self-consistency of the code?
> 
> Early test cases suggest better convergenge rate by dropping the lines where you adapt emax and emin before their estimation, either with chebichev, or with richardson (using richardson factor 2/(emin+emax))
> 
> Moreover, if I call PCSetCoordinates with dim=3 it prints an error reporting "3d unsupported".
> 
> Regards,
> Stefano
> 
> 2011/11/30 Mark F. Adams <mark.adams at columbia.edu>
> Stefano,
> 
> You really need to tell a black/gray box AMG solver that you are solving a vector/step PDE.  For GAMG you simply have to set the block size:
> 
> ierr = MatSetBlockSize( mat, 2 or 3 );      CHKERRQ(ierr);
> 
> I'm not sure if HYPRE or ML is equipped to deal with this in the PETSc interface (I know the ML library can).
> 
> ML and GAMG use smoothed aggregation which is well suited for elasticity but to be optimal it needs the null space of the operator which is the 3 or 6 rigid body modes for elasticity.  GAMG has an interface where you can give it the coordinates of your vertices and it will create the rotation rigid body modes with this. If you do not give it coordinates then it will use only the translational RBMs and, in general, will not be as good but still a usable solver.
> 
> Mark
> 
> On Nov 30, 2011, at 12:25 PM, Stefano Zampini wrote:
> 
> > Hi,
> >
> > I'm trying different AMG (sequential) solvers as black-boxes preconditioners for almost incompressible elasticity in 3d with spectral elements; specifically, ML and HYPRE (both called from PETSc), but they don't provide good results (at least using them via the PETSc interface). I wish to test for new GAMG preconditioner from actual petsc-dev.
> >
> > I wish to test the solver either with essential boundary conditions on one face, or with pure neumann boundaries. Can you (I think Mark Adams is the one I'm talking with) give my some hints on the customization of the preconditioner?
> >
> > Regards,
> > --
> > Stefano
> 
> 
> 
> 
> -- 
> Stefano

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20111225/3427ecc0/attachment.html>


More information about the petsc-dev mailing list