AMDiS  0.3
The Adaptive Multi-Dimensional Simulation Toolbox
CreatorInterfaces.hpp
1 #pragma once
2 
3 #include <memory>
4 
5 #include <dune/istl/preconditioner.hh>
6 #include <dune/istl/solver.hh>
7 
8 namespace AMDiS
9 {
10  template <class Traits>
12  {
13  virtual ~ISTLPreconCreatorInterface() = default;
14 
15  using Interface = Dune::Preconditioner<typename Traits::X, typename Traits::Y>;
16  virtual std::unique_ptr<Interface> create(typename Traits::M const& mat, typename Traits::Comm const& comm) const = 0;
17  };
18 
19  template <class Traits>
21  {
22  virtual ~ISTLSolverCreatorInterface() = default;
23 
24  using Interface = Dune::InverseOperator<typename Traits::X, typename Traits::Y>;
25  virtual std::unique_ptr<Interface> create(typename Traits::M const& mat, typename Traits::Comm const& comm) const = 0;
26  };
27 
28 } // end namespace AMDiS
Definition: CreatorInterfaces.hpp:11
Contains all classes needed for solving linear and non linear equation systems.
Definition: AdaptBase.hpp:6
Definition: CreatorInterfaces.hpp:20