From 91cffb27bb87301638026316e24c8ac61116f966 Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Wed, 17 May 2000 14:30:14 +0000 Subject: [PATCH] Add apply_boundary_values for block matrices and vectors. git-svn-id: https://svn.dealii.org/trunk@2879 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/deal.II/include/numerics/matrices.h | 34 +++++++++++++++++---- 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/deal.II/deal.II/include/numerics/matrices.h b/deal.II/deal.II/include/numerics/matrices.h index 786a733324..14aa6cdb3f 100644 --- a/deal.II/deal.II/include/numerics/matrices.h +++ b/deal.II/deal.II/include/numerics/matrices.h @@ -436,7 +436,7 @@ class MatrixCreator * seems to be too expensive. * * - * @author Wolfgang Bangerth, 1998 + * @author Wolfgang Bangerth, 1998, 2000 */ template class MatrixTools : public MatrixCreator @@ -448,12 +448,30 @@ class MatrixTools : public MatrixCreator * as described in the general * documentation. */ - static void apply_boundary_values (const map &boundary_values, - SparseMatrix &matrix, - Vector &solution, - Vector &right_hand_side, - const bool eliminate_columns = true); + static void + apply_boundary_values (const map &boundary_values, + SparseMatrix &matrix, + Vector &solution, + Vector &right_hand_side, + const bool eliminate_columns = true); + /** + * Apply dirichlet boundary + * conditions to the system + * matrix and vectors as + * described in the general + * documentation. This function + * works for block sparse + * matrices and block vectors + */ + template + static void + apply_boundary_values (const map &boundary_values, + BlockSparseMatrix &matrix, + BlockVector &solution, + BlockVector &right_hand_side, + const bool eliminate_columns = true); + /** * Exception */ @@ -461,6 +479,10 @@ class MatrixTools : public MatrixCreator int, int, << "The dimensions " << arg1 << " and " << arg2 << " don't match."); + /** + * Exception + */ + DeclException0 (ExcMatrixNotBlockSquare); }; -- 2.39.5