← Back to team overview

dolfin team mailing list archive

Re: Removal of constructor Function(V, x)?

 

On Tue, Nov 22, 2011 at 08:45:30PM +0000, Garth N. Wells wrote:
>
>
> On 21 Nov 2011, at 21:53, "Marie E. Rognes" <meg@xxxxxxxxx> wrote:
>
> >
> >
> > On 21. nov. 2011, at 21:52, Anders Logg <logg@xxxxxxxxx> wrote:
> >
> >> On Mon, Nov 21, 2011 at 08:46:13PM +0000, Garth N. Wells wrote:
> >>> On 21 November 2011 13:07, Anders Logg <logg@xxxxxxxxx> wrote:
> >>>> On Sun, Nov 20, 2011 at 11:55:43PM +0100, Anders Logg wrote:
> >>>>> On Sun, Nov 20, 2011 at 11:49:42PM +0100, Marie E. Rognes wrote:
> >>>>>>
> >>>>>>
> >>>>>> On 20. nov. 2011, at 23:31, Anders Logg <logg@xxxxxxxxx> wrote:
> >>>>>>
> >>>>>>> Is anyone using the Function constructor that takes a vector as input
> >>>>>>> argument?
> >>>>>>>
> >>>>>>> Function u(V, x);
> >>>>>>>
> >>>>>>
> >>>>>> Yes.
> >>>>>
> >>>>> Does it work? In parallel?
> >>>>>
> >>>>> Does it not work to instead use
> >>>>>
> >>>>>  x = u.vector()
> >>>>>
> >>>>> ?
> >>>>>
> >>>>> If you need it, we should keep it but add an error message that it
> >>>>> doesn't work in parallel, unless it does...
> >>>>
> >>>> Any more input on this? There are several options:
> >>>>
> >>>> 1. Remove this constructor
> >>>>
> >>>> 2. Throw an error when running in parallel
> >>>>
> >>>> 3. Check that the input vector makes sense
> >>>>
> >>>> The last one is problematic since I don't see an easy way to perform
> >>>> the check, other than calling get_local and having it fail.
> >>>>
> >>>
> >>> I haven't heard any reason why it can't be removed. We may need to fix
> >>> assignment (re earlier discussion on assign) to just copy values and
> >>> not the whole object so that a user can get the vector and then assign
> >>> values to it without messing up the ghosting.
> >>
> >> Sounds good, but I want to wait for Marie to comment before I remove
> >> it. She is using it.
> >>
> >> Marie? Does it work for you to use x = u.vector()?
> >>
> >
> > Probably. However removing the constructor would be changing parts of the basic interface, which I think is a bad idea.
> >
> > Add a warning if you want to deprecate it later.
> >
>
> Isn't the time to make an interface change now rather than later?

True, but last time we discussed this was 1 hour or so before the
release of 1.0-rc1. Now we have a whole week to 1.0-rc2... :-)

Marie, can you check again if that constructor is necessary?

--
Anders


Follow ups

References