← Back to team overview

dolfin team mailing list archive

Re: Passing MeshFunction as shared_ptr

 


On 11/03/11 00:20, Johan Hake wrote:
> On Thursday March 10 2011 16:17:49 Anders Logg wrote:
>> On Fri, Mar 11, 2011 at 12:53:16AM +0100, Anders Logg wrote:
>>> On Thu, Mar 10, 2011 at 11:39:52PM +0000, Garth N. Wells wrote:
>>>> On 10/03/11 23:38, Anders Logg wrote:
>>>>> I'm having trouble passing a MeshFunction from the Python interface
>>>>> to
>>>>>
>>>>> the following function in the C++ Form class:
>>>>>   void set_cell_domains(boost::shared_ptr<const MeshFunction<uint> >
>>>>>   cell_domains);
>>>>
>>>> Change this to
>>>>
>>>>     void set_cell_domains(boost::shared_ptr<const MeshFunction<unsigned
>>>>
>>>> int> > cell_domains);
>>>>
>>>> (uint -> unsigned int)
>>>
>>> Same problem (but with uint --> unsigned int):
>>>
>>> TypeError: in method 'Form_set_cell_domains', argument 2 of type
>>> 'boost::shared_ptr< dolfin::MeshFunction< unsigned int > const >'
>>>
>>> Printing out type() for the argument just prior to the call gives
>>>
>>> <class 'dolfin.cpp.MeshFunctionUInt'>
>>>
>>> So somehow it is not recognized that dolfin.cpp.MeshFunctionUint can
>>> be used as a 'boost::shared_ptr< dolfin::MeshFunction< unsigned int >
>>> const >.
>>
>> I have temporarily added pure pointer versions of the set_foo_domains
>> functions in the Form class. These work fine from Python. These should
>> be removed as soon as we figure out how to pass the arguments as
>> shared ptrs.
> 
> I need some time to get into the changes Garth has done. 

My changes need some clean up, but at least it works now so we can test
the need for some of the new statements in isolation.

Garth

> If it is not fixed by 
> then I can take a look at it, weekendish...
> 
> Johan
> 
>> --
>> Anders
>>
>>
>> _______________________________________________
>> 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