Dear firedrakers,

having just updated both petsc and petsc4py on my laptop (pulled latest revision of mapdes/firedrake branch in both cases, and I use the origin/multigrid-extrusion branch of firedrake), I get the error message below when I try to project an expression onto a DG function:

r_p = Function(W3)
expression = Expression('exp(-0.5*(x[0]*x[0]+x[1]*x[1])/(0.25*0.25))')
r_p.project(expression)

This issue only came up with the PETSc update I did, never seen it before.

Thanks a lot,

Eike

Error message:

Number of cells on finest grid = 5120
dx =      364.458 km,  dt =     2429.717 s
Traceback (most recent call last):
  File "driver.py", line 485, in <module>
    main(parameter_filename)
  File "driver.py", line 288, in main
    r_p.project(expression)
  File "/Users/eikemueller/PostDocBath/EllipticSolvers/firedrake/firedrake/function.py", line 135, in project
    return projection.project(b, self, *args, **kwargs)
  File "/Users/eikemueller/PostDocBath/EllipticSolvers/firedrake/firedrake/projection.py", line 94, in project
    form_compiler_parameters=form_compiler_parameters)
  File "/Users/eikemueller/PostDocBath/EllipticSolvers/firedrake/firedrake/solving.py", line 119, in solve
    _solve_varproblem(*args, **kwargs)
  File "/Users/eikemueller/PostDocBath/EllipticSolvers/firedrake/firedrake/solving.py", line 143, in _solve_varproblem
    solver.solve()
  File "<string>", line 2, in solve
  File "/Users/eikemueller/PostDocBath/EllipticSolvers/PyOP2/pyop2/profiling.py", line 197, in wrapper
    return f(*args, **kwargs)
  File "/Users/eikemueller/PostDocBath/EllipticSolvers/firedrake/firedrake/variational_solver.py", line 292, in solve
    self.snes.solve(None, v)
  File "SNES.pyx", line 516, in petsc4py.PETSc.SNES.solve (src/petsc4py.PETSc.c:153742)
  File "petscsnes.pxi", line 251, in petsc4py.PETSc.SNES_Function (src/petsc4py.PETSc.c:30058)
  File "/Users/eikemueller/PostDocBath/EllipticSolvers/firedrake/firedrake/variational_solver.py", line 138, in form_function
    v.array[:] = X_.array[:]
  File "Vec.pyx", line 815, in petsc4py.PETSc.Vec.array.__get__ (src/petsc4py.PETSc.c:91905)
  File "arraynpy.pxi", line 67, in petsc4py.PETSc.asarray (src/petsc4py.PETSc.c:7333)
  File "petscvec.pxi", line 469, in petsc4py.PETSc._Vec_buffer.__getreadbuffer__ (src/petsc4py.PETSc.c:19630)
  File "petscvec.pxi", line 459, in petsc4py.PETSc._Vec_buffer.getbuffer (src/petsc4py.PETSc.c:19460)
petsc4py.PETSc.Error: error code 73
[0] SNESSolve() line 3832 in /Users/eikemueller/PostDocBath/EllipticSolvers/petsc/src/snes/interface/snes.c
[0] SNESSolve_KSPONLY() line 24 in /Users/eikemueller/PostDocBath/EllipticSolvers/petsc/src/snes/impls/ksponly/ksponly.c
[0] SNESComputeFunction() line 2035 in /Users/eikemueller/PostDocBath/EllipticSolvers/petsc/src/snes/interface/snes.c
[0] VecGetArray() line 1646 in /Users/eikemueller/PostDocBath/EllipticSolvers/petsc/src/vec/vec/interface/rvector.c
[0] Object is in wrong state
[0]  Vec is locked read only, argument # 1
--

Dr Eike Hermann Mueller
Research Associate (PostDoc)

Department of Mathematical Sciences
University of Bath
Bath BA2 7AY, United Kingdom

+44 1225 38 5803
e.mueller@bath.ac.uk
http://people.bath.ac.uk/em459/