On 10/4/06, <b class="gmail_sendername">Xiaoxu Wang</b> &lt;<a href="mailto:xiwang@dragon.rutgers.edu">xiwang@dragon.rutgers.edu</a>&gt; wrote:<div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Does it work as long as the global length is several times of the local<br>length?</blockquote><div><br>I think you are misunderstanding these terms. The local length is the<br>number of matrix rows assigned to the given process. The global length
<br>is the sum of the local lengths.<br><br>&nbsp;&nbsp; Matt<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Thanks<br>Xiaoxu<br><br>Matthew Knepley wrote:
<br><br>&gt; On 10/4/06, *Xiaoxu Wang* &lt;<a href="mailto:xiwang@dragon.rutgers.edu">xiwang@dragon.rutgers.edu</a><br>&gt; &lt;mailto:<a href="mailto:xiwang@dragon.rutgers.edu">xiwang@dragon.rutgers.edu</a>&gt;&gt; wrote:
<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Hi, Thank you for your help already. Can anybody tell me how to<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; set the<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; size of local matrix? Can I set it arbitrarily?<br>&gt;<br>&gt;<br>&gt; Yes, you can. If you also set the global size it must be consistent.
<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;Matt<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Xiaoxu<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Xiaoxu Wang wrote:<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; The error is at line 1023 of &quot; plog.c&quot;.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; ---------------<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; An unhandled exception of type '
System.NullReferenceException'<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; occurred in Unknown Module.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; Additional information: Object reference not set to an instance<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; of an<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; object.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; ----------------
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; The matrix I am trying to initialize is the stiffness matrix K of<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; finite element methods. Later the dynamical system is solved<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; as&nbsp;&nbsp;(I +<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; Dt*K) U(t+1) = U(t) + 
Dt.F(t) by calling KSPSolve. Any idea how<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; to set<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; the number of local rows?&nbsp;&nbsp;I am running the code on PC now, but want<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; to keep MatCreateMPIAIJ in it.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; Xiaoxu<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; ----- Original Message ----- From: &quot;Barry Smith&quot; &lt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; <a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a> &lt;mailto:<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>&gt;&gt;
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; To: &lt;<a href="mailto:petsc-users@mcs.anl.gov">petsc-users@mcs.anl.gov</a> &lt;mailto:<a href="mailto:petsc-users@mcs.anl.gov">petsc-users@mcs.anl.gov</a>&gt;&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; Sent: Tuesday, October 03, 2006 8:32 AM
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; Subject: Re: MatCreateMPIAIJ<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt; On Mon, 2 Oct 2006, Xiaoxu Wang wrote:<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&gt; Hi,
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I am a beginner on PETSC. This is my question about<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&gt; MatCreateMPIAIJ. I<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&gt; have a sparse matrix and only know the total number of
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; nonzeros each<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&gt; row. The<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&gt; number of local rows and the number of local columns has been<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; set to<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&gt; PETSC_DECIDE. Therefore I don't know the size of each portion
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; and it<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&gt; is hard<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&gt; to tell d_nnz and o_nnz. I use the total number of nunzeros as<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; d_nnz<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&gt; and get<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&gt; an allocation error.
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&nbsp;&nbsp; It would be helpful to know the exact error message:<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&gt;&nbsp;&nbsp;How to deal&nbsp;&nbsp;with&nbsp;&nbsp;this problem?&nbsp;&nbsp;Should&nbsp;&nbsp;I&nbsp;&nbsp;explicitly
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&gt; specify the number of local rows and the number of local<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; columns and<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&gt; calculate<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&gt; d_nnz and o_nnz? Or let PETSC decide the number of local rows and
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&gt; the number<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&gt; of local columns, and&nbsp;&nbsp;then use another function to get these<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&gt; values? Any<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&gt; other better solution?<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&nbsp;&nbsp; You should specifically set the number of local rows and columns<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt; and then<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt; compute the values of d_nnz and o_nnz. How you determine d_nnz and
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt; o_nnz is<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt; problem dependent and depends on what type of discretization<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; you are<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt; using:<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt; finite differences, elements etc.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&nbsp;&nbsp; Barry<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&gt; Thanks a lot,<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&gt; Xiaoxu<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&gt;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt; --<br>&gt; &quot;Failure has a thousand explanations. Success doesn't need one&quot; -- Sir<br>&gt; Alec Guiness<br><br><br></blockquote>
</div><br><br clear="all"><br>-- <br>&quot;Failure has a thousand explanations. Success doesn't need one&quot; -- Sir Alec Guiness