ML's multigrid

Thomas Geenen geenen at gmail.com
Sun Mar 23 11:08:44 CDT 2008


thats right.
i must have overseen it since i used it before for ILU /cg type combinations 
and mumps.

thanks 
Thomas

On Sunday 23 March 2008 16:58, Barry Smith wrote:
>    Thomas,
>
>      It is possible there is an error in our PCSetUp_ML() but more
> likely
> there is a misunderstanding. If you call KSPSolve() repeatedly without
> calling KSPSetOperators() again then it uses the same matrix and
> preconditioner
> as for the previous solve (that is KSP does not know that you changed
> entries in the matrix). If you change the matrix you must call
> KSPSetOperators()
> again to get the new preconditioner being built before calling
> KSPSolve()
> again.
>
>     Barry
>
> On Mar 23, 2008, at 2:46 AM, Thomas Geenen wrote:
> > dear Petsc users,
> >
> > I am using the AMG from ML as a preconditioner to CG. I am looking
> > at the
> > scaling characteristics of different parts of the preconditioner
> > (some rough
> > timings). To this end I have put some timing calls in ml.c.
> > now when i run the code and the solver is called for the first time
> > i can see
> > that indeed the ML routines are called in particular PCSetUp_ML.
> > In this routine a considerable amount of time is spend in the
> > aggregation and
> > interpolation operator construction (as expected). However the
> > second time
> > the solver is called this routine is no longer called. This seems to
> > be
> > inconsistent with the concept of AMG where the coarse grids and
> > interpolation
> > operators have to be constructed again when the matrix has changed
> > (due to
> > changing material properties as a function of time for instance).
> > Destroying the preconditioner after each solve seems a waste of
> > resources
> > especially since in PCSetUp_ML , there are options to reuse
> > datastructures.
> > pc-setupcalled, reuse etc.
> >
> > are the aggregation and interpolation comstruction routines called
> > from a
> > different part in the code?
> > ML_Gen_MGHierarchy_UsingAggregation(ml_object,
> > 0,ML_INCREASING,agg_object);
> > seems to be called only from PCSetUp_ML.
> >
> > cheers
> > Thomas




More information about the petsc-users mailing list