We don't have our own PETSc versions. We're tracking master. The PETSc crowd muck up fairly frequently. It sounds like you should be able to fix Petsc4py pretty easily. They usually accept patches for this sort of thing pretty fast. 

David

On Sunday, August 24, 2014, Cotter, Colin J <colin.cotter@imperial.ac.uk> wrote:

Aren't the Firedrake petsc and petsc4py versions supposed to be compatible with each other?

On 24 Aug 2014 16:58, "Florian Rathgeber" <f.rathgeber10@imperial.ac.uk> wrote:
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



--
Dr David Ham
Departments of Mathematics and Computing
Imperial College London

http://www.imperial.ac.uk/people/david.ham