13#ifndef PARTIAL_DIRECT_PRECONDITIONER_HH
14#define PARTIAL_DIRECT_PRECONDITIONER_HH
16#include <dune/istl/preconditioners.hh>
17#include <dune/istl/solvercategory.hh>
53 typedef typename Op::Domain Domain;
54 typedef typename Op::Domain Range;
58 static int const category = Dune::SolverCategory::sequential;
74 for (
size_t in=0; in<A.
nnz(); ++in)
88 virtual void pre(Domain&, Range&) {}
89 virtual void post (Domain&) {}
91 virtual void apply (Domain& x, Range
const& y) {
92 std::vector<Scalar> b(y.dim());
99 std::unique_ptr<Factorization<Scalar> > solver;
std::vector< SparseIndexInt > ridx
row indices
std::vector< SparseIndexInt > cidx
column indices
std::vector< Scalar > data
data
DEPRECATED A partial direct preconditioner applicable to assembled operators.
static int const category
PartialDirectPreconditioner(Op const &op, size_t first, size_t last, DirectType directType=DirectType::UMFPACK, MatrixProperties matprop=MatrixProperties::SYMMETRIC)
virtual void post(Domain &)
virtual void pre(Domain &, Range &)
virtual void apply(Domain &x, Range const &y)
std::unique_ptr< Factorization< Scalar > > getFactorization(DirectType directType, MatrixAsTriplet< Scalar, Index > const &A, FactorizationOptions options)
Creates a factorization of the given triplet matrix.
DirectType
Available direct solvers for linear equation systems.
@ UMFPACK
UMFPack from SuiteSparse, using 32 bit integer indices.
MatrixProperties
Characterizations of sparse matrix properties.
The Options struct allows to specify several options of factorization.
!std ::is_same< decltype(hasFieldType< Type >(0)), TypeNotFound >::value ::type type