KASKADE 7 development version
|
DEPRECATED A partial direct preconditioner applicable to assembled operators. More...
#include <partialDirectPreconditioner.hh>
DEPRECATED A partial direct preconditioner applicable to assembled operators.
THIS PRECONDITIONER IS DEPRECATED. PREFER A P-MULTIGRID PRECONDITIONER, WHICH IS MUCH MORE EFFECTIVE FOR HIGHER POLYNOMIAL DEGREES AND WORKS WITH SPACES OTHER THAN HIERARCHICAL LAGRANGE.
The specified direct solver is used for preconditioning the submatrix with the given range, and a Jacobi preconditioner is used for the remaining variables.
This approach is effective for elliptic problems discretized with hierarchical FE spaces (e.g., using ContinuousHierarchicMapper) where the first order ansatz functions span the usual linear FE space. This subspace forms a rather good coarse space with relatively small dimension (in 2D with quadratic elements 1/4, for 3D and/or higher polynomial degree less). The small dimension of the linear FE subspace reduces the direct solver fill-in and hence its memory consumption significantly.
The quality of the preconditioner deteriorates with increasing polynomial degree of the ansatz functions. Thus, the preconditioner is not asymptotically optimal for increasing degree. Nevertheless it is very effective in practice for moderate ansatz order (2-5). A (small) benefit is that its relative cost decreases with increasing order.
Op | the assembled operator type, a AssembledGalerkinOperator<...> type. |
Definition at line 51 of file partialDirectPreconditioner.hh.
Public Member Functions | |
PartialDirectPreconditioner (Op const &op, size_t first, size_t last, DirectType directType=DirectType::UMFPACK, MatrixProperties matprop=MatrixProperties::SYMMETRIC) | |
virtual void | pre (Domain &, Range &) |
virtual void | post (Domain &) |
virtual void | apply (Domain &x, Range const &y) |
Static Public Attributes | |
static int const | category = Dune::SolverCategory::sequential |
|
inline |
Definition at line 66 of file partialDirectPreconditioner.hh.
|
inlinevirtual |
Definition at line 91 of file partialDirectPreconditioner.hh.
|
inlinevirtual |
Definition at line 89 of file partialDirectPreconditioner.hh.
|
inlinevirtual |
Definition at line 88 of file partialDirectPreconditioner.hh.
|
static |
Definition at line 58 of file partialDirectPreconditioner.hh.