You should be pass the same communicator into VecView() as was used when you created the vector. Do this ierr = VecView(seqx,PETSC_VIEWER_STDOUT_SELF);CHKERRQ(ierr);
On 1 August 2013 13:08, 丁老师 <ztdepya...@163.com> wrote: > but when we use vecveiw to veiw the seqx, it gives value only with 1 > process > > > > > > > At 2013-08-01 18:36:09,"Dave May" <dave.mayhe...@gmail.com> wrote: > > When you called > VecCreateSeq(PETSC_COMM_SELF,5,&seqx); > you created a sequential vector on each process - not just on rank 0. > > > On 1 August 2013 12:11, 丁老师 <ztdepya...@163.com> wrote: > >> I create a sequential vec seqx, and i get it value with VecGetArrary, >> since seqx is created only in process 0, why every process can output the >> value of the seqx. >> >> >> VecCreateSeq(PETSC_COMM_SELF,5,&seqx); >> VecView(seqx,PETSC_VIEWER_STDOUT_WORLD); >> double *seqarry; >> VecGetArray(seqx,&seqarry); >> >> for(int i=0;i<n;i++) >> cout<<MyRank<<" seqarry "<<s eqarry[i]<<endl; >> >> >> >> >> >> >> > > >