AMDiS  2.10
The Adaptive Multi-Dimensional Simulation Toolbox
Traits.hpp
1 #pragma once
2 
3 #include <type_traits>
4 
5 #include <petscmat.h>
6 #include <petscvec.h>
7 
8 #include <dune/grid/common/partitionset.hh>
9 #include <amdis/linearalgebra/petsc/IndexDistribution.hpp>
10 #include <amdis/linearalgebra/petsc/MatrixNnzStructure.hpp>
11 #include <amdis/linearalgebra/petsc/MatrixBackend.hpp>
12 #include <amdis/linearalgebra/petsc/VectorBackend.hpp>
13 
14 namespace AMDiS
15 {
19  struct PetscTraits
20  {
21  template <class Basis>
22  using IndexDist = PetscIndexDistribution_t<Basis>;
23 
24  template <class RowBasis, class ColBasis>
25  struct Matrix
26  {
28 
29  static_assert(std::is_same_v<IndexDist<RowBasis>, IndexDist<ColBasis>>);
30 
31  template <class Value>
33  };
34 
35  template <class Basis>
36  struct Vector
37  {
38  template <class Value>
40  };
41 
42  using PartitionSet = Dune::Partitions::Interior;
43  };
44 
45  using BackendTraits = PetscTraits;
46 
47 } // end namespace AMDiS
Definition: AdaptBase.hpp:6
Definition: Traits.hpp:19
Sparsity pattern used to create PETSc matrices.
Definition: MatrixNnzStructure.hpp:17
The basic container that stores a base matrix.
Definition: MatrixBackend.hpp:23
Definition: Traits.hpp:36
Definition: Traits.hpp:25
Definition: Traits.hpp:14
The basic container that stores a base vector data.
Definition: VectorBackend.hpp:22