dune-istl  2.7.1
Classes | Namespaces | Macros | Typedefs | Functions
solverfactory.hh File Reference
#include <unordered_map>
#include <functional>
#include <memory>
#include <dune/common/parametertree.hh>
#include <dune/common/singleton.hh>
#include <dune/istl/common/registry.hh>
#include <dune/istl/solver.hh>

Go to the source code of this file.

Classes

class  Dune::UnsupportedType
 
class  Dune::SolverFactory< Operator >
 Factory to assembly solvers configured by a ParameterTree. More...
 

Namespaces

 Dune
 

Macros

#define DUNE_REGISTER_DIRECT_SOLVER(name, ...)    DUNE_REGISTRY_PUT(DirectSolverTag, name, __VA_ARGS__)
 
#define DUNE_REGISTER_PRECONDITIONER(name, ...)    DUNE_REGISTRY_PUT(PreconditionerTag, name, __VA_ARGS__)
 
#define DUNE_REGISTER_ITERATIVE_SOLVER(name, ...)    DUNE_REGISTRY_PUT(IterativeSolverTag, name, __VA_ARGS__)
 

Typedefs

template<class M , class X , class Y >
using Dune::DirectSolverSignature = std::shared_ptr< InverseOperator< X, Y > >(const M &, const ParameterTree &)
 
template<class M , class X , class Y >
using Dune::DirectSolverFactory = Singleton< ParameterizedObjectFactory< DirectSolverSignature< M, X, Y > >>
 
template<class M , class X , class Y >
using Dune::PreconditionerSignature = std::shared_ptr< Preconditioner< X, Y > >(const M &, const ParameterTree &)
 
template<class M , class X , class Y >
using Dune::PreconditionerFactory = Singleton< ParameterizedObjectFactory< PreconditionerSignature< M, X, Y > >>
 
template<class X , class Y >
using Dune::IterativeSolverSignature = std::shared_ptr< InverseOperator< X, Y > >(const std::shared_ptr< LinearOperator< X, Y > > &, const std::shared_ptr< ScalarProduct< X > > &, const std::shared_ptr< Preconditioner< X, Y > >, const ParameterTree &)
 
template<class X , class Y >
using Dune::IterativeSolverFactory = Singleton< ParameterizedObjectFactory< IterativeSolverSignature< X, Y > >>
 

Functions

template<template< class, class, class, int >class Preconditioner, int blockLevel = 1>
auto Dune::defaultPreconditionerBlockLevelCreator ()
 
template<template< class, class, class >class Preconditioner>
auto Dune::defaultPreconditionerCreator ()
 
template<template< class... >class Solver>
auto Dune::defaultIterativeSolverCreator ()
 
template<class Operator >
std::shared_ptr< InverseOperator< typename Operator::domain_type, typename Operator::range_type > > Dune::getSolverFromFactory (std::shared_ptr< Operator > op, const ParameterTree &config, std::shared_ptr< Preconditioner< typename Operator::domain_type, typename Operator::range_type >> prec=nullptr)
 Instantiates an InverseOperator from an Operator and a configuration given as a ParameterTree. More...
 

Macro Definition Documentation

◆ DUNE_REGISTER_DIRECT_SOLVER

#define DUNE_REGISTER_DIRECT_SOLVER (   name,
  ... 
)     DUNE_REGISTRY_PUT(DirectSolverTag, name, __VA_ARGS__)

◆ DUNE_REGISTER_ITERATIVE_SOLVER

#define DUNE_REGISTER_ITERATIVE_SOLVER (   name,
  ... 
)     DUNE_REGISTRY_PUT(IterativeSolverTag, name, __VA_ARGS__)

◆ DUNE_REGISTER_PRECONDITIONER

#define DUNE_REGISTER_PRECONDITIONER (   name,
  ... 
)     DUNE_REGISTRY_PUT(PreconditionerTag, name, __VA_ARGS__)