KASKADE 7 development version
|
Interface for symmetric preconditioners. More...
#include <symmetricOperators.hh>
Interface for symmetric preconditioners.
In addition to the Dune::preconditioner interface, symmetric preconditioners provide the simultaneous evaluation of \( x = By \) and the energy product \( \langle By,y \rangle \), which can be implemented more efficiently than the sequential evaluation of both quantities.
Definition at line 208 of file symmetricOperators.hh.
Public Types | |
typedef X::field_type | field_type |
Public Member Functions | |
virtual void | pre (X &, Xstar &) |
Preconditioner preparation. More... | |
virtual void | post (X &x) |
Preconditioner cleanup. More... | |
virtual field_type | applyDp (X &x, Xstar const &y)=0 |
Computes \( x \leftarrow By \) and returns \( \langle By, y \rangle \). More... | |
virtual bool | requiresInitializedInput () const =0 |
Returns true if the target vector x has to be initialized to zero before calling apply or applyDp. More... | |
virtual Dune::SolverCategory::Category | category () const override |
returns the category of the operator More... | |
typedef X::field_type Kaskade::SymmetricPreconditioner< X, Xstar >::field_type |
Definition at line 211 of file symmetricOperators.hh.
|
pure virtual |
Computes \( x \leftarrow By \) and returns \( \langle By, y \rangle \).
Implemented in Kaskade::HierarchicalBasisPreconditioner< Grid, Domain, Range >, Kaskade::AdditiveMultiGrid< Smoother, Prolongation, CoarsePreconditioner >, Kaskade::MultiplicativeMultiGrid< Entry, Index, Smoother, Prolongation >, Kaskade::JacobiPreconditionerDetail::JacobiPreconditionerBase< Operator::matrix_type, Operator::domain_type, Operator::range_type >, Kaskade::IdentityPreconditioner< X >, and Kaskade::SymmetricPreconditionerWrapper< X, Xstar >.
|
inlineoverridevirtual |
returns the category of the operator
From the Dune doxygen documentation it is unclear what this is supposed to mean. We return a dummy here.
Definition at line 242 of file symmetricOperators.hh.
|
inlinevirtual |
Preconditioner cleanup.
The provided default implementation does nothing.
Reimplemented in Kaskade::HierarchicalBasisPreconditioner< Grid, Domain, Range >, and Kaskade::SymmetricPreconditionerWrapper< X, Xstar >.
Definition at line 225 of file symmetricOperators.hh.
|
inlinevirtual |
Preconditioner preparation.
The provided default implementation does nothing.
Reimplemented in Kaskade::HierarchicalBasisPreconditioner< Grid, Domain, Range >, and Kaskade::SymmetricPreconditionerWrapper< X, Xstar >.
Definition at line 218 of file symmetricOperators.hh.
|
pure virtual |
Returns true if the target vector x has to be initialized to zero before calling apply or applyDp.
Implemented in Kaskade::AgglomerationPreconditioner< Operator >, Kaskade::AgglomerationPreconditioner< AssembledGalerkinOperator< Assembler, firstRow, firstRow+1, firstCol, firstCol+1, IstlInterfaceDetail::RangeBlockSelector< firstRow, firstRow+1, firstCol, firstCol+1 >, true > >, Kaskade::PatchDomainDecompositionPreconditioner< Space, m, StorageTag, SparseMatrixIndex >, Kaskade::JacobiPreconditionerDetail::JacobiPreconditionerBase< Matrix, Domain, Range >, Kaskade::JacobiPreconditionerDetail::JacobiPreconditionerBase< Operator::matrix_type, Operator::domain_type, Operator::range_type >, Kaskade::JacobiPreconditionerDetail::JacobiPreconditionerBase< NumaBCRSMatrix< Entry, Index > >, Kaskade::JacobiPreconditioner< AssembledGalerkinOperator< Assembler, firstRow, lastRow, firstCol, lastCol, BlockFilter, symmetric > >, Kaskade::IdentityPreconditioner< X >, Kaskade::SymmetricPreconditionerWrapper< X, Xstar >, Kaskade::AdditiveMultiGrid< Smoother, Prolongation, CoarsePreconditioner >, Kaskade::HierarchicalBasisPreconditioner< Grid, Domain, Range >, Kaskade::MultiplicativeMultiGrid< Entry, Index, Smoother, Prolongation >, and Kaskade::GaussSeidelPreconditioner< Matrix, Domain, Range >.