On Mon, Jul 5, 2010 at 3:22 PM, Thomas Witkowski <span dir="ltr">&lt;<a href="mailto:thomas.witkowski@tu-dresden.de">thomas.witkowski@tu-dresden.de</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;">
Hi,<br>
<br>
I&#39;ve some trouble with matrix values that are set by MatSetValues, but are missing in the final matrix. I can reduce the problem to a 75x75 matrix that is created on four processors. I create it quite simple with:<br>

<br>
MatCreateMPIAIJ(PETSC_COMM_WORLD, 12, 12, 75, 75, petscMatrix) on p0<br>
MatCreateMPIAIJ(PETSC_COMM_WORLD, 18, 18, 75, 75, petscMatrix) on p1<br>
MatCreateMPIAIJ(PETSC_COMM_WORLD, 18, 18, 75, 75, petscMatrix) on p2<br>
MatCreateMPIAIJ(PETSC_COMM_WORLD, 27, 27, 75, 75, petscMatrix) on p3<br>
<br>
On all processors, the values are set with the following command:<br>
<br>
MatSetValues(petscMatrix, 1, &amp;rowIndex, cols.size(), &amp;(cols[0]), &amp;(values[0]), ADD_VALUES);<br>
<br>
where rowIndex is an integer, cols is of type std::vector&lt;int&gt; and values if of type std::vector&lt;double&gt;. Before</blockquote><div><br></div><div>I do not think this is always kosher. std::vector&lt;&gt; may store values however it wants (perhaps in a</div>
<div>contiguous array). std::valarray&lt;&gt; I believe mandates a contiguous array, however even it does not</div><div>give you access to the explicit pointer (you have to use &amp;v[0] nonsense). Reasons to hate the STL.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"> MatSetValues is called, I run over the arrays and print all the entries that are added to the matrix. Finally,<br>

<br>
MatAssemblyBegin(petscMatrix, MAT_FINAL_ASSEMBLY);<br>
MatAssemblyEnd(petscMatrix, MAT_FINAL_ASSEMBLY);<br>
<br>
are called. To check the matrix, I use the option -mat_view_matlab. Okay, now some of the entries are missing and I&#39;ve absolute no idea what I did wrong (i.e. entry row 48-col 69, which is only once by rank 3).  What is the best way to debug the problem? I use petsc 3.0.0p11, which is compiled in debug mode. My code is also compiled in debug mode and valgrind does not report any errors. Thanks for any suggestions.</blockquote>
<div><br></div><div>MatAssemble and MatView after every insertion.</div><div><br></div><div>   Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><font color="#888888"><br>

Thomas<br>
<br>
</font></blockquote></div><br><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>