-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi Anna, On 29/04/15 14:50, Anna Kalogirou wrote:
Dear all,
I am experiencing again the same error I reported in December, when trying to solve an equation only on the boundary of a domain (the code is the same as the one in my email below dated 11 December 12:46). The problem was fixed back then but after all these months and after various updates, I get it again.
Basically PETSc is complaining about Object being in wrong state and Matrix missing a diagonal entry. The error arises when trying to solve this VP:
a = v*phi*ds(4) L = (v*phi0 - g*dt*v*eta0)*ds(4)
Note that I get two different errors on two different computers (on the other computer I get a Zero pivot error in LU factorization, on row 0), but the one I am reporting here is based on the computer with the latest petsc/pyop2/firedrake update.
Thanks, the missing diagonal entry was indeed a regression on our part. I have fixed this in PyOP2 so if you just update PyOP2 again it should go away. Additionally I actually added tests that the diagonals get created this time, so hopefully the same issue will not pop up again the next time one of us touches this part of the code. Now to address the zero pivot error. This is due to a change in PETSc: previously (certainly back in December) the default ILU preconditioner would shift the diagonal to try and avoid zero pivots. This was changed such that now the default is no shifting. With your operator, given that a large number of the entries /are/ zero, you therefore hit this zero pivot error. To rectify this, pass the solver parameter option: solver_parameters={'pc_factor_shift_type': 'nonzero'} If you're running with MPI, you should also pass the pair: 'sub_pc_factor_shift_type': 'nonzero' Since the default PC in parallel is process-block ILU. Cheers, Lawrence -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAEBAgAGBQJVQQ0eAAoJECOc1kQ8PEYvgEEH+wY26EMvhg2RHR+hwBTVBruz DpJOGdyJaBIIgMkDCP4/F0Q7aNyAmX5VBjD4EOlLh3zUJu0DIUT3AkGpYV9cYQ16 nRSed7eKsTb03HaiNwcxrNxJ2cGIiQeBWdJ8TadX3HYEGlBacTI7oMAzAjp+G0V2 U4rOlq+6ilTdiPJMvfADMLxU70tV6Ni4QgsQNdT0yWygLA/cefFuRlM1D/jE4EPq Wr8NTp8e4bu6Z1q42sFiK0kIGahTu42hdYTnUHJx7g2mbYh3qBHEaILnb8f5yXR4 OPRaLhCjiQAjYMsjoYexXpBgCX/zlVibYsCuJ+f1EbXuyVIQ/FJG64XhW/Dzrk4= =aHDU -----END PGP SIGNATURE-----