From: Guido Kanschat Date: Sat, 3 Dec 2005 17:29:05 +0000 (+0000) Subject: throw exception if no diagonal element has been entered X-Git-Tag: v8.0.0~12827 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=908fdd7e9d946b2ec89ae2ec7819e28a76d742a2;p=dealii.git throw exception if no diagonal element has been entered git-svn-id: https://svn.dealii.org/trunk@11809 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/lac/include/lac/block_matrix_array.h b/deal.II/lac/include/lac/block_matrix_array.h index 78e0715a84..4a867ecfd5 100644 --- a/deal.II/lac/include/lac/block_matrix_array.h +++ b/deal.II/lac/include/lac/block_matrix_array.h @@ -532,7 +532,22 @@ class BlockTrianglePrecondition * @{ */ /** - * Multiple diagonal element. + * Each diagonal block must + * contain one and only one + * matrix. If this exception is + * thrown, you did not enter a + * matrix here. + */ + DeclException1(ExcNoDiagonal, + unsigned int, + << "No diagonal entry was added for block " << arg1); + + /** + * Each diagonal block must + * contain one and only one + * matrix. If this exception is + * thrown, you entered a second + * matrix here. */ DeclException1(ExcMultipleDiagonal, unsigned int, diff --git a/deal.II/lac/source/block_matrix_array.cc b/deal.II/lac/source/block_matrix_array.cc index 734758e295..bc0870f62f 100644 --- a/deal.II/lac/source/block_matrix_array.cc +++ b/deal.II/lac/source/block_matrix_array.cc @@ -333,6 +333,8 @@ BlockTrianglePrecondition::do_row ( dst.block(i).add (-1 * m->prefix, aux); } } + Assert (diagonal != end, ExcNoDiagonal(row_num)); + if (diagonal->transpose) diagonal->matrix->Tvmult(aux, dst.block(row_num)); else