[Trilinos-Users] [EXTERNAL] Recycling Conjugate Gradient (RCG) for poisson problem

Bart Janssens bart.janssens at lid.kviv.be
Thu Nov 29 12:01:10 MST 2012

On Mon, Nov 26, 2012 at 11:26 PM, Parks, Michael L <mlparks at sandia.gov> wrote:
>    If you have all the RHS vectors available simultaneously (I'm assuming you do not), using block CG might be most efficient. If the RHS vectors change slowly from one to the next, you can use the solution to the previous solve as the initial guess for the next solve. If neither of these are the case, Recycling CG is a good choice. I've used RCG preconditioned with ML before with no issues. RCG is meant to solve sequential linear systems. In particular, for the first system in the sequence, RCG should give exactly the same convergence behavior as CG. If you're not getting that behavior, there is an error somewhere.

Hi Mike,

Thanks for your comments, I investigated a little further, and it
seems that RCG doesn't like right preconditioning. I switched to left,
and it works now. This behavior can be verified by modifying
belos/epetra/example/BlockCG/BlockPrecCGEpetraExFile.cpp to use RCG
instead of BlockCG and use setRightPrec instead of setLeftPrec. With
right preconditioning, BlockCG still works, but RCG goes from 8 to
1300 iterations.



More information about the Trilinos-Users mailing list