On Sat, Mar 12, 2011 at 09:06:54AM +0000, Garth N. Wells wrote: > > > On 11/03/11 00:17, 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. > > > > The shared_ptr version should work now.
ok. I'll merge with main and find out. -- Anders _______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : [email protected] Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp

