<div dir="ltr">On Fri, Oct 11, 2013 at 8:09 AM, Bishesh Khanal <span dir="ltr"><<a href="mailto:bisheshkh@gmail.com" target="_blank">bisheshkh@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div><div>Dear all,<br></div>By default, dmda puts all dof at a given node logically in consecutive order. The corresponding vectors and matrices created also follow this order. What should I do to change it so that it puts all the grid nodes for a 1st dof consecutively, then do the same for 2nd dof and so on. I also want the same behavior for the matrix it creates so that the rows corresponding to a particular dof are put in a consecutive manner instead of interleaving different dofs.<br>
</div></div></blockquote><div><br></div><div>What do you really want to accomplish? This ordering is disastrous for cache architectures.</div><div><br></div><div>1) If you want segregated solves, use PCFIELDSPLIT.</div><div>
<br></div><div>2) If you want to mess around with a single field, use VecStrideGather/Scatter(): <a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Vec/VecStrideGather.html">http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Vec/VecStrideGather.html</a></div>
<div><br></div><div>  Thanks,</div><div><br></div><div>     Matt</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr"><div></div>Thanks,<br>Bishesh<br></div>
</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>