/**
* Matrix-vector multiplication adding to <tt>dst</tt>.
*/
- void vmult_add(BLOCK_VECTOR &dst,
- const BLOCK_VECTOR &src) const;
+ void vmult_add(BLOCK_VECTOR &dst,
+ const BLOCK_VECTOR &src) const;
/**
* Transposed matrix-vector multiplication.
/**
* Make function of base class available.
*/
- using BlockMatrixArray<number>::print_latex;
+ using BlockMatrixArray<number,BLOCK_VECTOR>::print_latex;
/**
* Make function of base class available.
*/
- using BlockMatrixArray<number>::n_block_rows;
+ using BlockMatrixArray<number,BLOCK_VECTOR>::n_block_rows;
/**
* Make function of base class available.
*/
- using BlockMatrixArray<number>::n_block_cols;
- using BlockMatrixArray<number>::clear;
- using BlockMatrixArray<number>::Subscriptor::subscribe;
- using BlockMatrixArray<number>::Subscriptor::unsubscribe;
+ using BlockMatrixArray<number,BLOCK_VECTOR>::n_block_cols;
+ using BlockMatrixArray<number,BLOCK_VECTOR>::clear;
+ using BlockMatrixArray<number,BLOCK_VECTOR>::Subscriptor::subscribe;
+ using BlockMatrixArray<number,BLOCK_VECTOR>::Subscriptor::unsubscribe;
/**
* @addtogroup Exceptions
inline
void
BlockTrianglePrecondition<number, BLOCK_VECTOR>::enter (const MATRIX &matrix,
- size_type row, size_type col,
- number prefix, bool transpose)
+ size_type row, size_type col,
+ number prefix, bool transpose)
{
BlockMatrixArray<number, BLOCK_VECTOR>::enter(matrix, row, col, prefix, transpose);
}
template <typename number, typename BLOCK_VECTOR>
void
BlockMatrixArray<number,BLOCK_VECTOR>::vmult_add (BLOCK_VECTOR &dst,
- const BLOCK_VECTOR &src) const
+ const BLOCK_VECTOR &src) const
{
GrowingVectorMemory<typename BLOCK_VECTOR::BlockType > mem;
Assert (dst.n_blocks() == block_rows,
template <typename number, typename BLOCK_VECTOR>
void
BlockMatrixArray<number,BLOCK_VECTOR>::vmult (BLOCK_VECTOR &dst,
- const BLOCK_VECTOR &src) const
+ const BLOCK_VECTOR &src) const
{
dst = 0.;
vmult_add (dst, src);
template <typename number, typename BLOCK_VECTOR>
void
BlockMatrixArray<number,BLOCK_VECTOR>::Tvmult_add (BLOCK_VECTOR &dst,
- const BLOCK_VECTOR &src) const
+ const BLOCK_VECTOR &src) const
{
GrowingVectorMemory<typename BLOCK_VECTOR::BlockType > mem;
Assert (dst.n_blocks() == block_cols,
template <typename number, typename BLOCK_VECTOR>
void
BlockMatrixArray<number,BLOCK_VECTOR>::Tvmult (BLOCK_VECTOR &dst,
- const BLOCK_VECTOR &src) const
+ const BLOCK_VECTOR &src) const
{
dst = 0.;
Tvmult_add (dst, src);
template class BlockTrianglePrecondition<float>;
template class BlockTrianglePrecondition<double>;
-template class BlockMatrixArray<double, TrilinosWrappers::MPI::BlockVector>;
+#ifdef DEAL_II_WITH_TRILINOS
template class BlockMatrixArray<float, TrilinosWrappers::MPI::BlockVector>;
+template class BlockMatrixArray<double, TrilinosWrappers::MPI::BlockVector>;
+template class BlockTrianglePrecondition<float, TrilinosWrappers::MPI::BlockVector>;
+template class BlockTrianglePrecondition<double, TrilinosWrappers::MPI::BlockVector>;
+#endif
+
+#ifdef DEAL_II_WITH_PETSC
+template class BlockMatrixArray<float, PETScWrappers::MPI::BlockVector>;
+template class BlockMatrixArray<double, PETScWrappers::MPI::BlockVector>;
+template class BlockTrianglePrecondition<float, PETScWrappers::MPI::BlockVector>;
+template class BlockTrianglePrecondition<double, PETScWrappers::MPI::BlockVector>;
+#endif
DEAL_II_NAMESPACE_CLOSE