← Back to team overview

dolfin team mailing list archive

Re: Wrapping Function

 

On Tuesday 10 February 2009 13:51:28 A Navaei wrote:
> I am trying to wrap the c++ itk-dolfin interface in python, and since
> the input/output type interfacing dolfin is Function, the access to
> the c wrapper proxy layer is required. Between many available types of
> Function, the one which is useful for the interface is
> Function(FunctionSpace V), which is wrapped in swig generated file
> cpp.py. However, the associated auto-generated c header seems to be
> excluded in the packaging, at least I was not able to locate it. I'm
> not sure if using swig directors, or including
> /usr/include/dolfin/swig/directors.i would help this too.
>
> Is there a better way of making the python class Function visible to c++?

Do you have an itk-dolfin function implemented in c++ and want to make that 
visible for the python interface? If you do not want to do this in python, 
e.g., 

class ItkFunction(Function):
   def eval(values,x):
       # some calls to itk stuff
       values[0] = ...

you need to create your own swig generated extension module that %imports the 
swig generated dolfin types by inlcuding:
  
   %import dolfin/swig/dolfin.i

in your interface file. If you are new to swig, this can be a steep hill to 
climb though. You can try to use instant, and look at the compile_function.py 
file in DOLFIN.

A second alternative could be to look into the result of the call to instant 
from compile_function, that would be the cache of instant:

 ~/.instant/cache/dolfin_compile_function_XXX

Look into the files that is contained in that directory and you will get a 
hint of what you need. Note that each directory is an extension module.


Johan

>
> -Ali
> _______________________________________________
> DOLFIN-dev mailing list
> DOLFIN-dev@xxxxxxxxxx
> http://www.fenics.org/mailman/listinfo/dolfin-dev




Follow ups

References