[petsc-users] how to output components of a section
leejearl
leejearl at 126.com
Thu Nov 10 07:04:26 CST 2016
Hi Matt:
It is okay. I will wait for your coding.
Thanks
leejearl
On 2016年11月10日 18:42, Matthew Knepley wrote:
> On Wed, Nov 9, 2016 at 11:54 PM, leejearl <leejearl at 126.com
> <mailto:leejearl at 126.com>> wrote:
>
> Hi, Matt
> Thanks for your reply, and will it be solved in the newest
> version of PETSc?
>
>
> Yes, we are just working out how to do it. I might not actually code
> it until classes end Dec. 2. Is that
> an okay timeline?
>
> Thanks,
>
> Matt
>
>
> leejearl
>
>
> On 2016年11月07日 20:09, Matthew Knepley wrote:
>> On Mon, Nov 7, 2016 at 4:17 AM, Sander Arens
>> <Sander.Arens at ugent.be <mailto:Sander.Arens at ugent.be>> wrote:
>>
>> Ok, I see what happened.
>> If you create a a vector with DMGetGlobalVector, the VecView
>> function is overloaded with some DM-specific VecView function
>> (e.g. VecView_Plex), but this doesn't happen with the vec
>> that you get from VecGetSubVector. So one way to solve this
>> would be to create a global vector from your subdm and do the
>> scatters yourself.
>> But I think it would be better if these VecView operations
>> could be copied from the original vec in VecGetSubVector?
>>
>>
>> You are right. I am moving this to petsc-dev temporarily for
>> discussion.
>>
>> Thanks,
>>
>> Matt
>>
>> Thanks,
>> Sander
>>
>> On 7 November 2016 at 09:08, leejearl <leejearl at 126.com
>> <mailto:leejearl at 126.com>> wrote:
>>
>> Hi Sander:
>> Thank your for your assistance, but it is still not
>> works. The code is now 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 = VecSetDM(subX, dm);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);
>>
>>
>>
>> I have add "VecSetDm", but it has not output file.
>>
>> Thanks
>> leejearl
>>
>> On 2016年11月07日 15:35, Sander Arens wrote:
>>> 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
>>> <mailto: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 <mailto: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
>>> <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
>>> <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
>>> <mailto: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
>>> <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
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>>
>>
>> --
>> What most experimenters take for granted before they begin their
>> experiments is infinitely more interesting than any results to
>> which their experiments lead.
>> -- Norbert Wiener
>
> --
> 李季
> 西北工业大学航空学院流体力学系
> Phone:17792092487 <tel:17792092487>
> QQ: 188524324
>
>
>
>
> --
> What most experimenters take for granted before they begin their
> experiments is infinitely more interesting than any results to which
> their experiments lead.
> -- Norbert Wiener
--
李季
西北工业大学航空学院流体力学系
Phone: 17792092487
QQ: 188524324
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20161110/a89a6f55/attachment-0001.html>
More information about the petsc-users
mailing list