[petsc-users] DM and HDF5 Viewer

Matthew Knepley knepley at gmail.com
Thu Jul 16 15:28:01 CDT 2015


Pushed

   Matt

On Thu, Jul 16, 2015 at 1:51 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:

>
>    Then the documentation needs to make it very clear what it does (which
> is not much) and how it is VERY different than getting the vector from the
> DM.
>
>
> > On Jul 16, 2015, at 1:35 PM, Matthew Knepley <knepley at gmail.com> wrote:
> >
> > On Thu, Jul 16, 2015 at 1:31 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
> >
> > > On Jul 16, 2015, at 11:14 AM, Jed Brown <jed at jedbrown.org> wrote:
> > >
> > > Gianluca Meneghello <gianmail at gmail.com> writes:
> > >
> > >> Hi again,
> > >>
> > >> I am now trying to write a vector to an HDF5, this time using a DM
> > >> structure to impose the vector layout.
> > >>
> > >> Creating the vector with (as in src/dm/examples/tutorials/ex10.c)
> > >>
> > >> DMCreateGlobalVector(da2D,&gauss);
> > >>
> > >> every works fine, i.e. the hdf5 file has the correct layout given by
> the
> > >> dimension of the DM. On the other side, if I use:
> > >>
> > >> VecCreate(PETSC_COMM_WORLD,&gauss);
> > >> VecSetSizes(gauss,PETSC_DECIDE,Nx*Ny);
> > >> VecSetDM(gauss,da2D);
> > >
> > > VecSetDM only associates a DM with the Vec.  It does not interpose
> > > itself into VecView.
> > >
> > > Should we change this so that creating a Vec of the correct size/block
> > > size/layout and associating a DM is equivalent?  Perhaps, but it's more
> > > nuanced than it might seem.
> >
> >   Yikes. VecSetDM() seems a very dangerous and odd thing. Should it
> exist? If it exists it seems it should be exactly equivalent to creating
> the vector from the DM.
> >
> > I tend to disagree. It is used to set a member variable which is not
> exposed:
> >
> > find src -name "*.c" | xargs grep VecSetDM
> > src/dm/impls/composite/pack.c:  ierr = VecSetDM(*gvec, dm);CHKERRQ(ierr);
> > src/dm/impls/composite/pack.c:  ierr = VecSetDM(*lvec, dm);CHKERRQ(ierr);
> > src/dm/impls/da/dadist.c:    ierr = VecSetDM(*g, da);CHKERRQ(ierr);
> > src/dm/impls/da/dalocal.c:    ierr = VecSetDM(*g, da);CHKERRQ(ierr);
> > src/dm/impls/network/networkcreate.c:  ierr =
> VecSetDM(*vec,dm);CHKERRQ(ierr);
> > src/dm/impls/network/networkcreate.c:  ierr =
> VecSetDM(*vec,dm);CHKERRQ(ierr);
> > src/dm/impls/redundant/dmredundant.c:  ierr  =
> VecSetDM(*gvec,dm);CHKERRQ(ierr);
> > src/dm/impls/redundant/dmredundant.c:  ierr  =
> VecSetDM(*lvec,dm);CHKERRQ(ierr);
> > src/dm/impls/shell/dmshell.c:  ierr = VecSetDM(*gvec,dm);CHKERRQ(ierr);
> > src/dm/impls/shell/dmshell.c:  ierr = VecSetDM(*gvec,dm);CHKERRQ(ierr);
> > src/dm/impls/sliced/sliced.c:  ierr  = VecSetDM(*gvec,dm);CHKERRQ(ierr);
> > src/dm/interface/dmi.c:  ierr = VecSetDM(*vec, dm);CHKERRQ(ierr);
> > src/dm/interface/dmi.c:  ierr = VecSetDM(*vec, dm);CHKERRQ(ierr);
> > src/dm/interface/ftn-auto/dmf.c:*__ierr = VecSetDM(
> >
> >  I don't like putting in a bunch of side-effects. Those come from
> actually being created from a DM, which is correct.
> >
> >    Matt
> >
> > >
> > > Why don't you want to just call DMCreateGlobalVector()?
> >
> >
> >
> >
> > --
> > 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
>
>


-- 
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20150716/1d14628e/attachment.html>


More information about the petsc-users mailing list