dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #12048
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