On Tue, Aug 24, 2010 at 11:03:58AM +0200, Benjamin Kehlet wrote: > Anders Logg wrote: > >On Tue, Aug 24, 2010 at 01:25:56AM +0200, Benjamin Kehlet wrote: > >>Johan Hake wrote: > >>>On Monday August 23 2010 15:59:15 Benjamin Kehlet wrote: > >>>>Hello! > >>>> > >>>>I have been trying to get the python wrappes of the ODE solvers in place > >>>>again and learn more about Swig. The wrappers have been broken since the > >>>>change from uBLASVector to real*. > >>>> > >>>>Dolfin needs to call functions implemented on the python side, so > >>>>directors are needed. This simple typemap seems to do the job: > >>>> > >>>>%typemap(directorin) double* ODE_ARGIN > >>>>{ > >>>> // Get the length of the arrays > >>>> int n = size(); > >>>> $input = PyArray_SimpleNewFromData(1, &n, NPY_DOUBLE, $1_name); > >>>>} > >>>> > >>>>Some questions from a Swig newbie: Is this the preferred way of doing > >>>>this? > >>>>Note that the typemap have to call size() (a member function of class > >>>>ODE) to get the length of the array, so I guess it is not possible to > >>>>use a more generic typemap. > >>>This is why we instroduced the dolfin::Array class. So > >>>speciallized typemaps like this could be avoided. > >>> > >>>Is there any way you can port the ODE interface to using > >>>dolfin::Array instead? Then most of the typemaps should be inplace > >>>already. > >>That shouldn't be too complicated. Or was there a reason for > >>changing to plain c arrays (and not dolfin::Array) in the first > >>place? Anders? > > > >The reason was that we couldn't get uBLAS to use GMP types so we > >needed a more basic container like foo*, but the Array class would > >work fine for this. It would also provide a nicer interface for the > >user (since u etc will have a size). > > > > Should the functionality in common/real.h (add, sub, axpy, inner > etc.) be moved into dolfin::Array then or do you want to keep > dolfin::Array as minimal as possible?
It should not be mixed with the real.h functionality. Array is a general container that can also hold ints, bools etc. -- Anders _______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : dolfin@lists.launchpad.net Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp