This happens to be a case one of my students ran into today. Again for #610.
double,
<< "The strengthening parameter " << arg1
<< " is not greater or equal than zero!");
+ /**
+ * Exception
+ */
+ DeclException1 (ExcZeroPivot,
+ size_type,
+ << "While computing the ILU decomposition, the algorithm "
+ "found a zero pivot on the diagonal of row "
+ << arg1
+ << ". This must stop the ILU algorithm because it means "
+ "that the matrix for which you try to compute a "
+ "decomposition is singular.");
//@}
};
// now we have to deal with the diagonal element. in the book it is
// located at position 'j', but here we use the convention of storing
// the diagonal element first, so instead of j we use uptr[k]=ia[k]
- Assert (luval[ia[k]] != 0, ExcInternalError());
+ Assert (luval[ia[k]] != 0, ExcZeroPivot(k));
luval[ia[k]] = 1./luval[ia[k]];
In the beginning the Universe was created. This has made a lot of
people very angry and has been widely regarded as a bad move.
Douglas Adams