The problem was that HAS_PETSC4PY was not defined in the compiled extension module. I will fix this.
Johan On Tue, Nov 4, 2014 at 10:58 AM, Jan Blechta <[email protected]> wrote: > On Tue, 4 Nov 2014 09:12:51 +0100 > Øyvind Evju <[email protected]> wrote: > > > Thanks, Johan, but the error still persist. And thank for the neat > > trick, Jan, but that also doesn't solve this specific issue. > > Don't know if it helps here but you may need to use the pattern like > > // typemaps > #ifdef SWIG > %include "petsc4py/petsc4py.i" > #endif > > // includes > #include ... > > namespace dolfin { > // your code > } > > otherwise compile_extension_module wraps whole code to namespace > dolfin {} block thus moving #included code to dolfin namespace which > was not expected. > > Jan > > > > > > > -Øyvind > > > > > > 2014-11-03 17:11 GMT+01:00 Jan Blechta <[email protected]>: > > > > > BTW, you can add any typemap missed by DOLFIN by adding something > > > like > > > > > > #ifdef SWIG > > > %include "petsc4py/petsc4py.i" > > > #endif > > > > > > or in this case > > > > > > #ifdef SWIG > > > %include "dolfin/swig/common/pre.i" > > > #endif > > > > > > to your extension code. > > > > > > Jan > > > > > > > > > On Mon, 3 Nov 2014 16:40:16 +0100 > > > Johan Hake <[email protected]> wrote: > > > > > > > Could you check if it is fixed with this branch? > > > > > > > > johanhake/fix-swig-common-include > > > > > > > > You probably need to remove all compiled extension modules from > > > > the cache. > > > > > > > > rm -rf ~/.instant/cache/dolfin_* > > > > > > > > Johan > > > > > > > > On Mon, Nov 3, 2014 at 4:28 PM, Øyvind Evju <[email protected]> > > > > wrote: > > > > > > > > > Great :) > > > > > > > > > > > > > > > -Øyvind > > > > > > > > > > 2014-11-03 16:26 GMT+01:00 Johan Hake <[email protected]>: > > > > > > > > > >> No it is not :) > > > > >> > > > > >> It is included using #include but not %include. > > > > >> > > > > >> I can push a fix for this. > > > > >> > > > > >> Johan > > > > >> > > > > >> On Mon, Nov 3, 2014 at 4:22 PM, Øyvind Evju <[email protected]> > > > > >> wrote: > > > > >> > > > > >>> Yes, it is. > > > > >>> > > > > >>> > > > > >>> -Øyvind > > > > >>> > > > > >>> 2014-11-03 16:09 GMT+01:00 Johan Hake <[email protected]>: > > > > >>> > > > > >>>> Can you check > > > > >>>> > > > > >>>> if dolfin/swig/common/pre.i > > > > >>>> > > > > >>>> is included in the generated > > > > >>>> > > > > >>>> > .instant/cache/dolfin_compile_code_XXX/dolfin_compile_code_XXX.i > > > > >>>> > > > > >>>> file? In that file we include tghe petsc4py.i with all the > > > > >>>> relevant typesmaps. So if we do not include that file we > > > > >>>> probably should :) > > > > >>>> > > > > >>>> Johan > > > > >>>> > > > > >>>> On Mon, Nov 3, 2014 at 3:52 PM, Øyvind Evju > > > > >>>> <[email protected]> wrote: > > > > >>>> > > > > >>>>> When petsc4py is installed, the mpi_comm_world-function > > > > >>>>> returns a petsc4py.PETSc.Comm-object. I guess this is true > > > > >>>>> for all MPI communicators. When writing an extension module > > > > >>>>> using a MPI_Comm as argument, this fails. > > > > >>>>> > > > > >>>>> MWE: > > > > >>>>> > > > > >>>>> > > > > >>>>> > > > > >>>>> > > > > >>>>> > > > > >>>>> > > > > >>>>> *from dolfin import *cpp_module="""void foo(MPI_Comm comm) > > > > >>>>> {}"""compiled_module = > > > > >>>>> > > > > compile_extension_module(cpp_module)compiled_module.foo(mpi_comm_world())* > > > > >>>>> > > > > >>>>> I guess this is related to this: > > > > >>>>> > > > > https://bitbucket.org/fenics-project/dolfin/issue/195/petsc4py-applies-own-typemap-for-mpi_comm > > > > >>>>> > > > > >>>>> Any way to work with this? > > > > >>>>> > > > > >>>>> > > > > >>>>> -Øyvind > > > > >>>>> > > > > >>>>> > > > > >>>>> _______________________________________________ > > > > >>>>> fenics mailing list > > > > >>>>> [email protected] > > > > >>>>> http://fenicsproject.org/mailman/listinfo/fenics > > > > >>>>> > > > > >>>>> > > > > >>>> > > > > >>> > > > > >> > > > > > > > > > > > > > _______________________________________________ > fenics mailing list > [email protected] > http://fenicsproject.org/mailman/listinfo/fenics >
_______________________________________________ fenics mailing list [email protected] http://fenicsproject.org/mailman/listinfo/fenics
