[petsc-users] Some clarification on PCMG

Aulisa, Eugenio eugenio.aulisa at ttu.edu
Fri Feb 19 08:55:43 CST 2016


Hi,

I would like a clarification how PCMG updates 
the residual on the level-l before restricting it to the level l-1
in the down-cycle.

In particular I would expect that what is projected down is the true-residual,
the one updated using Amat_l, however from what I see in my test it seams
to be the residual updated using Pmat_l.

My test is very simple:
When setting up  the ksp object on the l-level, in one case I use

 KSPSetOperators(_ksp_l, _Amat_l, _Pmat_l);

in the other case I use

KSPSetOperators(_ksp_l, _Pmat_l, _Pmat_l);

when I run my application I get exactly the same results for the preconditioned residual:

these are the very last 2 outputs:

with Amat,Pmat
 9 KSP preconditioned resid norm 2.939296481331e-16 true resid norm 1.460300485277e-02 ||r(i)||/||b|| 9.999999999999e-01

with Pmat, Pmat:
 9 KSP preconditioned resid norm 2.939296481331e-16 true resid norm 5.165834461813e-15 ||r(i)||/||b|| 3.537514719672e-13

Since Amat and Pmat are 2 different matrices, and PCMG does not seams to see any difference, 
the only explanation I gave  myself is that the residual projected down to the coarser level is the
the one updated using Pmat.

Now, if this is the case, is there any way I can use Amat_l to update the residual?

If this is not the case, and Amat_l is already used, 
do you have any other explanation why the results are identical?

Thanks,
Eugenio









Eugenio Aulisa

Department of Mathematics and Statistics,
Texas Tech University
Lubbock TX, 79409-1042
room: 226
http://www.math.ttu.edu/~eaulisa/
phone: (806) 834-6684
fax: (806) 742-1112





More information about the petsc-users mailing list