<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Nov 9, 2016 at 11:54 PM, leejearl <span dir="ltr"><<a href="mailto:leejearl@126.com" target="_blank">leejearl@126.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
Hi, Matt<br>
Thanks for your reply, and will it be solved in the newest
version of PETSc?</div></blockquote><div><br></div><div>Yes, we are just working out how to do it. I might not actually code it until classes end Dec. 2. Is that</div><div>an okay timeline?</div><div><br></div><div> Thanks,</div><div><br></div><div> Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div> <br>
leejearl<div><div class="h5"><br>
<br>
<div class="m_-6908117957253746897moz-cite-prefix">On 2016年11月07日 20:09, Matthew Knepley
wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">On Mon, Nov 7, 2016 at 4:17 AM,
Sander Arens <span dir="ltr"><<a href="mailto:Sander.Arens@ugent.be" target="_blank">Sander.Arens@ugent.be</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div>
<div>
<div>Ok, I see what happened.<br>
</div>
If you create a a vector with <span class="m_-6908117957253746897m_-4800849206432027758gmail-im">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. <br>
But I think it would be better if these VecView
operations could be copied from the original vec
in </span><span class="m_-6908117957253746897m_-4800849206432027758gmail-im">VecGetSubVector?<br>
</span></div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>You are right. I am moving this to petsc-dev
temporarily for discussion.</div>
<div><br>
</div>
<div> Thanks,</div>
<div><br>
</div>
<div> Matt</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div>
<div><span class="m_-6908117957253746897m_-4800849206432027758gmail-im"></span></div>
<span class="m_-6908117957253746897m_-4800849206432027758gmail-im">Thanks,<br>
</span></div>
<span class="m_-6908117957253746897m_-4800849206432027758gmail-im">Sander<br>
</span></div>
<div class="m_-6908117957253746897HOEnZb">
<div class="m_-6908117957253746897h5">
<div class="gmail_extra"><br>
<div class="gmail_quote">On 7 November 2016 at
09:08, leejearl <span dir="ltr"><<a href="mailto:leejearl@126.com" target="_blank">leejearl@126.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div> Hi Sander:<br>
Thank your for your assistance, but it is
still not works. The code is now as follows:<span><br>
Vec subX, X;<br>
DM subdm;<br>
IS subIS;<br>
PetscInt numSubFields = 2;<br>
PetscInt subFields[2];<br>
subFields[0] = 0; subFields[1] =1 ;<br>
ierr = DMCreateSubDM(dm,
numSubFields, subFields, &subIS,
&subdm);CHKERRQ(ierr);<br>
ierr = DMGetGlobalVector(dm,
&X);CHKERRQ(ierr);<br>
ierr =
VecGetSubVector(X,subIS,&subX)<wbr>;CHKERRQ(ierr);<br>
</span> ierr = VecSetDM(subX,
dm);CHKERRQ(ierr);<span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> ierr
= PetscObjectSetName((PetscObjec<wbr>t)
subX, "sol.");CHKERRQ(ierr);<br>
ierr = PetscViewerSetType(*viewer,
PETSCVIEWERVTK);CHKERRQ(ierr);<br>
ierr =
PetscViewerPushFormat(*viewer,
PETSC_VIEWER_VTK_VTU);CHKERRQ(<wbr>ierr);<br>
ierr =
PetscViewerFileSetName(*viewer<wbr>,
"subsol.vtu");CHKERRQ(ierr);<br>
ierr = VecView(subX,
viewer);CHKERRQ(ierr);<br>
ierr =
PetscViewerDestroy(&viewer);CH<wbr>KERRQ(ierr);<br>
ierr = VecRestoreSubVector(X,
subIS, &subX);CHKERRQ(ierr);<br>
DMDestroy(&subdm);<br>
ierr = DMRestoreGlobalVector(dm,
&X);CHKERRQ(ierr);<br>
</blockquote>
<br>
<br>
</span> I have add "VecSetDm", but it has not
output file. <br>
<br>
Thanks<span class="m_-6908117957253746897m_-4800849206432027758HOEnZb"><font color="#888888"><br>
leejearl</font></span>
<div>
<div class="m_-6908117957253746897m_-4800849206432027758h5"><br>
<div class="m_-6908117957253746897m_-4800849206432027758m_-2963057619777554633moz-cite-prefix">On
2016年11月07日 15:35, Sander Arens wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>
<div>
<div>Does it work if you put<br>
ierr = VecSetDM(subX,
subdm);CHKERRQ(ierr);<br>
</div>
before the VecView?<br>
<br>
</div>
Thanks,<br>
</div>
Sander<br>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On 7 November
2016 at 03:50, leejearl <span dir="ltr"><<a href="mailto:leejearl@126.com" target="_blank">leejearl@126.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi, Barry:<br>
I must have some make some
mistakes. I post the code as
follows:<br>
Vec subX, X;<br>
DM subdm;<br>
IS subIS;<br>
PetscInt numSubFields = 2;<br>
PetscInt subFields[2];<br>
subFields[0] = 0;
subFields[1] =1 ;<br>
ierr = DMCreateSubDM(dm,
numSubFields, subFields,
&subIS,
&subdm);CHKERRQ(ierr);<br>
ierr =
DMGetGlobalVector(dm,
&X);CHKERRQ(ierr);<br>
ierr =
VecGetSubVector(X,subIS,&subX)<wbr>;CHKERRQ(ierr);<br>
ierr =
PetscObjectSetName((PetscObjec<wbr>t)
subX, "sol.");CHKERRQ(ierr);<br>
ierr =
PetscViewerSetType(*viewer,
PETSCVIEWERVTK);CHKERRQ(ierr);<br>
ierr =
PetscViewerPushFormat(*viewer,
PETSC_VIEWER_VTK_VTU);CHKERRQ(<wbr>ierr);<br>
ierr =
PetscViewerFileSetName(*viewer<wbr>,
"subsol.vtu");CHKERRQ(ierr);<br>
ierr = VecView(subX,
viewer);CHKERRQ(ierr);<br>
ierr =
PetscViewerDestroy(&viewer);CH<wbr>KERRQ(ierr);<br>
ierr =
VecRestoreSubVector(X, subIS,
&subX);CHKERRQ(ierr);<br>
DMDestroy(&subdm);<br>
ierr =
DMRestoreGlobalVector(dm,
&X);CHKERRQ(ierr);<br>
<br>
There are three fields in dm, and
I want to obtain the vector of the
two of them. But, I can not<br>
get the output file “subsol.vtu”.
Can you help me with the code?<br>
<br>
Thanks<span class="m_-6908117957253746897m_-4800849206432027758m_-2963057619777554633HOEnZb"><font color="#888888"><br>
leejearl</font></span>
<div class="m_-6908117957253746897m_-4800849206432027758m_-2963057619777554633HOEnZb">
<div class="m_-6908117957253746897m_-4800849206432027758m_-2963057619777554633h5"><br>
On 2016年11月06日 12:21, Barry
Smith wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Nov 5, 2016, at 8:36
PM, leejearl <<a href="mailto:leejearl@126.com" target="_blank">leejearl@126.com</a>>
wrote:<br>
<br>
Hi Sander:<br>
Thank you for your
advices, and it works. But
it is only available in th
local vector.<br>
</blockquote>
This should work on the
global vector. Please send
the full output of the error
messages when used with a
global vector.<br>
<br>
Barry<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Is there any methods to
reach this purposes in the
global vector?<br>
Thanks<br>
leejearl<br>
On 2016年11月05日 19:29,
Sander Arens wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
You can first obtain an
IS with<br>
<a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DM/DMCreateSubDM.html" rel="noreferrer" target="_blank">http://www.mcs.anl.gov/petsc/p<wbr>etsc-current/docs/manualpages/<wbr>DM/DMCreateSubDM.html</a><br>
and with that you can
obtain a subvector with<br>
<a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Vec/VecGetSubVector.html" rel="noreferrer" target="_blank">http://www.mcs.anl.gov/petsc/p<wbr>etsc-current/docs/manualpages/<wbr>Vec/VecGetSubVector.html</a><br>
which you can then view
the usual way.<br>
<br>
Thanks,<br>
Sander<br>
<br>
On 5 November 2016 at
12:17, leejearl <<a href="mailto:leejearl@126.com" target="_blank">leejearl@126.com</a>>
wrote:<br>
Hi, all:<br>
<br>
I meet a problems
which I can not
overcome. The programe
is like the code in<br>
<br>
"<a href="http://www.mcs.anl.gov/petsc/petsc-current/src/dm/impls/plex/examples/tutorials/ex1.c.html" rel="noreferrer" target="_blank">http://www.mcs.anl.gov/petsc/<wbr>petsc-current/src/dm/impls/ple<wbr>x/examples/tutorials/ex1.c.htm<wbr>l</a>".<br>
<br>
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?<br>
<br>
Thanks!<br>
<br>
<br>
leejearl<br>
<br>
<br>
<br>
<br>
</blockquote>
</blockquote>
</blockquote>
<br>
<br>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</blockquote>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div class="m_-6908117957253746897gmail_signature" data-smartmail="gmail_signature">What
most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results
to which their experiments lead.<br>
-- Norbert Wiener</div>
</div>
</div>
</blockquote>
<br>
</div></div><span class="HOEnZb"><font color="#888888"><pre class="m_-6908117957253746897moz-signature" cols="72">--
李季
西北工业大学航空学院流体力学系
Phone: <a href="tel:17792092487" value="+17792092487" target="_blank">17792092487</a>
QQ: 188524324
</pre>
</font></span></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div>
</div></div>