dune-istl
2.2.0
|
Matrix and Vector classes that support a block recursive structure capable of representing the natural structure from Finite Element discretisations. More...
Classes | |
class | Dune::BCRSMatrix< B, A > |
A sparse block matrix with compressed row storage. More... | |
class | Dune::BDMatrix< B, A > |
A block-diagonal matrix. More... | |
class | Dune::BTDMatrix< B, A > |
A block-tridiagonal matrix. More... | |
class | Dune::BlockVector< B, A > |
A vector of blocks with memory management. More... | |
class | Dune::Matrix< T, A > |
A generic dynamic dense matrix. More... | |
struct | Dune::MatMultMatResult< M1, M2 > |
Helper TMP to get the result type of a sparse matrix matrix multiplication ( ![]() | |
struct | Dune::MatMultMatResult< FieldMatrix< T, n, k >, FieldMatrix< T, k, m > > |
struct | Dune::MatMultMatResult< BCRSMatrix< FieldMatrix< T, n, k >, A >, BCRSMatrix< FieldMatrix< T, k, m >, A1 > > |
struct | Dune::CheckIfDiagonalPresent< Matrix, blocklevel, l > |
Check whether the a matrix has diagonal values on blocklevel recursion levels. More... | |
struct | Dune::CheckIfDiagonalPresent< Matrix, 0, l > |
struct | Dune::CheckIfDiagonalPresent< MultiTypeBlockMatrix< T1, T2, T3, T4, T5, T6, T7, T8, T9 >, blocklevel, l > |
class | Dune::VariableBlockVector< B, A > |
A Vector of blocks with different blocksizes. More... | |
Modules | |
Block Recursive Iterative Kernels | |
IO for matrices and vectors. | |
Provides methods for reading and writing matrices and vectors in various formats. | |
Files | |
file | matrixmatrix.hh |
provides functions for sparse matrix matrix multiplication. | |
file | matrixutils.hh |
Some handy generic functions for ISTL matrices. | |
Typedefs | |
typedef BCRSMatrix < FieldMatrix< T, n, m >, A > ::CreateIterator | Dune::SparsityPatternInitializer< T, A, n, m >::CreateIterator |
typedef BCRSMatrix < FieldMatrix< T, n, m >, A > ::size_type | Dune::SparsityPatternInitializer< T, A, n, m >::size_type |
typedef Dune::BCRSMatrix < FieldMatrix< T, n, m >, TA > | Dune::MatrixInitializer< transpose, T, TA, n, m >::Matrix |
typedef Matrix::CreateIterator | Dune::MatrixInitializer< transpose, T, TA, n, m >::CreateIterator |
typedef Matrix::size_type | Dune::MatrixInitializer< transpose, T, TA, n, m >::size_type |
typedef Dune::BCRSMatrix < Dune::FieldMatrix< T, n, m > , TA > | Dune::MatrixInitializer< 1, T, TA, n, m >::Matrix |
typedef Matrix::CreateIterator | Dune::MatrixInitializer< 1, T, TA, n, m >::CreateIterator |
typedef Matrix::size_type | Dune::MatrixInitializer< 1, T, TA, n, m >::size_type |
typedef BCRSMatrix < FieldMatrix< T, n, m >, A > | Dune::EntryAccumulatorFather< T, A, n, m >::Matrix |
typedef Matrix::RowIterator | Dune::EntryAccumulatorFather< T, A, n, m >::Row |
typedef Matrix::ColIterator | Dune::EntryAccumulatorFather< T, A, n, m >::Col |
typedef BCRSMatrix < FieldMatrix< T, n, m >, A > | Dune::EntryAccumulator< T, A, n, m, transpose >::Matrix |
typedef Matrix::size_type | Dune::EntryAccumulator< T, A, n, m, transpose >::size_type |
typedef BCRSMatrix < FieldMatrix< T, n, m >, A > | Dune::EntryAccumulator< T, A, n, m, 0 >::Matrix |
typedef Matrix::size_type | Dune::EntryAccumulator< T, A, n, m, 0 >::size_type |
typedef BCRSMatrix < FieldMatrix< T, n, m >, A > | Dune::EntryAccumulator< T, A, n, m, 1 >::Matrix |
typedef Matrix::size_type | Dune::EntryAccumulator< T, A, n, m, 1 >::size_type |
typedef BCRSMatrix < FieldMatrix< T, n, m >, A > | Dune::EntryAccumulator< T, A, n, m, 2 >::Matrix |
typedef Matrix::size_type | Dune::EntryAccumulator< T, A, n, m, 2 >::size_type |
typedef FieldMatrix< T, n, m > | Dune::MatMultMatResult< FieldMatrix< T, n, k >, FieldMatrix< T, k, m > >::type |
typedef BCRSMatrix< typename MatMultMatResult< FieldMatrix < T, n, k >, FieldMatrix< T, k, m > >::type, A > | Dune::MatMultMatResult< BCRSMatrix< FieldMatrix< T, n, k >, A >, BCRSMatrix< FieldMatrix< T, k, m >, A1 > >::type |
Enumerations | |
enum | { Dune::SparsityPatternInitializer< T, A, n, m >::do_break = true } |
enum | { Dune::MatrixInitializer< transpose, T, TA, n, m >::do_break = true } |
enum | { Dune::MatrixInitializer< 1, T, TA, n, m >::do_break = false } |
enum | { Dune::EntryAccumulatorFather< T, A, n, m >::do_break = false } |
Functions | |
template<class T , class A , class A1 , class A2 , int n, int m, int k> | |
void | Dune::matMultTransposeMat (BCRSMatrix< FieldMatrix< T, n, k >, A > &res, const BCRSMatrix< FieldMatrix< T, n, m >, A1 > &mat, const BCRSMatrix< FieldMatrix< T, k, m >, A2 > &matt, bool tryHard=false) |
Calculate product of a sparse matrix with a transposed sparse matrices ( ![]() | |
template<class T , class A , class A1 , class A2 , int n, int m, int k> | |
void | Dune::matMultMat (BCRSMatrix< FieldMatrix< T, n, m >, A > &res, const BCRSMatrix< FieldMatrix< T, n, k >, A1 > &mat, const BCRSMatrix< FieldMatrix< T, k, m >, A2 > &matt, bool tryHard=false) |
Calculate product of two sparse matrices ( ![]() | |
template<class T , class A , class A1 , class A2 , int n, int m, int k> | |
void | Dune::transposeMatMultMat (BCRSMatrix< FieldMatrix< T, n, m >, A > &res, const BCRSMatrix< FieldMatrix< T, k, n >, A1 > &mat, const BCRSMatrix< FieldMatrix< T, k, m >, A2 > &matt, bool tryHard=false) |
Calculate product of a transposed sparse matrix with another sparse matrices ( ![]() | |
template<class M > | |
int | Dune::countNonZeros (const M &matrix) |
Get the number of nonzero fields in the matrix. | |
template<class X , class Y > | |
Y | Dune::Matrix< T, A >::transposedMult (const X &vec) |
Multiplication of the transposed matrix times a vector. | |
Variables | |
Matrix & mat | |
Col col |
Matrix and Vector classes that support a block recursive structure capable of representing the natural structure from Finite Element discretisations.
The interface of our matrices is designed according to what they represent from a mathematical point of view. The vector classes are representations of vector spaces:
The matrix classes represent linear maps from vector space
to vector space
the recursive block structure of the matrix rows and columns immediately follows from the recursive block structure of the vectors representing the domain and range of the mapping, respectively:
typedef Matrix::ColIterator Dune::EntryAccumulatorFather< T, A, n, m >::Col |
typedef BCRSMatrix<FieldMatrix<T,n,m>,A>::CreateIterator Dune::SparsityPatternInitializer< T, A, n, m >::CreateIterator |
typedef Matrix::CreateIterator Dune::MatrixInitializer< transpose, T, TA, n, m >::CreateIterator |
typedef Matrix::CreateIterator Dune::MatrixInitializer< 1, T, TA, n, m >::CreateIterator |
typedef Dune::BCRSMatrix<FieldMatrix<T,n,m>,TA> Dune::MatrixInitializer< transpose, T, TA, n, m >::Matrix |
typedef Dune::BCRSMatrix<Dune::FieldMatrix<T,n,m>,TA> Dune::MatrixInitializer< 1, T, TA, n, m >::Matrix |
typedef BCRSMatrix<FieldMatrix<T,n,m>,A> Dune::EntryAccumulatorFather< T, A, n, m >::Matrix |
typedef BCRSMatrix<FieldMatrix<T,n,m>,A> Dune::EntryAccumulator< T, A, n, m, transpose >::Matrix |
typedef BCRSMatrix<FieldMatrix<T,n,m>,A> Dune::EntryAccumulator< T, A, n, m, 0 >::Matrix |
typedef BCRSMatrix<FieldMatrix<T,n,m>,A> Dune::EntryAccumulator< T, A, n, m, 1 >::Matrix |
typedef BCRSMatrix<FieldMatrix<T,n,m>,A> Dune::EntryAccumulator< T, A, n, m, 2 >::Matrix |
typedef Matrix::RowIterator Dune::EntryAccumulatorFather< T, A, n, m >::Row |
typedef BCRSMatrix<FieldMatrix<T,n,m>,A>::size_type Dune::SparsityPatternInitializer< T, A, n, m >::size_type |
typedef Matrix::size_type Dune::MatrixInitializer< transpose, T, TA, n, m >::size_type |
typedef Matrix::size_type Dune::MatrixInitializer< 1, T, TA, n, m >::size_type |
typedef Matrix::size_type Dune::EntryAccumulator< T, A, n, m, transpose >::size_type |
typedef Matrix::size_type Dune::EntryAccumulator< T, A, n, m, 0 >::size_type |
typedef Matrix::size_type Dune::EntryAccumulator< T, A, n, m, 1 >::size_type |
typedef Matrix::size_type Dune::EntryAccumulator< T, A, n, m, 2 >::size_type |
typedef FieldMatrix<T,n,m> Dune::MatMultMatResult< FieldMatrix< T, n, k >, FieldMatrix< T, k, m > >::type |
typedef BCRSMatrix<typename MatMultMatResult<FieldMatrix<T,n,k>, FieldMatrix<T,k,m> >::type,A> Dune::MatMultMatResult< BCRSMatrix< FieldMatrix< T, n, k >, A >, BCRSMatrix< FieldMatrix< T, k, m >, A1 > >::type |
int Dune::countNonZeros | ( | const M & | matrix | ) | [inline] |
Get the number of nonzero fields in the matrix.
This is not the number of nonzero blocks, but the number of non zero scalar entries (on blocklevel 1) if the matrix is viewed as a flat matrix.
For FieldMatrix this is simply the number of columns times the number of rows, for a BCRSMatrix<FieldMatrix<K,n,m>> this is the number of nonzero blocks time n*m.
References count.
Referenced by Dune::Amg::MatrixHierarchy< M, PI, A >::build(), and Dune::writeMatrixMarket().
void Dune::matMultMat | ( | BCRSMatrix< FieldMatrix< T, n, m >, A > & | res, |
const BCRSMatrix< FieldMatrix< T, n, k >, A1 > & | mat, | ||
const BCRSMatrix< FieldMatrix< T, k, m >, A2 > & | matt, | ||
bool | tryHard = false |
||
) |
void Dune::matMultTransposeMat | ( | BCRSMatrix< FieldMatrix< T, n, k >, A > & | res, |
const BCRSMatrix< FieldMatrix< T, n, m >, A1 > & | mat, | ||
const BCRSMatrix< FieldMatrix< T, k, m >, A2 > & | matt, | ||
bool | tryHard = false |
||
) |
Y Dune::Matrix< T, A >::transposedMult | ( | const X & | vec | ) | [inline] |
Multiplication of the transposed matrix times a vector.
This method is deprecated. Use method mtv instead.
void Dune::transposeMatMultMat | ( | BCRSMatrix< FieldMatrix< T, n, m >, A > & | res, |
const BCRSMatrix< FieldMatrix< T, k, n >, A1 > & | mat, | ||
const BCRSMatrix< FieldMatrix< T, k, m >, A2 > & | matt, | ||
bool | tryHard = false |
||
) |
Matrix& A |
Referenced by Dune::DynamicMatrixSubdomainSolver< BCRSMatrix< FieldMatrix< K, n, n >, Al >, X, Y >::apply(), Dune::SuperLUMatrix< BCRSMatrix< FieldMatrix< B, n, m >, TA > >::operator const SuperMatrix &(), Dune::SuperLUMatrix< BCRSMatrix< FieldMatrix< B, n, m >, TA > >::operator SuperMatrix &(), Dune::print_row(), Dune::printSparseMatrix(), Dune::readMatrixMarket(), Dune::DynamicMatrixSubdomainSolver< BCRSMatrix< FieldMatrix< K, n, n >, Al >, X, Y >::setSubMatrix(), test_FieldMatrix(), test_Interface(), test_IO(), and test_Iter().
Col col |
Referenced by Dune::BCRSMatrix< B, A >::addindex(), Dune::Amg::BaseGalerkinProduct::calculate(), Dune::MatrixDimension< BCRSMatrix< B, TA > >::coldim(), Dune::ILUSubdomainSolver< M, X, Y >::copyToLocalMatrix(), Dune::copyToSuperMatrix(), Dune::mm_print_entry(), Dune::OverlappingAssigner< DynamicMatrixSubdomainSolver< BCRSMatrix< FieldMatrix< K, n, n >, Al >, X, Y > >::operator()(), Dune::OverlappingAssigner< SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > > >::operator()(), Dune::OverlappingAssignerILUBase< M, X, Y >::operator()(), Dune::printSparseMatrix(), Dune::redistributeSparsityPattern(), Dune::Amg::DirichletBoundarySetter< T >::set(), test_Interface(), Dune::writeCompColMatrixToMatlab(), and Dune::writeMatrixMarket().
Col Dune::EntryAccumulatorFather< T, A, n, m >::col [protected] |
std::size_t count |
Matrix& mat |
Referenced by Dune::SuperMatrixInitializer< BCRSMatrix< FieldMatrix< T, n, m >, A > >::addRowNnz(), Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >::apply(), Dune::SuperMatrixInitializer< BCRSMatrix< FieldMatrix< T, n, m >, A > >::calcColstart(), Dune::SuperMatrixInitializer< BCRSMatrix< FieldMatrix< T, n, m >, A > >::copyValue(), Dune::SuperMatrixInitializer< BCRSMatrix< FieldMatrix< T, n, m >, A > >::createMatrix(), Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >::free(), Dune::matMultMat(), Dune::matMultTransposeMat(), Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >::nnz(), Dune::OverlappingAssigner< DynamicMatrixSubdomainSolver< BCRSMatrix< FieldMatrix< K, n, n >, Al >, X, Y > >::operator()(), Dune::OverlappingAssigner< SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > > >::operator()(), Dune::OverlappingAssignerILUBase< M, X, Y >::operator()(), Dune::printSparseMatrix(), Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >::setMatrix(), Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >::setSubMatrix(), Dune::SuperMatrixInitializer< BCRSMatrix< FieldMatrix< T, n, m >, A > >::SuperMatrixInitializer(), Dune::transposeMatMultMat(), Dune::writeCompColMatrixToMatlab(), and Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >::~SuperLU().
Matrix& Dune::EntryAccumulatorFather< T, A, n, m >::mat [protected] |
Row row |
Referenced by Dune::BCRSMatrix< B, A >::addindex(), Dune::Amg::BaseGalerkinProduct::calculate(), Dune::CheckIfDiagonalPresent< Matrix, blocklevel, l >::check(), Dune::CheckIfDiagonalPresent< Matrix, 0, l >::check(), Dune::MatrixDimension< BCRSMatrix< B, TA > >::coldim(), Dune::copyToSuperMatrix(), Dune::Amg::ConnectivityConstructor< G, T >::examine(), Dune::Amg::ConnectivityConstructor< G, SequentialInformation >::examine(), Dune::MatrixIndexSet::import(), Dune::OverlappingSchwarzInitializer< I, S, D >::IndexMap::insert(), Dune::mm_print_entry(), Dune::Matrix< T, A >::operator[](), Dune::printSparseMatrix(), Dune::redistributeSparsityPattern(), Dune::MatrixDimension< BCRSMatrix< B, TA > >::rowdim(), Dune::MatrixIndexSet::rowsize(), Dune::SeqOverlappingSchwarz< M, X, TM, TD, TA >::SeqOverlappingSchwarz(), Dune::Amg::DirichletBoundarySetter< T >::set(), test_Interface(), Dune::writeCompColMatrixToMatlab(), Dune::writeMatrixMarket(), and Dune::writeMatrixToMatlabHelper().
CreateIterator rowiter |