From 908fdd7e9d946b2ec89ae2ec7819e28a76d742a2 Mon Sep 17 00:00:00 2001 From: Guido Kanschat Date: Sat, 3 Dec 2005 17:29:05 +0000 Subject: [PATCH] throw exception if no diagonal element has been entered git-svn-id: https://svn.dealii.org/trunk@11809 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/lac/include/lac/block_matrix_array.h | 17 ++++++++++++++++- deal.II/lac/source/block_matrix_array.cc | 2 ++ 2 files changed, 18 insertions(+), 1 deletion(-) 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 -- 2.39.5