<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Tue, Nov 20, 2018 at 11:41 AM Jared Crean via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov">petsc-users@mcs.anl.gov</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
<br>
   What is the difference between MAG_IGNORE_OFF_PROC_ENTRIES and <br>
MAT_NO_OFF_PROC_ENTRIES?  The docs describe the first one as dropping <br>
off proc entries, and the second one talks about avoiding reductions in <br>
MatAssembly routines.  If I have a matrix where each process only <br>
assembles into the local part, should I set one or both of the flags?<br></blockquote><div><br></div><div>I believe they are operating in different places. IGNORE_OFF_PROC_ENTRIES is used in MatSetValues(),</div><div>where any values not owned by this process is ignored instead of put in the stash. However, MatAssemblyBegin()</div><div>still does a reduction even if stashes are empty.  NO_OFF_PROC_ENTRIES tells AssemblyBegin() to skip</div><div>the reduction and do no communication at all. If you have a purely local matrix, then both make sense.</div><div><br></div><div>  Thanks,</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">
     Jared Crean</blockquote></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>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><br></div><div><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div></div></div></div>