template<class Domain_, class Range_>
class Kaskade::DirectSolver< Domain_, Range_ >
Dune::InverseOperator and Dune::Preconditioner interface for direct solvers.
This keeps a factorization during the lifetime of the object, however, due to shared data, efficient copying is possible.
Definition at line 98 of file direct.hh.
|
| DirectSolver () |
| Default constructor. More...
|
|
| DirectSolver (DirectSolver< Domain, Range > const &ds)=default |
| Copy constructor. More...
|
|
template<class GOP , int firstRow, int lastRow, int firstCol, int lastCol> |
| DirectSolver (AssembledGalerkinOperator< GOP, firstRow, lastRow, firstCol, lastCol > const &A, DirectType directType=DirectType::UMFPACK, FactorizationOptions options=FactorizationOptions()) |
| Constructs a direct solver from an assembled linear operator. More...
|
|
template<class AssembledGOP > |
| DirectSolver (AssembledGOP const &A, DirectType directType, MatrixProperties properties) |
| Constructs a direct solver from an assembled linear operator. More...
|
|
template<class FieldType > |
| DirectSolver (MatrixAsTriplet< FieldType > const &A, DirectType directType=DirectType::UMFPACK, FactorizationOptions options=FactorizationOptions()) |
| Constructs a direct solver from a triplet matrix. More...
|
|
template<class FieldType > |
| DirectSolver (MatrixAsTriplet< FieldType > const &A, DirectType directType, MatrixProperties properties) |
| Constructs a direct solver from a triplet matrix. More...
|
|
template<class FieldType > |
| DirectSolver (Dune::BCRSMatrix< Dune::FieldMatrix< FieldType, 1, 1 > > const &A, DirectType directType=DirectType::UMFPACK, MatrixProperties properties=MatrixProperties::GENERAL) |
| Constructs a direct solver from a BCRS matrix. A copy of the linear operator is held internally, thus the linear operator object is better not too large. More...
|
|
template<class FieldType , int n, int m, class Index > |
| DirectSolver (NumaBCRSMatrix< Dune::FieldMatrix< FieldType, n, m >, Index > const &A, DirectType directType, MatrixProperties properties) |
| Constructs a direct solver from a NumaBCRS matrix. A copy of the linear operator is held internally, thus the linear operator object is better not too large. More...
|
|
template<class FieldType , int n, int m, class Index > |
| DirectSolver (NumaBCRSMatrix< Dune::FieldMatrix< FieldType, n, m >, Index > const &A, DirectType directType=DirectType::UMFPACK, FactorizationOptions options=FactorizationOptions()) |
| Constructs a direct solver from a NumaBCRS matrix. A copy of the linear operator is held internally, thus the linear operator object is better not too large. More...
|
|
virtual void | pre (Domain &, Range &) |
| unused More...
|
|
virtual void | post (Domain &) |
| unused More...
|
|
virtual Dune::SolverCategory::Category | category () const override |
| returns the category of the operator More...
|
|
|
These methods apply the inverse operators, i.e. they solve the linear system. We provide several different interfaces such as Dune::InverseOperator and Dune::Preconditioner and some more (in particular const methods) for convenience. All the methods do essentially the same - they solve the system.
|
virtual void | apply (Domain &x, Range &b, Dune::InverseOperatorResult &res) |
| Solves the system for the given right hand side b . More...
|
|
void | apply (Domain &x, Range &b, Dune::InverseOperatorResult &res) const |
| Solves the system for the given right hand side b . More...
|
|
virtual void | apply (Domain &x, Range &b, double reduction, Dune::InverseOperatorResult &res) |
| Solves the system for the given right hand side b . More...
|
|
void | apply (Domain &x, Range const &b, double reduction, Dune::InverseOperatorResult &res) const |
| Solves the system for the given right hand side b . More...
|
|
void | apply (std::vector< Scalar > &v, double, Dune::InverseOperatorResult &res) const |
| The input vector v contains the rhs. It will be overwritten by the solution. More...
|
|
virtual void | apply (std::vector< Scalar > &v) const |
| Solves the system \( Ax = b \). More...
|
|
virtual void | apply (Domain &x, Range const &b) |
| Solves the system for the given right hand side b . More...
|
|
virtual void | apply (Domain &x, Range const &b) const |
| Solves the system for the given right hand side b . More...
|
|
template<class Domain_ , class Range_ >
template<class FieldType , int n, int m, class Index >
Constructs a direct solver from a NumaBCRS matrix. A copy of the linear operator is held internally, thus the linear operator object is better not too large.
Warning: Don't use this if block size is greater than 1, DirectType is MUMPS and the blocks on the diagonal are not diagonal, since MUMPS requires that only the lower triangle of the matrix is given. Todo: Throw exception in this case?
Definition at line 200 of file direct.hh.