<div dir="ltr"><div class="gmail_extra">On Wed, May 8, 2013 at 3:33 AM, Frederik Treue <span dir="ltr"><<a href="mailto:frtr@fysik.dtu.dk" target="_blank">frtr@fysik.dtu.dk</a>></span> wrote:<br><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Tue, 2013-05-07 at 09:23 -0500, Matthew Knepley wrote:<br>
> On Tue, May 7, 2013 at 9:20 AM, Frederik Treue <<a href="mailto:frtr@fysik.dtu.dk">frtr@fysik.dtu.dk</a>><br>
> wrote:<br>
>         Hi,<br>
><br>
>         I may be overlooking something very obvious here, but:<br>
><br>
>         I'm trying to solve a convection-diffusion problem. The method<br>
>         I use<br>
>         requires me to solve some Helmholtz and Poisson equations,<br>
>         which is the<br>
>         time consuming part. In order to reduce this time, I try to<br>
>         use<br>
>         preconditioners. However, no matter which preconditioner I use<br>
>         (I've<br>
>         tried PCJACOBI,PCBJACOBI,PCPBJACOBI,PCMG with 2 levels,<br>
>         galerkin) it<br>
>         introduces errors along the edges of the local domains when<br>
>         using<br>
>         multiple processors. These errors are small, but they don't<br>
>         converge to<br>
>         0 as a function of resolution. I have checked with PCNONE,<br>
>         which<br>
>         eliminates the problem, but becomes unbearably slow.<br>
><br>
>         Is this somehow unavoidable? Or am I making some silly<br>
>         mistake? The code<br>
>         is somewhat complicated, but if desired, I can try to cook up<br>
>         a<br>
>         proof-of-(non)concept.<br>
><br>
><br>
> You have made a mistake somewhere, probably in your parallel function<br>
> evaluation.<br>
<br>
But how can this be? If it works without a preconditioner (which it<br>
does), doesn't that prove that the operators are correctly implemented?<br>
Or am I missing something something here?</blockquote><div><br></div><div>Here is my reasoning:</div><div><br></div><div>1) Examples work for you</div><div><br></div><div>2) Jacobi is identical in serial and parallel</div>
<div><br></div><div>3) This part of PETSc is tested by thousands of people every day, not to mention all</div><div>    regression tests, and has been stable for a decade at least.</div><div><br></div><div>Thus my conclusion is that you have an error in the parallel residual evaluation.</div>
<div><br></div><div>My advice is to take a working example and slowly change it to get to your equation.</div><div><br></div><div>   Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class="HOEnZb"><font color="#888888"><br>
/Frederik Treue<br>
<br>
<br>
<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
-- Norbert Wiener
</div></div>