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
