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