Traits.hpp 1.12 KB
Newer Older
1
2
#pragma once

Praetorius, Simon's avatar
Praetorius, Simon committed
3
#if AMDIS_HAS_MTL
4
5
#include <amdis/linearalgebra/mtl/Traits.hpp>

Praetorius, Simon's avatar
Praetorius, Simon committed
6
#elif AMDIS_HAS_EIGEN
7
8
#include <amdis/linearalgebra/eigen/Traits.hpp>

Praetorius, Simon's avatar
Praetorius, Simon committed
9
#elif AMDIS_HAS_PETSC
10
11
12
13
14
15
#include <amdis/linearalgebra/petsc/Traits.hpp>

#else // ISTL
#include <amdis/linearalgebra/istl/Traits.hpp>
#endif

16
17
18
19
20
21
22
23
24
25
namespace AMDiS
{
#ifdef DOXYGEN
  /**
   *  Base traits class for a linear solver for the system AX=B using an FE space described by a
   *  dune-functions Basis. This defines the general interface typedefs, all implementations are
   *  required to provide the typedefs listed here.
   *
   *  \tparam Basis  A global basis from dune-functions
   */
Praetorius, Simon's avatar
Praetorius, Simon committed
26
  template <class Basis>
27
28
29
  class BackendTraits
  {
  public:
Praetorius, Simon's avatar
Praetorius, Simon committed
30
31
32
33
34
    template <class T>
    using MatrixImpl = implementation_defined;   //< The backend matrix type

    template <class T>
    using VectorImpl = implementation_defined;   //< The backend vector type
35

Praetorius, Simon's avatar
Praetorius, Simon committed
36
    using SparsityPattern = implementation_defined; //< The SparsityPattern for the matrix type
37
38
39
40
    using PartitionSet = Dune::Partitions::All;  //< The dune partition set where to assemble operators
  };
#endif
} // end namespace AMDiS