← Back to team overview

dolfin team mailing list archive

Re: Extracting sub space with component tuple

 

Should be fixed now

Johan

On Monday January 16 2012 19:58:25 Johan Hake wrote:
> On Monday January 16 2012 19:44:23 Marie E. Rognes wrote:
> > Diff works, thanks!
> > 
> > While stumbling around with this, I'm encountering
> > some more stuff:
> > 
> > For instance, with this:
> > --
> > from dolfin import *
> > mesh = UnitSquare(2, 2)
> > V = VectorFunctionSpace(mesh, "CG", 2)
> > Q = FunctionSpace(mesh, "CG", 1)
> > W = V*Q
> > 
> > W0 = W.sub(0)
> > print W0.component()
> > --
> > 
> > I get this:
> > 
> > <Swig Object of type 'std::vector< dolfin::uint > *' at
> > 0x36641e0>swig/python detected a memory leak of type 'std::vector<
> > dolfin::uint > *', no destructor found.
> > 
> > (1) Is the memory leak supposed to be there?
> 
> No.
> 
> > (2) Could we perhaps also have an out typemap for the std::vector?
> 
> Yes, will add out typemap macro for these guys.
> 
> Johan
> 
> > --
> > Marie
> > 
> > On 01/16/2012 06:36 PM, Johan Hake wrote:
> > > Apply this diff and it should work:
> > > 
> > > -----------------------------------------------
> > > 
> > > === modified file 'dolfin/swig/std_vector_typemaps.i'
> > > --- dolfin/swig/std_vector_typemaps.i   2011-10-25 17:01:18 +0000
> > > +++ dolfin/swig/std_vector_typemaps.i   2012-01-16 17:12:09 +0000
> > > @@ -17,7 +17,7 @@
> > > 
> > >   // along with DOLFIN. If not, see<http://www.gnu.org/licenses/>.
> > >   //
> > >   // First added:  2009-08-31
> > > 
> > > -// Last changed: 2011-10-09
> > > +// Last changed: 2012-01-16
> > > 
> > >   //===================================================================
> > >   == ======== // In this file we declare what types that should be able
> > >   to be passed using
> > > 
> > > a
> > > @@ -464,8 +464,9 @@
> > > 
> > >   ARGOUT_TYPEMAP_STD_VECTOR_OF_PRIMITIVES(dolfin::uint, INT32, columns,
> > > 
> > > NPY_INT)
> > > 
> > >   ARGOUT_TYPEMAP_STD_VECTOR_OF_PRIMITIVES(double, DOUBLE, values,
> > >   NPY_DOUBLE)
> > > 
> > > -IN_TYPEMAP_STD_VECTOR_OF_PRIMITIVES(double, DOUBLE, values,
> > > NPY_DOUBLE, double, d)
> > > -IN_TYPEMAP_STD_VECTOR_OF_PRIMITIVES(dolfin::uint, INT32, columns,
> > > NPY_UINT, uint, I)
> > > +IN_TYPEMAP_STD_VECTOR_OF_PRIMITIVES(double, DOUBLE, , NPY_DOUBLE,
> > > double, d) +IN_TYPEMAP_STD_VECTOR_OF_PRIMITIVES(int, INT32, , NPY_INT,
> > > int, i) +IN_TYPEMAP_STD_VECTOR_OF_PRIMITIVES(dolfin::uint, INT32, ,
> > > NPY_UINT, uint, I)
> > > 
> > >   PY_SEQUENCE_OF_SCALARS_TO_VECTOR_OF_PRIMITIVES(dolfin::uint, INT32,
> > > 
> > > coloring_type, uint, -1)
> > > 
> > >   PY_SEQUENCE_OF_SCALARS_TO_VECTOR_OF_PRIMITIVES(dolfin::uint, INT32,
> > > 
> > > value_shape, uint, -1)
> > > 
> > > ---------------------------------------------------------
> > > But the returned SubSpace is not a dolfin.FunctionSpace. Maybe you can
> > > add that to the site-packages/dolfin/function/functionspace.py?
> > > 
> > > Johan
> > > 
> > > On Monday January 16 2012 17:47:36 Marie E. Rognes wrote:
> > >> How do one extract a sub^n-space using a component tuple?
> > >> I've tried various versions of this:
> > >> 
> > >> import numpy
> > >> from dolfin import *
> > >> mesh = UnitSquare(2, 2)
> > >> V = VectorFunctionSpace(mesh, "CG", 2)
> > >> Q = FunctionSpace(mesh, "CG", 1)
> > >> W = V*Q
> > >> component = numpy.array((0, 0))
> > >> W.extract_sub_space(component)
> > >> 
> > >> but generally get this:
> > >> 
> > >> TypeError: in method 'FunctionSpace_extract_sub_space', argument 2 of
> > >> type 'std::vector<  dolfin::uint>  const&'
> > >> 
> > >> 
> > >> --
> > >> Marie
> > >> 
> > >> _______________________________________________
> > >> Mailing list: https://launchpad.net/~dolfin
> > >> Post to     : dolfin@xxxxxxxxxxxxxxxxxxx
> > >> Unsubscribe : https://launchpad.net/~dolfin
> > >> More help   : https://help.launchpad.net/ListHelp
> 
> _______________________________________________
> 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