<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;">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>
</body>
</html>