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
14namespace AMDiS
15{
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
46
47} // end namespace AMDiS
Sparsity pattern used to create PETSc matrices.
Definition: MatrixNnzStructure.hpp:18
The basic container that stores a base matrix.
Definition: MatrixBackend.hpp:24
The basic container that stores a base vector data.
Definition: VectorBackend.hpp:23
Definition: Traits.hpp:15
Definition: Traits.hpp:26
Definition: Traits.hpp:37
Definition: Traits.hpp:20