<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br class="webkit-block-placeholder"></div>&nbsp;&nbsp; Yujie,<div><br class="webkit-block-placeholder"></div><div>&nbsp;&nbsp; &nbsp; I now understand the reason for your question. CG can be implemented with right, left or split preconditioner and in</div><div>ALL three cases it is still a symmetric implementation of CG! All give similar convergence rates.</div><div><br class="webkit-block-placeholder"></div><div>&nbsp;&nbsp; &nbsp;The largest effect of left, right or split is in stopping criteria; right preconditioning always uses the TRUE residual</div><div>norm to determine convergence || b - A x||, left preconditioning using || B(b - Ax) ||. You can use&nbsp;</div><div>-ksp_norm_type unpreconditioned &nbsp;with left preconditioner or natural norm. You can see the code KSPSolve_CG</div><div>for exact details.</div><div><br class="webkit-block-placeholder"></div><div>&nbsp;&nbsp; Barry</div><div><br class="webkit-block-placeholder"></div><div><br><div><div>On Jan 16, 2008, at 11:15 AM, Yujie wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Dear Lisandro:<br><br>From PETSc manual, I know KSPCG only supports left preconditioning. However, I want to know whether does this affect the performance of preconditioned CG? The main problem is that it should be better to generate a symmetric preconditioned operator for CG method. However, Left preconditioner should have some difficulty to get such operator? Do you have any testings about it regarding left, split and right preconditinoers and CG realization in PETSc?&nbsp;thanks&nbsp;a&nbsp;lot. <br> <br>Regards,<br>Yujie<br><br><div><span class="gmail_quote">On 1/16/08, <b class="gmail_sendername">Lisandro Dalcin</b> &lt;<a href="mailto:dalcinl@gmail.com">dalcinl@gmail.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; margin-left: 0.80ex; border-left-color: #cccccc; border-left-width: 1px; border-left-style: solid; padding-left: 1ex"> KSPCG only supports left preconditioning.<br><br>On 1/16/08, Yujie &lt;<a href="mailto:recrusader@gmail.com">recrusader@gmail.com</a>&gt; wrote:<br>&gt; hi, everyone<br>&gt;<br>&gt; I know there are three types of preconditioners, that is left, split and <br>&gt; right preconditioners? When I use CG method in PETSc, whether do I need to<br>&gt; consider select one type of preconditioner? Whether do different types<br>&gt; affect the performance of preconditioned CG? thanks a lot. <br>&gt;<br>&gt; Regards,<br>&gt; Yujie<br>&gt;<br><br><br>--<br>Lisandro Dalcín<br>---------------<br>Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)<br>Instituto de Desarrollo Tecnológico para la Industria Química (INTEC) <br>Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)<br>PTLC - Güemes 3450, (3000) Santa Fe, Argentina<br>Tel/Fax: +54-(0)342-451.1594<br><br></blockquote></div><br></blockquote></div><br></div></body></html>