From e83f7cd1cb8fa2fd5e107f1803ec6227566ad0a5 Mon Sep 17 00:00:00 2001 From: bangerth Date: Thu, 31 Jul 2008 12:25:57 +0000 Subject: [PATCH] Implement a few missing functions. git-svn-id: https://svn.dealii.org/trunk@16460 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/lac/source/chunk_sparsity_pattern.cc | 80 ++++++++++++++++++-- 1 file changed, 74 insertions(+), 6 deletions(-) diff --git a/deal.II/lac/source/chunk_sparsity_pattern.cc b/deal.II/lac/source/chunk_sparsity_pattern.cc index b1e3216729..c2b1fae0f9 100644 --- a/deal.II/lac/source/chunk_sparsity_pattern.cc +++ b/deal.II/lac/source/chunk_sparsity_pattern.cc @@ -22,7 +22,7 @@ DEAL_II_NAMESPACE_OPEN ChunkSparsityPattern::ChunkSparsityPattern () { - reinit (0,0,0,0); + reinit (0,0,0,1); } @@ -47,6 +47,8 @@ ChunkSparsityPattern::ChunkSparsityPattern (const unsigned int m, const unsigned int chunk_size, const bool optimize_diag) { + Assert (chunk_size > 0, ExcInvalidNumber (chunk_size)); + reinit (m,n,max_per_row, chunk_size, optimize_diag); } @@ -59,6 +61,8 @@ ChunkSparsityPattern::ChunkSparsityPattern ( const unsigned int chunk_size, const bool optimize_diag) { + Assert (chunk_size > 0, ExcInvalidNumber (chunk_size)); + reinit (m, n, row_lengths, chunk_size, optimize_diag); } @@ -79,6 +83,8 @@ ChunkSparsityPattern::ChunkSparsityPattern ( const unsigned int chunk_size, const bool optimize_diag) { + Assert (chunk_size > 0, ExcInvalidNumber (chunk_size)); + reinit (m, m, row_lengths, chunk_size, optimize_diag); } @@ -111,6 +117,8 @@ ChunkSparsityPattern::reinit (const unsigned int m, const unsigned int chunk_size, const bool optimize_diag) { + Assert (chunk_size > 0, ExcInvalidNumber (chunk_size)); + // simply map this function to the // other @p{reinit} function const std::vector row_lengths (m, max_per_row); @@ -128,7 +136,8 @@ ChunkSparsityPattern::reinit ( const bool optimize_diag) { Assert (row_lengths.size() == m, ExcInvalidNumber (m)); - + Assert (chunk_size > 0, ExcInvalidNumber (chunk_size)); + rows = m; cols = n; @@ -177,6 +186,8 @@ ChunkSparsityPattern::copy_from (const CompressedSparsityPattern &csp, const unsigned int chunk_size, const bool optimize_diag) { + Assert (chunk_size > 0, ExcInvalidNumber (chunk_size)); + // count number of entries per row, then // initialize the underlying sparsity // pattern @@ -205,6 +216,8 @@ ChunkSparsityPattern::copy_from (const CompressedSetSparsityPattern &csp, const unsigned int chunk_size, const bool optimize_diag) { + Assert (chunk_size > 0, ExcInvalidNumber (chunk_size)); + // count number of entries per row, then // initialize the underlying sparsity // pattern @@ -242,6 +255,8 @@ void ChunkSparsityPattern::copy_from (const FullMatrix &matrix, const unsigned int chunk_size, const bool optimize_diag) { + Assert (chunk_size > 0, ExcInvalidNumber (chunk_size)); + // count number of entries per row, then // initialize the underlying sparsity // pattern @@ -274,6 +289,8 @@ ChunkSparsityPattern::reinit ( const unsigned int chunk_size, const bool optimize_diag) { + Assert (chunk_size > 0, ExcInvalidNumber (chunk_size)); + reinit(m, n, make_slice(row_lengths), chunk_size, optimize_diag); } @@ -319,6 +336,16 @@ ChunkSparsityPattern::exists (const unsigned int i, +unsigned int +ChunkSparsityPattern::row_length (const unsigned int i) const +{ + Assert (i(i*chunk_size+e) + << std::endl; + + AssertThrow (out, ExcIO()); } -- 2.39.5