dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #25178
Re: Problem with missing ghost values
-
To:
"Garth N. Wells" <gnw20@xxxxxxxxx>
-
From:
Anders Logg <logg@xxxxxxxxx>
-
Date:
Sun, 20 Nov 2011 22:02:27 +0100
-
Cc:
DOLFIN Mailing List <dolfin@xxxxxxxxxxxxxxxxxxx>
-
In-reply-to:
<CAA4C66OTneX-2YqMiyFUj0Nwb=DZHkwvnk4a0V0hL1R9E1UukQ@mail.gmail.com>
-
User-agent:
Mutt/1.5.21 (2010-09-15)
On Sun, Nov 20, 2011 at 08:40:02PM +0000, Garth N. Wells wrote:
> On 20 November 2011 20:32, Anders Logg <logg@xxxxxxxxx> wrote:
> > The unit test currently failing on the Mac buildbot (timing out) is
> > failing on my machine (Ubuntu 11.10) with a PETSc error claiming that
> > the vector in question is not ghosted.
> >
> > I've tracked it down to the plotting from the C++ eigenvalue demo, and
> > the call to gather() from within interpolate_vertex_values.
> >
> > The problem is that the Function to be plotted is created from a
> > solution vector x from the eigenvalue problem like so:
> >
> > Function u(V, x);
> >
> > Since x does not come from a Function to begin with, it was not
> > initialized with ghost values, so then later when
> > u.interpolated_vertex_values is called, the call to gather() fails.
> >
> > Should there be a test for whether ghost values exist in either
> > PETScVector or Function (_have_ghost_values)?
> >
>
> Take a look here on how to test:
>
> http://lists.mcs.anl.gov/pipermail/petsc-dev/2011-November/006286.html
ok, so VecIsGhosted is in petsc-dev. It would be good to use that in
the future but then we need the same for Epetra.
But it still doesn't solve the problem with the constructor
Function u(V, x);
Does it make sense in parallel when x may not have the correct
ghosted values so calls to interpolate_vertex_values (and likely other
functions) may fail?
--
Anders
> Garth
>
> > On top of this, the call to plot() does not work in parallel from C++
> > anyway so it's easy to make the bug disappear (by moving the check in
> > the plot function earlier to before the call to
> > interpolate_vertex_values), but it exposes a problem with the
> > constructor
> >
> > Function u(V, x);
> >
> > which may not make sense if x does not have the proper layout.
> >
> >
> > _______________________________________________
> > Mailing list: https://launchpad.net/~dolfin
> > Post to : dolfin@xxxxxxxxxxxxxxxxxxx
> > Unsubscribe : https://launchpad.net/~dolfin
> > More help : https://help.launchpad.net/ListHelp
> >
>
>
>
Follow ups
References