[firedrake] Nullspace & VectorSpaceBasis

Lawrence Mitchell lawrence.mitchell at imperial.ac.uk
Wed Apr 29 17:56:01 BST 2015


-----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-----



More information about the firedrake mailing list