[petsc-users] how to output components of a section

Sander Arens Sander.Arens at ugent.be
Mon Nov 7 01:35:01 CST 2016


Does it work if you put
ierr = VecSetDM(subX, subdm);CHKERRQ(ierr);
before the VecView?

Thanks,
Sander

On 7 November 2016 at 03:50, leejearl <leejearl at 126.com> wrote:

> Hi, Barry:
>     I must have some make some mistakes. I post the code as follows:
>         Vec subX, X;
>         DM subdm;
>         IS subIS;
>         PetscInt numSubFields = 2;
>         PetscInt subFields[2];
>         subFields[0] = 0; subFields[1] =1 ;
>         ierr = DMCreateSubDM(dm, numSubFields, subFields, &subIS,
> &subdm);CHKERRQ(ierr);
>         ierr = DMGetGlobalVector(dm, &X);CHKERRQ(ierr);
>         ierr = VecGetSubVector(X,subIS,&subX);CHKERRQ(ierr);
>         ierr = PetscObjectSetName((PetscObject) subX,
> "sol.");CHKERRQ(ierr);
>         ierr = PetscViewerSetType(*viewer, PETSCVIEWERVTK);CHKERRQ(ierr);
>        ierr = PetscViewerPushFormat(*viewer, PETSC_VIEWER_VTK_VTU);CHKERRQ(
> ierr);
>         ierr = PetscViewerFileSetName(*viewer,
> "subsol.vtu");CHKERRQ(ierr);
>         ierr = VecView(subX, viewer);CHKERRQ(ierr);
>         ierr = PetscViewerDestroy(&viewer);CHKERRQ(ierr);
>         ierr = VecRestoreSubVector(X, subIS, &subX);CHKERRQ(ierr);
>         DMDestroy(&subdm);
>         ierr = DMRestoreGlobalVector(dm, &X);CHKERRQ(ierr);
>
> There are three fields in dm, and I want to obtain the vector of the two
> of them. But, I can not
> get the output file “subsol.vtu”. Can you help me with the code?
>
> Thanks
> leejearl
>
> On 2016年11月06日 12:21, Barry Smith wrote:
>
>> On Nov 5, 2016, at 8:36 PM, leejearl <leejearl at 126.com> wrote:
>>>
>>> Hi Sander:
>>>      Thank you for your advices, and it works. But it is only available
>>> in th local vector.
>>>
>>    This should work on the global vector. Please send the full output of
>> the error messages when used with a global vector.
>>
>>     Barry
>>
>> Is there any methods to reach this purposes in the global vector?
>>>      Thanks
>>> leejearl
>>> On 2016年11月05日 19:29, Sander Arens wrote:
>>>
>>>> You can first obtain an IS with
>>>> http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/
>>>> DM/DMCreateSubDM.html
>>>> and with that you can obtain a subvector with
>>>> http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/
>>>> Vec/VecGetSubVector.html
>>>> which you can then view the usual way.
>>>>
>>>> Thanks,
>>>> Sander
>>>>
>>>> On 5 November 2016 at 12:17, leejearl <leejearl at 126.com> wrote:
>>>> Hi, all:
>>>>
>>>>      I meet a problems which I can not overcome. The programe is like
>>>> the code in
>>>>
>>>> "http://www.mcs.anl.gov/petsc/petsc-current/src/dm/impls/ple
>>>> x/examples/tutorials/ex1.c.html".
>>>>
>>>>     The code create a section which has three fields: u,v,w. How can I
>>>> output the fields u and v without together with w?
>>>>
>>>>     Thanks!
>>>>
>>>>
>>>> leejearl
>>>>
>>>>
>>>>
>>>>
>>>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20161107/e02416c0/attachment.html>


More information about the petsc-users mailing list