On Fri, Jun 10, 2011 at 3:16 PM, Alan Wei <span dir="ltr">&lt;<a href="mailto:zhenglun.wei@gmail.com">zhenglun.wei@gmail.com</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;">
ooops, sorry, here it is.<br></blockquote><div> </div><div>You did not pass a valid communicator to PetscVIewerASCIIOpen(). Use PETSC_COMM_WORLD.</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;">
^_^<br><font color="#888888"><br>Alan</font><div><div></div><div class="h5"><br><br><div class="gmail_quote">On Fri, Jun 10, 2011 at 3:09 PM, Matthew Knepley <span dir="ltr">&lt;<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex"><div>On Fri, Jun 10, 2011 at 3:05 PM,  <span dir="ltr">&lt;<a href="mailto:zhenglun.wei@gmail.com" target="_blank">zhenglun.wei@gmail.com</a>&gt;</span> wrote:<br>

</div><div class="gmail_quote"><div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">
Dear Matt,<br>  Following your suggestions, I modified the VecView_VTK in /src/ksp/ksp/example/tutorial/ex29.c to <br><br>  PetscFunctionBegin;<br>  PetscViewerASCIIOpen(comm, filename, &amp;viewer);<br>  PetscViewerSetFormat(viewer, PETSC_VIEWER_ASCII_MATLAB);<br>


</blockquote><div><br></div></div><div>I told you to use ASCII_VTK, not ASCII_MATLAB.</div><div><div> </div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">

  DMView(x, viewer);<br>
  VecView(x, PETSC_VIEWER_STDOUT_WORLD);<br>  PetscViewerDestroy(&amp;viewer);<br>  PetscFunctionReturn(0);<br><br>  However, I always give me some error. Could you please briefly check if there is any obvious coding problem here.<br>


</blockquote><div><br></div></div><div>How can I possibly know what went wrong if you do not send the ENTIRE error message.</div><div><br></div><div>   Matt</div><div><div></div><div><div> </div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">


thanks,<br>Alan<div><br><br>On , Matthew Knepley &lt;<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>&gt; wrote:<br>&gt; On Thu, Jun 9, 2011 at 6:18 PM, Matthew Knepley <a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>&gt; wrote:<br>


&gt; <br>&gt; On Thu, Jun 9, 2011 at 6:01 PM,  <a href="mailto:zhenglun.wei@gmail.com" target="_blank">zhenglun.wei@gmail.com</a>&gt; wrote:<br>&gt; <br>&gt; <br>&gt; Dear Sir/Madam,<br>&gt;     I&#39;m still studying on the ex29 of /src/ksp/ksp/example/tutorial. Before I met a problem on VecView_VTK in parallel computation. I&#39;m trying to modify it in order to output some data from the computation. <br>


&gt; <br>&gt; <br>&gt; <br>&gt; <br>&gt; Here is a better answer. If you want output, throw away this old function which is broken, and use<br>&gt; <br>&gt; <br>&gt;   PetscViewerASCIIOpen()<br>&gt;   PetscViewerASCIISetFormat(PETSC_VIEWER_ASCII_VTK)<br>


&gt; <br>&gt;   DMView()<br>&gt;   VecView()<br>&gt;   PetscViewerDestroy()<br>&gt; <br>&gt; <br>&gt;     Thanks,<br>&gt; <br>&gt; <br>&gt;        Matt<br>&gt;  <br>&gt; <br>&gt; 1) My  first questions is that what does this section do in VecView_VTK:<br>


&gt; <br>&gt; 272:   MPI_Comm_rank(comm, &amp;rank);<br>&gt; <br>&gt; 273:   MPI_Comm_size(comm, &amp;size);<br>&gt; 274:   MPI_Reduce(&amp;n, &amp;maxn, 1, MPIU_INT, MPI_MAX, 0, comm);<br>&gt; <br>&gt; 275:   tag  = ((PetscObject) viewer)-&gt;tag;<br>


&gt; 276:   if (!rank) {<br>&gt; 277:     PetscMalloc((maxn+1) * sizeof(PetscScalar), &amp;values);<br></div>&gt; 278:     for(i = 0; i  279:       PetscViewerASCIIPrintf(viewer, &quot;%G\n&quot;, PetscRealPart(array[i]));<br>


&gt; <br>&gt; <br>&gt; 280:     }<br>&gt; 281:     for(p = 1; p  282:       MPI_Recv(values, (PetscMPIInt) n, MPIU_SCALAR, p, tag, comm, &amp;status);<div><br>&gt; 283:       MPI_Get_count(&amp;status, MPIU_SCALAR, &amp;nn);<br>


&gt; 284:       for(i = 0; i  <br>&gt; <br></div><div><div></div><div>&gt; 285:         PetscViewerASCIIPrintf(viewer, &quot;%G\n&quot;, PetscRealPart(array[i]));<br>&gt; 286:       }<br>&gt; 287:     }<br>&gt; 288:     PetscFree(values);<br>


&gt; 289:   } else {<br>&gt; 290:     MPI_Send(array, n, MPIU_SCALAR, 0, tag, comm);<br>&gt; <br>&gt; <br>&gt; 291:   }<br>&gt; <br>&gt;     What I understand is: it gather all the data from different process in parallel computation, and output it to the &#39;viewer&#39;. I comment out everything in VecView_VTK except this part, there is no error message coming up in my parallel computation so far. <br>


&gt; <br>&gt; <br>&gt; <br>&gt; 2) however, I really don&#39;t know how did it split the domain for parallel computation. For example, if I use 4 processes, is the domain split like:<br>&gt; <br>&gt; <br>&gt; The DMDA describes the domain splitting.<br>


&gt; <br>&gt; <br>&gt; <br>&gt; <br>&gt;    Matt<br>&gt;  <br>&gt;  a) <br>&gt;                |<br>&gt;        0      |       1  <br>&gt;                |<br>&gt; <br>&gt; <br>&gt; ---------------|--------------<br>&gt;                | <br>


&gt;        2      |       3<br>&gt;                |<br>&gt; <br>&gt;  b) <br>&gt;                |<br>&gt;        0      |       2  <br>&gt;                |<br>&gt; ---------------|--------------<br>&gt;                | <br>


&gt; <br>&gt; <br>&gt;        1      |       3<br>&gt;                |<br>&gt; <br>&gt;  c) <br>&gt;       |     |    |      |<br>&gt;       |     |    |      |<br>&gt;    0 |     |  2 |     |<br>&gt;       |  1 |     |  3 |<br>


&gt;       |     |     |     |<br>&gt;       |     |     |     |<br>&gt; <br>&gt; <br>&gt; <br>&gt; d)<br>&gt;           0<br>&gt; ------------------------<br>&gt;           1<br>&gt; ------------------------<br>&gt;           2<br>


&gt; ------------------------<br>&gt;           3<br>&gt; <br>&gt; thanks in advance,<br>&gt; Alan<br>&gt; <br>&gt; <br>&gt; <br>&gt; <br>&gt; -- <br>&gt; What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>


&gt; -- Norbert Wiener<br>&gt; <br>&gt; <br>&gt; <br>&gt; <br>&gt; -- <br>&gt; What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>


&gt; -- Norbert Wiener<br>&gt;</div></div></blockquote></div></div></div><div><div></div><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>
</div></div></blockquote></div><br>
</div></div></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>