← Back to team overview

dolfin team mailing list archive

Re: Wrapping Function

 

2009/2/10 Kent Andre <kent-and@xxxxxxxxx>:
> On ti., 2009-02-10 at 14:39 +0000, A Navaei wrote:
>> 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
>
> Great work!
>
> How do I compile the ItkDolfin module ?

The code in svn does not build yet - I was only able to build a
minimal code by some manual configuration. Currently, the conflict
between gccxml and boost prevents wrapitk to automate wrapping. I'm
still working on this and, if there are no other unpredicted issues,
the interface should be around soon. I will let you know when it's
ready.


-Ali

>
> Kent
>
>
>>
>> >
>> > 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
>> >
>> >
>> >
>> _______________________________________________
>> DOLFIN-dev mailing list
>> DOLFIN-dev@xxxxxxxxxx
>> http://www.fenics.org/mailman/listinfo/dolfin-dev
>
>


References