KASKADE 7 development version
|
#include <type_traits>
#include <boost/timer/timer.hpp>
#include <dune/istl/preconditioner.hh>
#include "fem/spaces.hh"
#include "linalg/conjugation.hh"
#include "linalg/direct.hh"
#include "linalg/domainDecompositionPreconditioner.hh"
#include "linalg/jacobiPreconditioner.hh"
#include "linalg/symmetricOperators.hh"
#include "mg/prolongation.hh"
#include "utilities/memory.hh"
#include "utilities/timing.hh"
Go to the source code of this file.
Classes | |
class | Kaskade::MultiplicativeMultiGrid< Entry, Index, Smoother, Prolongation > |
A general multiplicative multigrid preconditioner. More... | |
class | Kaskade::MakeJacobiSmoother |
Functor for creating Jacobi smoothers. More... | |
class | Kaskade::MakeAdditiveSchwarzSmoother< Space, Scalar > |
Functor for creating overlapping Schwarz smoothers. More... | |
class | Kaskade::DirectPreconditionerFloatWrapper< Domain, Range, SparseIndex > |
Namespaces | |
namespace | Kaskade |
Functions | |
template<typename Matrix > | |
auto | Kaskade::makeDirectPreconditioner (Matrix &&A, DirectType directType=DirectType::MUMPS) |
Creates a direct solver for the given matrix. More... | |
template<int domainBlockSize, int rangeBlockSize, class Index > | |
auto | Kaskade::makeDirectPreconditioner (NumaBCRSMatrix< Dune::FieldMatrix< float, rangeBlockSize, domainBlockSize >, Index > &&A, DirectType directType=DirectType::MUMPS) |
Creates a direct solver for the given matrix. This specialization is for matrices containing floats (single precision) as scalar entries. Since the Kaskade interface for direct solvers only works for doubles, the matrix is copied into a new matrix with double as scalar entries. Since the coarse grid matrix often is much smaller, this hopefully means neglectable overhead. More... | |