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;
>>
>>
>>
>>
>>
>>
>>
>
>
>

Reply via email to