On Wed, May 5, 2010 at 1:17 PM, Li, Zhisong (lizs) <span dir="ltr">&lt;<a href="mailto:lizs@mail.uc.edu">lizs@mail.uc.edu</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 temporarily remove all the file opening/writing operations and found that it&#39;s probably &quot;DAVecGetArray()&quot; that&#39;s causing the trouble when run on 2 processors. It looks okay when in serial processing.<br>

<br>
I don&#39;t use VecView() at all, as X-display doesn&#39;t function well for parallel processing.<br></blockquote><div><br></div><div>VecView() has nothing to do with X. It is the generic output function for Vecs. Please consult the manual.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
I also tried to add these lines to first map the global vector xx to a newly created global vector x , before I scatter x to y:<br>
<br>
       DACreateNaturalVector(da, &amp;x);<br>
       DAGlobalToNaturalBegin(da, xx,INSERT_VALUES, x);<br>
       DAGlobalToNaturalEnd(da, xx,INSERT_VALUES, x);<br>
<br>
But this doesn&#39;t help.<br>
<br>
The error message:<br>
<br>
[1]PETSC ERROR: --------------------- Error Message ------------------------------------<br>
[1]PETSC ERROR: Arguments are incompatible!<br>
[1]PETSC ERROR: Vector local size 0 is not compatible with DA local sizes 4284 4437<br>
!<br></blockquote><div><br></div><div>This is your problem. The Vec you pass into DAVecGetArray() does not actually come from</div><div>the DA at all, and in fact has size 0. You can get properly sized Vecs using DAGetGlobalVector().</div>
<div>What Vec are you trying to access (since it obviously cannot have valid values in it)?</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;">

