<div dir="ltr">Look at src/snes/examples/tutorials/ex28.c for an example usage, or src/mat/examples/tests/ex159.c for a more advanced/manual test that demonstrates recursive nesting.<div class="gmail_extra"><br><br><div class="gmail_quote">
On Sun, Feb 17, 2013 at 6:56 AM, Hui Zhang <span dir="ltr"><<a href="mailto:mike.hui.zhang@hotmail.com" target="_blank">mike.hui.zhang@hotmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I want to use MatGetLocalSubMatrix for assembly purpose.<br>
<br>
PetscErrorCode  MatGetLocalSubMatrix(Mat mat,IS isrow,IS iscol,Mat *submat)<br>
<br>
I want to get a submat shared by some (not all) of the processes that share the mat.<br>
<br>
Some questions.<br>
<br>
1.  Shall I create isrow and iscol shared by the processes that will share the submat?<br></blockquote><div><br></div><div style>The submat is not guaranteed to be collective (this depends on the matrix format), but it does always support MatSetValuesLocal(). The isrow and iscol are _local_ so they should use PETSC_COMM_SELF.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
2.  The manual says the submat supports MatSetValuesLocal.  Is the LocalToGlobalMapping already defined for submat, or I need to define it by myself?<br></blockquote><div><br></div><div style>It is induced by the LocalToGlobalMapping of the coupled (parent) matrix and the selected local indices.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
    If it is already defined, is it derived from the ltog of the mat such that for this processor the local numbering of the submat are in the same order<br>
<br>
    as the local numbering for the mat?<br></blockquote><div><br></div><div style>The local numbering is with respect to the submat. (This is necessary, otherwise there would be no way to apply this recursively and you would have to keep track of the index mapping. Keeping the submat indexing as private as possible was a key motivation for this interface.)</div>
</div></div></div>