<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">Fangbo :<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><br clear="all"><div>1.   My question is how can I define matices on small communicators (not MPI_COMM_WORLD)?</div><div>I tried something like this but does not work:</div><div><br></div><div><div><span style="background-color:rgb(255,255,255)"><font color="#0000ff">    for (int i=0; i<6; i++) {</font></span></div><div><span style="background-color:rgb(255,255,255)"><font color="#0000ff">          MatCreate(comm1,&general_detM[<wbr>i]);</font></span></div><div><span style="color:rgb(0,0,255)">          MatSetSizes(general_detM[i],<wbr>PETSC_DECIDE,PETSC_DECIDE, General_Dofs, General_Dofs);</span><br></div><div><span style="background-color:rgb(255,255,255)"><font color="#0000ff">          MatSetFromOptions(general_<wbr>detM[i]);</font></span></div><div><span style="background-color:rgb(255,255,255)"><font color="#0000ff">          MatMPIAIJSetPreallocation(<wbr>general_detM[i],300,NULL,300,<wbr>NULL);</font></span></div><div><span style="background-color:rgb(255,255,255)"><font color="#0000ff">          MatSeqAIJSetPreallocation(<wbr>general_detM[i],600,NULL);</font></span></div><div><span style="background-color:rgb(255,255,255)"><font color="#0000ff">          MatSetOption(general_detM[i], MAT_NEW_NONZERO_ALLOCATION_<wbr>ERR, PETSC_FALSE);   //to extend the preallocatted memory for more values</font></span></div><div><span style="background-color:rgb(255,255,255)"><font color="#0000ff">    }</font></span></div></div><div><span style="background-color:rgb(255,255,255)"><font color="#0000ff"><br></font></span></div><div><span style="background-color:rgb(255,255,255)"><font color="#000000">If I change </font></span><span style="color:rgb(0,0,255)">MatCreate(comm1,&<wbr>general_detM[i]) </span><font color="#000000">to</font><span style="color:rgb(0,0,255)"> </span><span style="color:rgb(0,0,255)">MatCreate(MPI_COMM_WORLD,&<wbr>general_detM[i]), </span><font color="#000000">the code works.</font></div><div><font color="#000000"><br></font></div></div></div></blockquote><div>Only processors that belong to comm1 can call this block of code. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div><font color="#000000"></font></div><div><br></div><div><font color="#000000">2. Also, there is one more question, how can I use MatSetValues to insert values to a matrix not based on MPI_COMM_WORLD?</font></div></div></div></blockquote><div>Again, processors in comm1 can call  <span style="color:rgb(0,0,0)">MatSetValues().</span></div><div><span style="color:rgb(0,0,0)"><br></span></div><div><span style="color:rgb(0,0,0)">Hong</span></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><span class="gmail-HOEnZb"><font color="#888888"><div class="gmail-m_-1505495678846792184gmail_signature"><div dir="ltr"><div><div dir="ltr"></div></div></div></div>
</font></span></div>
</blockquote></div><br></div></div>