Traits.hpp 833 Bytes
Newer Older
1
2
#pragma once

3
4
#include <dune/grid/common/partitionset.hh>
#include <amdis/linearalgebra/Communication.hpp>
Praetorius, Simon's avatar
Praetorius, Simon committed
5
6
7
#include <amdis/linearalgebra/mtl/SlotSize.hpp>
#include <amdis/linearalgebra/mtl/MatrixBackend.hpp>
#include <amdis/linearalgebra/mtl/VectorBackend.hpp>
8
9
10
11
12
13

namespace AMDiS
{
  /** Traits class for a linear solver for the system AX=B using an FE space described by a dune-functions Basis
   *  Contains typedefs specific to the MTL backend.
   */
Praetorius, Simon's avatar
Praetorius, Simon committed
14
  struct MTLTraits
15
  {
Praetorius, Simon's avatar
Praetorius, Simon committed
16
17
18
19
20
21
    template <class Value>
    using MatrixImpl = MTLSparseMatrix<Value>;

    template <class Value>
    using VectorImpl = MTLVector<Value>;

22
    using PartitionSet = Dune::Partitions::All;
Praetorius, Simon's avatar
Praetorius, Simon committed
23
    using SparsityPattern = SlotSize;
Praetorius, Simon's avatar
Praetorius, Simon committed
24
    using Comm = SequentialCommunication;
25
  };
26

Praetorius, Simon's avatar
Praetorius, Simon committed
27
28
29
  template <class>
  using BackendTraits = MTLTraits;

30
} // end namespace AMDiS