ML's multigrid

Thomas Geenen geenen at gmail.com
Sun Mar 23 02:46:43 CDT 2008


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