Fwd: matrices without diagonals...

Todd Munson tmunson at mcs.anl.gov
Tue Oct 30 10:02:11 CDT 2007

I'll let you all decide the best course of action.  I'm just going to make 
the statement that a core dump is not a valid way to signify that the 
diagonal does not exist.  Something needs to be done...

SeqAIJ has a PetscScalar* for the various diagonal entries; not sure why 
the others do not do something similar if the diagonal is always required.


On Tue, 30 Oct 2007, Matthew Knepley wrote:

> I may be wrong, but I think a lot of AIJ methods need the diagonal. Do we think
> it is feasible to relax this? I would be more for filling the diagonal
> with zeros
> automatically.
>   Matt
> ---------- Forwarded message ----------
> From: Todd Munson <tmunson at mcs.anl.gov>
> Date: Oct 30, 2007 9:18 AM
> Subject: matrices without diagonals...
> To: Barry Smith <bsmith at mcs.anl.gov>
> Cc: Matthew Knepley <knepley at mcs.anl.gov>
> Barry,
> We discussed this yesterday and I want to come to a conclusion before I go
> and change any code.  The problem is that some of the matrix I have do not
> have diagonal entries...in fact both the rows and columns do not have any
> nonzeros.  Rather than PETSc terminating gracefully and telling me the
> problem, I get a segmentation violation and a core dump.
> There are two questions:
>   1) Which functions require a diagonal?
>   2) Should these functions check for the diagonal and abort with a useful
>      error message?
> My feeling is that the diagonal is required only in a few cases and it may
> not even be necessary, but I've been known to be wrong before.  Most of
> the code should work without requiring diagonal entries, which is why it
> should only check for them when necessary.
> Todd.
> -- 
> What most experimenters take for granted before they begin their
> experiments is infinitely more interesting than any results to which
> their experiments lead.
> -- Norbert Wiener

More information about the petsc-dev mailing list