dune-istl
2.2.0
|
Iterative Solvers supporting block recursive matrix and vector classes at compile time. More...
Iterative Solvers supporting block recursive matrix and vector classes at compile time.
The Iterative Solver Template Library applies generic programming in C++ to the domain of iterative solvers of linear systems stemming from finite element discretizations. Those discretizations exhibit a lot of structure, e.g:
Our matrix and vector interface supports a block recursive structure. Each sparse matrix entry can itself be either a sparse or a small dense matrix.
The solvers use this recursive block structure via template meta programming at compile time.
ISTL consists of the matrix and vector API and the solvers which use the Preconditioners preconditioners.
void Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >::apply | ( | domain_type & | x, |
range_type & | b, | ||
InverseOperatorResult & | res | ||
) |
Apply inverse operator,.
x | The left hand side to store the result in. |
b | The right hand side |
res | Object to store the statistics about applying the operator. |
References Dune::InverseOperatorResult::converged, Dune::InverseOperatorResult::iterations, Dune::Matrix< T, A >::M(), mat, and Dune::Matrix< T, A >::N().
void Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >::apply | ( | T * | x, |
T * | b | ||
) |
Apply SuperLu to C arrays.
References Dune::Matrix< T, A >::M(), mat, and Dune::Matrix< T, A >::N().
std::size_t Dune::ILUSubdomainSolver< M, X, Y >::copyToLocalMatrix | ( | const M & | A, |
S & | rowset | ||
) | [protected] |
Copy the local part of the global matrix to ILU.
A | The global matrix. |
rowset | The global indices of the local problem. |
References col.
void Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >::free | ( | ) |
void Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >::setMatrix | ( | const Matrix & | mat | ) |
Initialize data from given matrix.
References Dune::Matrix< T, A >::M(), mat, and Dune::Matrix< T, A >::N().
void Dune::ILU0SubdomainSolver< M, X, Y >::setSubMatrix | ( | const M & | A, |
S & | rowset | ||
) |
Set the data of the local problem.
A | The global matrix. |
rowset | The global indices of the local problem. |
S | The type of the set with the indices. |
References Dune::bilu0_decomposition().
void Dune::ILUNSubdomainSolver< M, X, Y >::setSubMatrix | ( | const M & | A, |
S & | rowset | ||
) |
Set the data of the local problem.
A | The global matrix. |
rowset | The global indices of the local problem. |
S | The type of the set with the indices. |
References Dune::bilu_decomposition().
void Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >::setSubMatrix | ( | const Matrix & | mat, |
const S & | rowIndexSet | ||
) |
References Dune::Matrix< T, A >::M(), mat, and Dune::Matrix< T, A >::N().
void Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >::setVerbosity | ( | bool | v | ) |
Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >::SuperLU | ( | const Matrix & | mat, |
bool | verbose = false |
||
) | [explicit] |
Constructs the SuperLU solver.
During the construction the matrix will be decomposed. That means that in each apply call forward and backward substitutions take place (and no decomposition).
mat | The matrix of the system to solve. |
verbose | If true some statistics are printed. |
Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >::SuperLU | ( | ) |
Empty default constructor.
Use setMatrix to tell SuperLU for what matrix it solves.
Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >::~SuperLU | ( | ) |
References Dune::Matrix< T, A >::M(), mat, and Dune::Matrix< T, A >::N().