← Back to team overview

dolfin team mailing list archive

Re: python and shared_ptr status

 

On Wednesday 07 January 2009 00:29:52 Garth N. Wells wrote:
> Johan Hake wrote:
> > Hello!
> >
> > I have now got some of the shared_ptr stuff combined with python up and
> > going.
> >
> > The function interface, with shared functions and function_space should
> > just work. This includes compiled functions. The nice thing with these is
> > they only refer to our own library, i.e., Py/DOLFIN and they don't have
> > to be compatible with other Py-library.
> >
> > I havn't looked into the la objects yet. I lack a good example of where
> > it is used.
>
> demo/la/trilinos/python/demo.py
>
> All la stuff in pure dolfin library use wants a GenericMatrix, (right?)
>
> > and as far as I am concerned we cannot use a shared Epetra_FECrsMatrix or
> > Epetra_FeVector in the PyTrilinos interface.
>
> What isn't this possible?

Short answer, no.

Long answer:

PyTrilinos need to be compiled with shared_ptr support. If the underlying 
library does not have a shared_ptr interface, which I am quite sure Trilinos 
does not have, it is that libraries responsability to include a shared_ptr 
typemaps to handle situations where it get this type. These typemaps is what 
I am about to include for PyDOLFIN, i.e., making it possible to pass a python 
objects that are stored using shared_ptr to function accepting pointers, 
references, or shared_ptr, but I doubt PyTrilinos is compiled with this 
support.

Johan


> Garth
>
> This means that we either way
>
> > need access of the underlaying pointer or reference to interact with
> > PyTrilinos.
> >
> > I haven't been able to wrap the compiled ufc objects yet. I have an idea
> > of how this can be done and why it did not work the first time I gave it
> > a try. To be able to get it working I think we need to extend ufc.
> >
> > In ffc jit and in dolfin, where we all use derived classes of ufc::foo,
> > we need to be able to %import some definition of these classes from some
> > where. I have started to scetch on an ufc.i file which does this, but I
> > need some response to whether this is the right way to do it.
> >
> > The thing is that these shared_ptr base classes need to be defined at
> > _one_ place and then %imported where they are used, typically in ffc/jit
> > and in dolfin. Intuitively I think that it would be appropriate to define
> > them in ufc.
> >
> > Where such a file should then be installed is another thing but following
> > the convention of dolfin whould this then be installed in:
> >
> >   $PREFIX/include/swig/ufc.i
> >
> > Johan
> > _______________________________________________
> > DOLFIN-dev mailing list
> > DOLFIN-dev@xxxxxxxxxx
> > http://www.fenics.org/mailman/listinfo/dolfin-dev




Follow ups

References