[1]PETSC ERROR: ------------------------------------------------------------------------<br>
[1]PETSC ERROR: Petsc Release Version 3.1.0, Patch 1, Thu Apr  8 14:16:50 CDT 2010<br>
[1]PETSC ERROR: See docs/changes/index.html for recent updates.<br>
[1]PETSC ERROR: See docs/faq.html for hints about trouble shooting.<br>
[1]PETSC ERROR: See docs/index.html for manual pages.<br>
[1]PETSC ERROR: ------------------------------------------------------------------------<br>
[1]PETSC ERROR: ./ex7 on a linux-gnu named custard by verhoff Wed May  5 14:13:17 2010<br>
[1]PETSC ERROR: Libraries linked from /home/verhoff/petsc/linux-gnu-c-debug/lib<br>
[1]PETSC ERROR: Configure run at Tue Apr 27 11:40:02 2010<br>
[1]PETSC ERROR: Configure options --download-c-blas-lapack=1 --with-cc=gcc --download-mpich=1<br>
[1]PETSC ERROR: ------------------------------------------------------------------------<br>
[1]PETSC ERROR: DAVecGetArray() line 53 in src/dm/da/src/dagetarray.c<br>
[1]PETSC ERROR: --------------------- Error Message ------------------------------------<br>
[1]PETSC ERROR: Arguments are incompatible!<br>
[1]PETSC ERROR: Vector local size 0 is not compatible with DA local sizes 4284 4437<br>
!<br>
[1]PETSC ERROR: ------------------------------------------------------------------------<br>
[1]PETSC ERROR: Petsc Release Version 3.1.0, Patch 1, Thu Apr  8 14:16:50 CDT 2010<br>
[1]PETSC ERROR: See docs/changes/index.html for recent updates.<br>
[1]PETSC ERROR: See docs/faq.html for hints about trouble shooting.<br>
[1]PETSC ERROR: See docs/index.html for manual pages.<br>
[1]PETSC ERROR: ------------------------------------------------------------------------<br>
[1]PETSC ERROR: ./ex7 on a linux-gnu named custard by verhoff Wed May  5 14:13:17 2010<br>
[1]PETSC ERROR: Libraries linked from /home/verhoff/petsc/linux-gnu-c-debug/lib<br>
[1]PETSC ERROR: Configure run at Tue Apr 27 11:40:02 2010<br>
[1]PETSC ERROR: Configure options --download-c-blas-lapack=1 --with-cc=gcc --download-mpich=1<br>
[1]PETSC ERROR: ------------------------------------------------------------------------<br>
[1]PETSC ERROR: DAVecRestoreArray() line 108 in src/dm/da/src/dagetarray.c<br>
[0]PETSC ERROR: --------------------- Error Message ------------------------------------<br>
[0]PETSC ERROR: Arguments are incompatible!<br>
[0]PETSC ERROR: Vector local size 8721 is not compatible with DA local sizes 4437 4590<br>
!<br>
[0]PETSC ERROR: ------------------------------------------------------------------------<br>
[0]PETSC ERROR: Petsc Release Version 3.1.0, Patch 1, Thu Apr  8 14:16:50 CDT 2010<br>
[0]PETSC ERROR: See docs/changes/index.html for recent updates.<br>
[0]PETSC ERROR: See docs/faq.html for hints about trouble shooting.<br>
[0]PETSC ERROR: See docs/index.html for manual pages.<br>
[0]PETSC ERROR: ------------------------------------------------------------------------<br>
[0]PETSC ERROR: ./ex7 on a linux-gnu named custard by verhoff Wed May  5 14:13:17 2010<br>
[0]PETSC ERROR: Libraries linked from /home/verhoff/petsc/linux-gnu-c-debug/lib<br>
[0]PETSC ERROR: Configure run at Tue Apr 27 11:40:02 2010<br>
[0]PETSC ERROR: Configure options --download-c-blas-lapack=1 --with-cc=gcc --download-mpich=1<br>
[0]PETSC ERROR: ------------------------------------------------------------------------<br>
[0]PETSC ERROR: DAVecGetArray() line 53 in src/dm/da/src/dagetarray.c<br>
[0]PETSC ERROR: --------------------- Error Message ------------------------------------<br>
[0]PETSC ERROR: Arguments are incompatible!<br>
[0]PETSC ERROR: Vector local size 8721 is not compatible with DA local sizes 4437 4590<br>
!<br>
[0]PETSC ERROR: ------------------------------------------------------------------------<br>
[0]PETSC ERROR: Petsc Release Version 3.1.0, Patch 1, Thu Apr  8 14:16:50 CDT 2010<br>
[0]PETSC ERROR: See docs/changes/index.html for recent updates.<br>
[0]PETSC ERROR: See docs/faq.html for hints about trouble shooting.<br>
[0]PETSC ERROR: See docs/index.html for manual pages.<br>
[0]PETSC ERROR: ------------------------------------------------------------------------<br>
[0]PETSC ERROR: ./ex7 on a linux-gnu named custard by verhoff Wed May  5 14:13:17 2010<br>
[0]PETSC ERROR: Libraries linked from /home/verhoff/petsc/linux-gnu-c-debug/lib<br>
[0]PETSC ERROR: Configure run at Tue Apr 27 11:40:02 2010<br>
[0]PETSC ERROR: Configure options --download-c-blas-lapack=1 --with-cc=gcc --download-mpich=1<br>
[0]PETSC ERROR: ------------------------------------------------------------------------<br>
[0]PETSC ERROR: DAVecRestoreArray() line 108 in src/dm/da/src/dagetarray.c<br>
<br>
<br>
Thanks,<br>
<br>
Regards,<br>
<br>
Zhisong Li<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
&gt; Hi,<br>
&gt;<br>
&gt; I want to setup a function in the main function to save the data to a file.<br>
&gt; For example suppose the vector x in ts/tutorials/ex7 consists of 3 DOF as<br>
&gt;<br>
&gt; typedef struct {<br>
&gt;    PetscScalar u, v, p;<br>
&gt;    } Field;<br>
&gt;<br>
&gt; I first followed the advised method to collect all values from a parallel<br>
&gt; vector into a vector on the 0th processor:<br>
&gt;<br>
&gt;        VecScatterCreateToZero(x, &amp;scatter, &amp;y);<br>
&gt;        VecScatterBegin(scatter,x,y,INSERT_VALUES,SCATTER_FORWARD);<br>
&gt;        VecScatterEnd(scatter,x,y,INSERT_VALUES,SCATTER_FORWARD);<br>
&gt;        VecScatterDestroy(scatter);<br>
&gt;<br>
&gt; and then use<br>
&gt;        Field  **z;<br>
&gt;        DAVecGetArray(da, y, &amp;z);<br>
&gt;<br>
&gt; and<br>
&gt;      PetscViewerASCIIOpen(comm,&quot;./result.txt&quot;,&amp;viewer);<br>
&gt;      PetscViewerASCIIPrintf(viewer, &quot;%G &quot;, &amp;z[j][i].u );<br>
&gt;<br>
&gt; to finish. But I always either meet error for the line &quot;DAVecGetArray(da,<br>
&gt; y, &amp;z);&quot; or save a file of all extremely small values(e.g. 8.652e-317),<br>
&gt; which is obviously wrong. So what is the correct way to do this? Where can I<br>
&gt; find a similar example to follow?<br>
&gt;<br>
<br>
What error? This is correct way to do it, if you do not just use VecView().<br>
<br>
   Matt<br>
<br>
<br>
&gt; I also wonder if &quot;DAGetGlobalVector( )&quot; will do an equal job to collect<br>
&gt; parallel values?<br>
&gt;<br>
&gt;<br>
&gt; Thank you.<br>
&gt;<br>
&gt;<br>
&gt; Best Regards,<br>
&gt;<br>
&gt;<br>
&gt; Zhisong Li<br>
<br>
<br>
<br>
</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>