← Back to team overview

dolfin team mailing list archive

Re: Wrapping Function

 

2009/2/10 Johan Hake <hake@xxxxxxxxx>:
> 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

dolfin/swig/dolfin.i includes dolfin/swig/directors.i which I was
using. It tured out the problem was initiated from gccxml, which is
used for parsing templates in itk, not liking the use of boost in
dolfin. Eliminating that, and including dolfin.i or directors.i, it
builds now.


-Ali

>
> 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