6 #include <amdis/common/Index.hpp> 7 #include <amdis/linearalgebra/SymmetryStructure.hpp> 8 #include <amdis/linearalgebra/petsc/IndexDistribution.hpp> 11 #include <amdis/common/parallel/Communicator.hpp> 20 template <
class RowBasis,
class ColBasis>
22 SymmetryStructure
symmetry = SymmetryStructure::unknown)
25 init(rowBasis, rowBasis.indexDistribution(), colBasis, colBasis.indexDistribution());
29 std::vector<PetscInt>
const& d_nnz()
const 35 std::vector<PetscInt>
const&
o_nnz()
const 48 template <
class RowBasis,
class ColBasis,
class LI>
53 template <
class RowBasis,
class ColBasis,
class GID,
class LI>
54 void init(RowBasis
const& rowBasis, PetscParallelIndexDistribution<GID,LI>
const& rowDofMap,
55 ColBasis
const& colBasis, PetscParallelIndexDistribution<GID,LI>
const& colDofMap);
57 std::vector<PetscInt> dnnz_;
58 std::vector<PetscInt> onnz_;
59 SymmetryStructure symmetry_;
62 const Mpi::Tag tag_{916821};
68 #include <amdis/linearalgebra/petsc/MatrixNnzStructure.inc.hpp> std::vector< PetscInt > const & o_nnz() const
Return Number of nonzeros in the off-diagonal part (overlap part)
Definition: MatrixNnzStructure.hpp:35
Fallback for PetscParallelIndexDistribution in case there is only one mpi core.
Definition: IndexDistribution.hpp:32
SymmetryStructure symmetry() const
Symmetry of the matrix entries.
Definition: MatrixNnzStructure.hpp:41
Definition: AdaptBase.hpp:6
Sparsity pattern used to create PETSc matrices.
Definition: MatrixNnzStructure.hpp:17