<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" id="owaParaStyle"></style>
</head>
<body fpstyle="1" ocsi="0">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;">
<div>Dear all,</div>
<div><br>
</div>
<div><br>
</div>
<div>I think I further pinpointed the problem to the PCPreSolve. Both mine, as well as Petsc's PCG call  PCPreSolve and enter the (pc->ops->presolve). But mine does not apply the presolve. </div>
<div><br>
</div>
<div>Do I need to activate the PCPreSolve manually when I have written a KSP that I've registered using KSPRegister?</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>thanks,</div>
<div>Vincent</div>
<div><br>
</div>
<br>
<div style="font-family: Times New Roman; color: #000000; font-size: 16px">
<hr tabindex="-1">
<div id="divRpF573946" style="direction: ltr;"><font face="Tahoma" size="2" color="#000000"><b>Von:</b> De Groof, Vincent Frans Maria<br>
<b>Gesendet:</b> Montag, 10. November 2014 17:57<br>
<b>An:</b> petsc-users@mcs.anl.gov<br>
<b>Betreff:</b> MatSolve in CG<br>
</font><br>
</div>
<div></div>
<div>
<div style="direction:ltr; font-family:Tahoma; color:#000000; font-size:10pt">Dear all,
<div><br>
</div>
<div><br>
</div>
<div>I am writing a few variations on the PCG algorithm. Starting with my own PCG implementation, I noticed that my routine is quite a bit slower (~20%). I think I tracked it down to the MatSolve calls in PCApply. I am using BDDC as the preconditioner.</div>
<div><br>
</div>
<div>In the Petsc PCG function, each PCApply calls the MatSolve 3 times. It also calls MatSolve once somewhere between calling KSPSolve and KSPSolve_CG (KSP_SetUp has been called before). So MatSolve is called 1+3*(# iterations) per KSPSolve. In my own PCG
 variation, the initial MatSolve is not called. But MatSolve is called 4 times in each iteration, so in total 4*(# iterations). </div>
<div><br>
</div>
<div>Where does this MatSolve in between KSPSolve and KSPSolve_CG come from? And how can I make my function use less MatSolve's?</div>
<div><br>
</div>
<div><br>
</div>
<div>I hope that I explained the problem clearly, and maybe this is a very trivial question.</div>
<div><br>
</div>
<div><br>
</div>
<div>kind regards,</div>
<div>Vincent</div>
</div>
</div>
</div>
</div>
</body>
</html>