Aren't the Firedrake petsc and petsc4py versions supposed to be compatible with each other?
The usual: interface change in PETSc (DMDASetDim renamed to
DMDASetDimension) that hasn't been updated in petsc4py yet. The PETSc
revision introducing that change is c73cfb54.
On 24/08/14 16:27, Cotter, Colin J wrote:
> Dear Firedrakers,
> I just updated my petsc and petsc4py using the PyOP2 install
> instructions, to be precise I did:
>
>> sudo PETSC_CONFIGURE_OPTIONS="--download-ctetgen --download-triangle
> --download-chaco" pip install -U --no-deps
> git+https://bitbucket.org/petsc/petsc.git#egg=petsc
>> unset PETSC_DIR
>> unset PETSC_ARCH
>> sudo pip install -U --no-deps git+https://bitbucket.org/petsc/petsc4py.git
>
> I then updated and built PyOP2, firedrake too.
>
> Now, upon importing Firedrake, I get:
>
> In [1]: from firedrake import *
> ---------------------------------------------------------------------------
> ImportError Traceback (most recent call last)
> /home/cjc1/mercurial/shapefem/<ipython-input-1-379626444471> in <module>()
> ----> 1 from firedrake import *
>
> /home/cjc1/firedrake/firedrake/firedrake/__init__.py in <module>()
> 1 # Ensure petsc is initialised by us before anything else gets in
> there.
>
> ----> 2 import petsc
> 3 del petsc
> 4
> 5 from ufl import *
>
> /home/cjc1/firedrake/firedrake/firedrake/petsc.py in <module>()
> 2 import petsc4py
> 3 import sys
> ----> 4 petsc4py.init(sys.argv)
> 5 from petsc4py import PETSc # NOQA get flake8 to ignore unused
> import.
>
> /usr/local/lib/python2.7/dist-packages/petsc4py/__init__.pyc in
> init(args, arch, comm)
> 40 """
> 41 import petsc4py.lib
> ---> 42 PETSc = petsc4py.lib.ImportPETSc(arch)
> 43 args = petsc4py.lib.getInitArgs(args)
> 44 PETSc._initialize(args, comm)
>
> /usr/local/lib/python2.7/dist-packages/petsc4py/lib/__init__.pyc in
> ImportPETSc(arch)
> 27 """
> 28 path, arch = getPathArchPETSc(arch)
> ---> 29 return Import('petsc4py', 'PETSc', path, arch)
> 30
> 31 def getPathArchPETSc(arch=None):
>
> /usr/local/lib/python2.7/dist-packages/petsc4py/lib/__init__.pyc in
> Import(pkg, name, path, arch)
> 62 pathlist = [os.path.join(path, arch)]
> 63 fo, fn, stuff = imp.find_module(name, pathlist)
> ---> 64 module = imp.load_module(fullname, fo, fn, stuff)
> 65 module.__arch__ = arch # save arch value
> 66 setattr(sys.modules[pkg], name, module)
>
> ImportError:
> /usr/local/lib/python2.7/dist-packages/petsc4py/lib/PETSc.so: undefined
> symbol: DMDASetDim
>
> What's wrong here?
>
> all the best
> --Colin
_______________________________________________
firedrake mailing list
firedrake@imperial.ac.uk
https://mailman.ic.ac.uk/mailman/listinfo/firedrake