AMDiS 2.10
The Adaptive Multi-Dimensional Simulation Toolbox
IterativeSolverCreator< M, X, Y, IterativeSolver > Class Template Reference

Default solver creator for iterative solvers. More...

#include <ISTLSolverCreator.hpp>

Inherits CreatorInterfaceName< LinearSolverInterface< M, X, Y > >, and ISTLIterativeSolverCreatorBase< Traits >.

Public Types

using SolverBase = LinearSolverInterface< M, X, Y >
 
using T = typename M::Scalar
 
template<class Precon >
using Solver = IterativeRunner< M, X, Y, IterativeSolver< Precon > >
 
template<class Ordering >
using IncompleteCholesky = Solver< Eigen::IncompleteCholesky< T, Eigen::Lower|Eigen::Upper, Ordering > >
 

Public Member Functions

std::unique_ptr< SolverBasecreateWithString (std::string prefix) override
 Must be implemented by sub classes of CreatorInterfaceName. Creates a new instance of the sub class of BaseClass by passing a string to the constructor. More...
 
std::unique_ptr< Interface > createSolver (typename Traits::M const &mat, typename Traits::Comm const &comm) const override
 
- Public Member Functions inherited from CreatorInterfaceName< LinearSolverInterface< M, X, Y > >
std::unique_ptr< LinearSolverInterface< M, X, Y > > create () final
 Must be implemented by sub classes of CreatorInterface. Creates a new instance of the sub class of BaseClass. More...
 
virtual std::unique_ptr< LinearSolverInterface< M, X, Y > > createWithString (std::string)=0
 Must be implemented by sub classes of CreatorInterfaceName. Creates a new instance of the sub class of BaseClass by passing a string to the constructor. More...
 
virtual std::unique_ptr< LinearSolverInterface< M, X, Y > > create ()=0
 Must be implemented by sub classes of CreatorInterface. Creates a new instance of the sub class of BaseClass. More...
 
- Public Member Functions inherited from ISTLIterativeSolverCreatorBase< Traits >
void init (std::string const &prefix) override
 Prepare the solver for the creation. More...
 
virtual void init (std::string const &prefix)
 Prepare the solver for the creation. More...
 
virtual std::unique_ptr< Dune::InverseOperator< X, Y > > createSolver (typename Traits::M const &A, typename Traits::Comm const &comm) const =0
 
virtual std::unique_ptr< tag::solver< Traits > > create ()=0
 Must be implemented by sub classes of CreatorInterface. Creates a new instance of the sub class of BaseClass.
 

Additional Inherited Members

- Protected Member Functions inherited from ISTLIterativeSolverCreatorBase< Traits >
template<class Solver , class... Args>
auto create_impl (typename Traits::M const &mat, typename Traits::Comm const &comm, Args &&... args) const
 
- Protected Attributes inherited from ISTLIterativeSolverCreatorBase< Traits >
int maxIter_ = 500
 
real_type rTol_ = 1.e-6
 
ISTLPreconCreatorBase< Traits > * preconCreator_ = nullptr
 
- Protected Attributes inherited from ISTLSolverCreatorBase< Traits >
int info_ = 0
 

Detailed Description

template<class M, class X, class Y, template< class > class IterativeSolver>
class AMDiS::IterativeSolverCreator< M, X, Y, IterativeSolver >

Default solver creator for iterative solvers.

Constructs a linear solver, using the constructor signature Solver(LinOp, ScalarProd, Precon, rTol, maxIter, info)

Member Function Documentation

◆ createSolver()

std::unique_ptr< Interface > createSolver ( typename Traits::M const &  mat,
typename Traits::Comm const &  comm 
) const
inlineoverridevirtual

◆ createWithString()

std::unique_ptr< SolverBase > createWithString ( std::string  )
inlineoverridevirtual

Must be implemented by sub classes of CreatorInterfaceName. Creates a new instance of the sub class of BaseClass by passing a string to the constructor.

Implements CreatorInterfaceName< LinearSolverInterface< M, X, Y > >.

References Initfile::get().


The documentation for this class was generated from the following files: