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

leejearl leejearl at 126.com
Sun Nov 6 20:50:24 CST 2016


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/plex/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
>>>
>>>
>>>
>>>




More information about the petsc-users mailing list