KASKADE 7 development version
Classes | Namespaces | Functions
multiplicativeMultigrid.hh File Reference
#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...