On Tue, Dec 16, 2008 at 02:19:38PM +0000, Garth N. Wells wrote:
>
>
> Anders Logg wrote:
> > On Tue, Dec 16, 2008 at 02:20:22PM +0100, Martin Sandve Alnæs wrote:
> >> If I subclass Function and implement eval, then
> >> call vector() on an object of my class, a vector
> >> is created but initialized to zero. I would rather
> >> expect that the function is evaluated in the function space:
> >>
> >> GenericVector& Function::vector()
> >> {
> >> // Initialize vector of dofs if not initialized
> >> if (!_vector)
> >> + {
> >> init();
> >> + interpolate(*_vector, *_function_space);
> >> + }
> >>
> >> dolfin_assert(_vector);
> >> return *_vector;
> >> }
> >
> > Looks like a good idea. Can you add it?
> >
> >> But I'm not sure what kind of side effects this can have on other code?
> >>
> >> Martin
> >
> > I don't think it will have more side effects than what we have now
> > when we just create a zero vector.
> >
>
> Interpolate is tricky because not all functions (e.g. DG) are
> interpolated sensibly. This issue pops up in the VTK io.
>
> GarthI don't think that's a problem here. The interpolation will be into the appropriate function space, which for a DG function is a DG space, so for DG0, the vector will contain one value for each cell. -- Anders
signature.asc
Description: Digital signature
_______________________________________________ DOLFIN-dev mailing list [email protected] http://www.fenics.org/mailman/listinfo/dolfin-dev
