const unsigned int n_block_cols,
VectorMemory<Vector<number> >& mem);
+ /**
+ * Adjust the matrix to a new
+ * size and delete all blocks.
+ */
+ void reinit (const unsigned int n_block_rows,
+ const unsigned int n_block_cols);
+
/**
* Add a block matrix entry. The
* <tt>matrix</tt> is entered
const unsigned int col,
const double prefix = 1.,
const bool transpose = false);
-
+
/**
* Delete all entries, i.e. reset
* the matrix to an empty state.
VectorMemory<Vector<number> >& mem,
bool backward = false);
-
+ /**
+ * Resize preconditioner to a new
+ * size and clear all blocks.
+ */
+ void reinit(const unsigned int n_block_rows);
+
/**
* Preconditioning.
*/
col (col),
prefix (prefix),
transpose (transpose),
- matrix (&matrix)
+ matrix (&matrix, typeid(*this).name())
{}
VectorMemory<Vector<number> >& mem)
: block_rows (n_block_rows),
block_cols (n_block_cols),
- mem(&mem)
+ mem(&mem, typeid(*this).name())
{}
+template <class MATRIX, typename number>
+inline
+void
+BlockMatrixArray<MATRIX,number>::reinit (
+ const unsigned int n_block_rows,
+ const unsigned int n_block_cols)
+{
+ clear();
+ block_rows = n_block_rows;
+ block_cols = n_block_cols;
+}
+
template <class MATRIX, typename number>
inline
void
{}
+template <class MATRIX, typename number>
+inline
+void
+BlockTrianglePrecondition<MATRIX,number>::reinit (
+ const unsigned int n)
+{
+ BlockMatrixArray<MATRIX,number>::reinit(n,n);
+}
+
template <class MATRIX, typename number>
inline
void