[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