<div class="gmail_quote">On Sun, May 15, 2011 at 20:03, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Some people did an overhaul of DMGetInterpolation_DA_2D_Q1() a while ago either to handle new types of boundary conditions or to handle complicated mappings properly. The also may have worked on the very nice src/dm/examples/tests/ex36.c test code</blockquote>
</div><br><div>The error dates from revision 0. I don't know why it didn't show up in earlier tests with ex36.</div><div><br></div><div><div>changeset: 19004:5e10ad9d193b</div><div>tag: tip</div><div>user: Jed Brown <jed@59A2.org></div>
<div>date: Mon May 16 09:17:58 2011 +0200</div><div>files: src/dm/impls/da/dainterp.c</div><div>description:</div><div>Fix ancient indexing bug in DMGetInterpolation_DA_2D_Q1</div><div><br></div><div><br></div>
<div>diff --git a/src/dm/impls/da/dainterp.c b/src/dm/impls/da/dainterp.c</div><div>--- a/src/dm/impls/da/dainterp.c</div><div>+++ b/src/dm/impls/da/dainterp.c</div><div>@@ -343,7 +343,7 @@</div><div> cols[nc++] = col_shift + idx_c[col+m_ghost_c*dof]/dof;</div>
<div> }</div><div> /* one right and above */</div><div>- if (j_c*ratioi != j && i_c*ratioj != i) { </div><div>+ if (i_c*ratioi != i && j_c*ratioj != j) {</div><div> cols[nc++] = col_shift + idx_c[col+(m_ghost_c+1)*dof]/dof;</div>
<div> }</div><div> ierr = MatPreallocateSet(row,nc,cols,dnz,onz);CHKERRQ(ierr);</div></div>