Comment 6 for bug 927539

Revision history for this message
Joachim Haga (jobh) wrote : Re: [Bug 927539] Re: Missing diagonals after subdomain assembly

I haven't looked at the changes, just a comment. I don't think "dont_fail"
needs to be a parameter. ;-)
Den 7. mai 2012 16.41 skrev "Cian Wilson" <email address hidden>
følgende:

> This appears to have become a fatal (or at least very verbose) error in
> petsc-dev so I've locally implemented a very simple and naive
> implementation to get around it (see linked branch). Would appreciate
> some feedback on it to make it mergeable.
>
> In particular:
> - this now happens automatically when using the standard assembler,
> should it be optional as suggested above and if so where would that option
> go (subroutine parameter or global)?
> - I've only modified the standard assembler and not the openmp assembler,
> should it go there too?
> - as this bug only affects the petsc backend should it only happen when
> using petsc?
> - any other comments/suggestions?
>
> Run through of dolfin tests for linked branch available at:
>
> http://diana.apam.columbia.edu:8010/builders/dolfin-x86-64-diag/builds/0/steps/shell_4/logs/stdio
>
> --
> You received this bug notification because you are a member of DOLFIN
> Team, which is subscribed to DOLFIN.
> https://bugs.launchpad.net/bugs/927539
>
> Title:
> Missing diagonals after subdomain assembly
>
> Status in DOLFIN:
> Confirmed
>
> Bug description:
> The matrix produced by subdomain assembly seems to not (always)
> include diagonal entries. PETSc says:
>
> [0]PETSC ERROR: --------------------- Error Message
> ------------------------------------
> [0]PETSC ERROR: Object is in wrong state!
> [0]PETSC ERROR: Matrix is missing diagonal entry in row 124!
> [0]PETSC ERROR:
> ------------------------------------------------------------------------
>
> I don't use this functionality, maybe this is fine ("user error"). But
> since PETSc apparently consider a matrix with missing diagonals an
> error, dolfin should probably not produce them.
>
> Reproduction: Put this at the end of the method
> test_subdomain_assembly_meshdomains() in
> test/unit/fem/python/SystemAssembler.py. Notice that there is no
> boundary active, so the problem isn't just that we're missing a
> diagonal we actually need for the DirichletBC.
>
> A = assemble(a0)
> def boundary(x): return False
> bc = DirichletBC(V, Constant(0.0), boundary)
> bc.apply(A)
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/dolfin/+bug/927539/+subscriptions
>