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> 
Sparsity pattern used to create PETSc matrices.
Definition: MatrixNnzStructure.hpp:18
 
SymmetryStructure symmetry() const
Symmetry of the matrix entries.
Definition: MatrixNnzStructure.hpp:41
 
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:33