AMDiS  0.3
The Adaptive Multi-Dimensional Simulation Toolbox
Traits.hpp
1 #pragma once
2 
3 #include <dune/common/fmatrix.hh>
4 #include <dune/common/fvector.hh>
5 #include <dune/grid/common/partitionset.hh>
6 #include <dune/istl/operators.hh>
7 #include <dune/istl/preconditioner.hh>
8 #include <dune/istl/scalarproducts.hh>
9 #include <dune/istl/solver.hh>
10 
11 #include <amdis/linearalgebra/SparsityPattern.hpp>
12 #include <amdis/linearalgebra/istl/Communication.hpp>
13 #include <amdis/linearalgebra/istl/Creators.hpp>
14 #include <amdis/linearalgebra/istl/MatrixBackend.hpp>
15 #include <amdis/linearalgebra/istl/VectorBackend.hpp>
16 
17 namespace AMDiS
18 {
22  template <class Basis>
23  struct ISTLTraits
24  {
26 
27  template <class Value>
29 
30  template <class Value>
32 
33  using PartitionSet = Dune::Partitions::All;
35  };
36 
37  template <class Basis>
39 
40 
41  template <class Mat, class VecX, class VecY = VecX>
42  struct SolverTraits
43  {
44  using M = typename Mat::BaseMatrix;
45  using X = typename VecX::BaseVector;
46  using Y = typename VecY::BaseVector;
47  using Comm = typename Mat::Comm;
48 
49  using ScalProd = Dune::ScalarProduct<X>;
50  using LinOp = Dune::AssembledLinearOperator<M, X, Y>;
51  using Solver = Dune::InverseOperator<X, Y>;
52  using Prec = Dune::Preconditioner<X, Y>;
56  };
57 
58  template <class Traits>
60  {
61  using Comm = typename Traits::Comm::Sequential;
62  };
63 
64 } // end namespace AMDiS
Definition: Traits.hpp:59
Dummy implementation for ISTL-specific communication when no MPI is found.
Definition: Communication.hpp:20
Contains all classes needed for solving linear and non linear equation systems.
Definition: AdaptBase.hpp:6
Creator to create ScalarProduct objects.
Definition: Creators.hpp:23
Definition: MatrixBackend.hpp:28
A general sparsity pattern implementation using the full pattern of the basis by adding all local ind...
Definition: SparsityPattern.hpp:14
Definition: Traits.hpp:23
Definition: Traits.hpp:14
Creator to create Linear Operator objects.
Definition: Creators.hpp:65
Definition: Traits.hpp:42
Creator to create parallel Preconditioners.
Definition: Creators.hpp:108
Definition: VectorBackend.hpp:26