<br><br>
<div class="gmail_quote">On Sun, Jul 12, 2009 at 5:41 PM, Barry Smith <span dir="ltr">&lt;<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>&gt;</span> wrote:<br>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote"><br> The manual page for MatLoad() and VecLoad() contain the definitions of those structs.</blockquote>
<div> </div>
<div>This pointer is great.</div>
<div> </div>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote"><span></span><br>  The file binary format is independent of parallel storage of the matrix so has no information about the &quot;diagonal&quot; and &quot;off-diagonal&quot; parts of the matrix. That is all determined when the binary file is read in.</blockquote>

<div> </div>
<div>That&#39;s exactly what I get confused with.</div>
<div> </div>
<div>Thank you very much,</div>
<div> </div>
<div>Yan</div>
<div> </div>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote"><span></span><font color="#888888"><br>  Barry</font> 
<div>
<div></div>
<div class="h5"><br><br><br>On Jul 12, 2009, at 3:30 PM, Ryan Yan wrote:<br><br>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote"><a href="http://www.mcs.anl.gov/petsc/petsc-2/snapshots/petsc-current/src/mat/examples/tutorials/ex5.c.html" target="_blank">http://www.mcs.anl.gov/petsc/petsc-2/snapshots/petsc-current/src/mat/examples/tutorials/ex5.c.html</a><br>
<br>Hi All,<br>I am tring to read through an example about PetscBinaryRead. It looks like the matrix is reading from a CRS matrix object descriptor &quot;fd1, or fd2&quot;.<br><br>I have difficulty of understand the line 50:<br>
+++++++++++++++++++++++++++++<br>50: PetscBinaryRead(fd2,(char *)header,4,PETSC_INT);<br>+++++++++++++++++++++++++++++<br>From the context, my guess is:<br>header[0] unknown<br><br>header[1] contains the info of how many rows of matrix stored on this processor<br>
<br>header[2] contains the info of how many global columns of the matrix<br><br>header[3] unknown<br><br>and line:<br>++++++++++++++++++++++++++++<br>86: PetscBinaryRead(fd1,ourlens,m,PETSC_INT);<br>101: PetscBinaryRead(fd1,mycols,ourlens[i],PETSC_INT);<br>
+++++++++++++++++++++++++++++++<br>From the context, my guess is:<br>ourlens[i] stores the length of the ith local row for the &quot;local&quot; portion of the matrix.<br><br>mycols is an array storing the column indices of the nonzero entries of the ith local row for the &quot;local&quot; portion of the matrix(include diagonal and off diagonal).<br>
<br><br><br><br><br>Is there any pointer to the definition of the struct descriptor.<br><br>Can anyone confirm my guess and provide a pointer or example?  How does the PetscBinaryRead() switch smoothly between reading different informations with the same parameter list.<br>
<br>Thank you very much,<br><br>Yan<br><br></blockquote><br></div></div></blockquote></div><br>