← Back to team overview

dolfin team mailing list archive

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

 


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. 

--
Marie


> --
> Anders


Follow ups

References