On 11/03/11 00:24, Anders Logg wrote: > On Thu, Mar 10, 2011 at 04:20:51PM -0800, 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. If it is not fixed >> by >> then I can take a look at it, weekendish... >
I looks like shared_ptrs are not declared for MeshFunctions in the SWIG version < 2 part of the interface. When do we want to move to SWIG 2 only? Garth > ok, thanks. > > -- > Anders _______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : [email protected] Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp

