dune-istl  2.9.0
Classes | Typedefs | Functions
ISTL_Factory

Classes

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

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 std::shared_ptr< 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<class O , class Preconditioner >
std::shared_ptr< PreconditionerDune::wrapPreconditioner4Parallel (const std::shared_ptr< Preconditioner > &prec, const O &)
 
template<class M , class X , class Y , class C , class Preconditioner >
std::shared_ptr< PreconditionerDune::wrapPreconditioner4Parallel (const std::shared_ptr< Preconditioner > &prec, const std::shared_ptr< OverlappingSchwarzOperator< M, X, Y, C > > &op)
 
template<class M , class X , class Y , class C , class Preconditioner >
std::shared_ptr< PreconditionerDune::wrapPreconditioner4Parallel (const std::shared_ptr< Preconditioner > &prec, const std::shared_ptr< NonoverlappingSchwarzOperator< M, X, Y, C > > &op)
 
template<class M , class X , class Y >
std::shared_ptr< ScalarProduct< X > > Dune::createScalarProduct (const std::shared_ptr< MatrixAdapter< M, X, Y > > &)
 
template<class M , class X , class Y , class C >
std::shared_ptr< ScalarProduct< X > > Dune::createScalarProduct (const std::shared_ptr< OverlappingSchwarzOperator< M, X, Y, C > > &op)
 
template<class M , class X , class Y , class C >
std::shared_ptr< ScalarProduct< X > > Dune::createScalarProduct (const std::shared_ptr< NonoverlappingSchwarzOperator< M, X, Y, C > > &op)
 
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...
 
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 ()
 

Detailed Description

Typedef Documentation

◆ DirectSolverFactory

template<class M , class X , class Y >
using Dune::DirectSolverFactory = typedef Singleton<ParameterizedObjectFactory<DirectSolverSignature<M,X,Y> >>

◆ DirectSolverSignature

template<class M , class X , class Y >
using Dune::DirectSolverSignature = typedef std::shared_ptr<InverseOperator<X,Y> >(const M&, const ParameterTree&)

◆ IterativeSolverFactory

template<class X , class Y >
using Dune::IterativeSolverFactory = typedef Singleton<ParameterizedObjectFactory<IterativeSolverSignature<X,Y> >>

◆ IterativeSolverSignature

template<class X , class Y >
using Dune::IterativeSolverSignature = typedef 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&)

◆ PreconditionerFactory

template<class M , class X , class Y >
using Dune::PreconditionerFactory = typedef Singleton<ParameterizedObjectFactory<PreconditionerSignature<M,X,Y> >>

◆ PreconditionerSignature

template<class M , class X , class Y >
using Dune::PreconditionerSignature = typedef std::shared_ptr<Preconditioner<X,Y> >(const std::shared_ptr<M>&, const ParameterTree&)

Function Documentation

◆ createScalarProduct() [1/3]

template<class M , class X , class Y >
std::shared_ptr<ScalarProduct<X> > Dune::createScalarProduct ( const std::shared_ptr< MatrixAdapter< M, X, Y > > &  )

◆ createScalarProduct() [2/3]

template<class M , class X , class Y , class C >
std::shared_ptr<ScalarProduct<X> > Dune::createScalarProduct ( const std::shared_ptr< NonoverlappingSchwarzOperator< M, X, Y, C > > &  op)

◆ createScalarProduct() [3/3]

template<class M , class X , class Y , class C >
std::shared_ptr<ScalarProduct<X> > Dune::createScalarProduct ( const std::shared_ptr< OverlappingSchwarzOperator< M, X, Y, C > > &  op)

◆ defaultIterativeSolverCreator()

template<template< class... >class Solver>
auto Dune::defaultIterativeSolverCreator ( )

◆ defaultPreconditionerBlockLevelCreator()

template<template< class, class, class, int >class Preconditioner, int blockLevel = 1>
auto Dune::defaultPreconditionerBlockLevelCreator ( )

◆ defaultPreconditionerCreator()

template<template< class, class, class >class Preconditioner>
auto Dune::defaultPreconditionerCreator ( )

◆ getSolverFromFactory()

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.

Parameters
opOperator
configParameterTree with configuration
precCustom Preconditioner (optional). If not given it will be created with the PreconditionerFactory and the configuration given in subKey "preconditioner".

◆ wrapPreconditioner4Parallel() [1/3]

template<class O , class Preconditioner >
std::shared_ptr<Preconditioner> Dune::wrapPreconditioner4Parallel ( const std::shared_ptr< Preconditioner > &  prec,
const O &   
)

◆ wrapPreconditioner4Parallel() [2/3]

template<class M , class X , class Y , class C , class Preconditioner >
std::shared_ptr<Preconditioner> Dune::wrapPreconditioner4Parallel ( const std::shared_ptr< Preconditioner > &  prec,
const std::shared_ptr< NonoverlappingSchwarzOperator< M, X, Y, C > > &  op 
)

◆ wrapPreconditioner4Parallel() [3/3]

template<class M , class X , class Y , class C , class Preconditioner >
std::shared_ptr<Preconditioner> Dune::wrapPreconditioner4Parallel ( const std::shared_ptr< Preconditioner > &  prec,
const std::shared_ptr< OverlappingSchwarzOperator< M, X, Y, C > > &  op 
)