I am not sure why you would need to access regions outside your local piece. For instance,<div>consider how we treat boundary conditions. This is access to a fixed index, but we check on</div><div>each process</div><div><br>
</div><div>  if (i == i_bc) { &lt;apply BC&gt; }</div><div><br></div><div>Can&#39;t you do the same thing with your extra rows?</div><div><br></div><div>   Matt</div><div><br></div><div>Well, my story is a bit complicated. </div>
<div>Now that you asked, I would like to have your opinion too. </div><div>So, what I am trying to to is to use STAR stenctil to descretize and solve Poisson type equations. So far so good, I can take care of the regular nodes with 3D DA&#39;s and width=1. The problems rises for some nodes that are neighboring solid boundaries. </div>
<div>Those nodes, do not follow Poisson equation anymore and they just obey some interpolation equations which might need nodes in the BOX stencil of width=3. </div><div>I am restricted by memory requirements, and try to avoid creating my matrix using a 3D DA BOX_STENCIL and width=3. That would cost a lot and soon I need to launch simulations with O(10^8) grid points. </div>
<div>So, I thought, I create my matrix using STAR_STENCIL and width=1 and just manually insert the new nonzeros into the matrix. </div><div>Since the number of those nodes is not that many, I thought it would be a good approach. </div>
<div>Thanks if you think you could guide me here too. </div><div>Thanks for your help too, </div><div>Mohamad</div><div><br></div><div><br></div><br><div class="gmail_quote">On Fri, Dec 10, 2010 at 5:01 PM, Matthew Knepley <span dir="ltr">&lt;<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div><div></div><div class="h5">On Sat, Dec 11, 2010 at 12:56 AM, Jed Brown <span dir="ltr">&lt;<a href="mailto:jed@59a2.org" target="_blank">jed@59a2.org</a>&gt;</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">
<div><div class="gmail_quote">On Sat, Dec 11, 2010 at 01:53, Matthew Knepley <span dir="ltr">&lt;<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div>What are you guys talking about? He is asking (&quot;global index for any given 3-d index&quot;) for a map</div><div><br></div><div>  (i, j, k) --&gt;  ((k*N + j)*M + i)*C + c</div><div><br>
</div><div>I can&#39;t imagine what you are searching for? The process which owns a given index does not involve a search.</div></blockquote></div><br></div><div>The &quot;global index&quot; is in the &quot;PETSc ordering&quot;.  He wants this index for an arbitrary (i,j,k) which are not in the ghosted patch of the current process.  You either have to store the full mapping, on search lx,ly,lz to locate the owner, then compute the index relative to that process.  I don&#39;t think that code exists in PETSc.  It wouldn&#39;t be too hard to write, but it&#39;s not the most beautiful thing to do.</div>


</blockquote></div><br></div></div>I am not sure why you would need to access regions outside your local piece. For instance,<div>consider how we treat boundary conditions. This is access to a fixed index, but we check on</div>
<div>
each process</div><div><br></div><div>  if (i == i_bc) { &lt;apply BC&gt; }</div><div><br></div><div>Can&#39;t you do the same thing with your extra rows?</div><div><br></div><div>   Matt<div class="im"><br clear="all"><br>
-- <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<br>
</div></div>
</blockquote></div><br>