On Mon, 10 Mar 2014 08:11:10 +0100
Johan Hake <[email protected]> wrote:

> There are no way of passing the data without copying the values from
> the NumPy array to the std containers. The reason is that there are
> AFAIK not way of initializing these structures with external data and
> that is why we have added our own Array<Foo> wrapper of a contiguous
> array.

Are data copied when initializing dolfin::Array<Foo> from numpy array?
If so, who owns the pointer Foo*? When is it destroyed?

If data are not copied and Foo* points to data within numpy array, user
must take care for numpy array not to be garbage collect, mustn't he?

Jan

> 
> If you are OK with copying you can just have a look at the:
> 
>   IN_TYPEMAP_STD_VECTOR_OF_PRIMITIVES
> 
> in
> 
>   dolfin/swig/typemaps/std_vector.i
> 
> This typemap only works for passing data in to the method (const
> std::Foo<Bar>& ). If you want to return data through let say
> std::Foo<Bar>& you need to implement a argout typemap. Then you can
> have a look at:
> 
>    ARGOUT_TYPEMAP_STD_VECTOR_OF_PRIMITIVES
> 
> in the same file.
> 
> Johan
> 
> 
> 
> On Sun, Mar 9, 2014 at 9:54 PM, Jan Blechta
> <[email protected]>wrote:
> 
> > I'd like to pass numpy array of indices to compiled module as a
> > shared array. I was thinking about types
> >
> > std::shared_ptr<std::vector<std::size_t> >
> > std::shared_ptr<dolfin::Array<std::size_t> >
> > boost::shared_array<std::size_t>
> > std::shared_ptr<std::size_t[]> (with appropriate deleter)
> >
> > but I did not figure out how to add typemap using existing macros.
> > Is there some easy solution?
> >
> > Thanks,
> > Jan
> > _______________________________________________
> > fenics mailing list
> > [email protected]
> > http://fenicsproject.org/mailman/listinfo/fenics
> >

_______________________________________________
fenics mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics

Reply via email to