<div dir="ltr"><div>Hi Matt!</div><div><br></div><div>We deal with this same issue in PyClaw/PetClaw, I think Amal could do a much better job describing the approach (or copying a relevant section from her Master&#39;s thesis) we take to avoid copying, but the idea is to follow the native PETSc ordering with interleaved degrees-of-freedom to keep the most compatibility with the other DA calls.</div>
<div><br></div><div>A</div><br><div class="gmail_quote">On Mon, Jul 4, 2011 at 10:19 PM, Matthew Emmett <span dir="ltr">&lt;<a href="mailto:memmett@unc.edu">memmett@unc.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Mon, Jul 4, 2011 at 2:52 PM, Lisandro Dalcin &lt;<a href="mailto:dalcinl@gmail.com">dalcinl@gmail.com</a>&gt; wrote:<br>
&gt; No, sorry... It has nothing to do with periodicity... It is actually a<br>
&gt; C/Fortran ordering issue I need to fix...<br>
<br>
</div>Ah, I see.  Thanks for looking into this so quickly.  Let me know if<br>
there is anything I can do on my end to help.  I will poke around the<br>
code for petsc4py, but you obviously know it better than I do.<br>
<div class="im"><br>
&gt; In Fortran 90, it seems you index a DA Vec array as A[dof,x,y,z]... ,<br>
&gt; However, I think that for Python we should follow a more C-ish<br>
&gt; indexing A[x,y,z,dof]. Or we could do it like PETSc in C, that is<br>
&gt; A[z,y,x,dof] (wich is the transpose of the Fortran way) but it is<br>
&gt; counter-intuitive to C (and likely Python) programmers ...<br>
&gt;<br>
&gt; What do others think about this?<br>
<br>
</div>I think A[x,y,z,dof] is probably the most intuitive for Python.<br>
<br>
Matt<br>
</blockquote></div><br></div>