|
dune-istl 2.9.0
|
Loading...
Searching...
No Matches
matrixredistribute.hh
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (C) DUNE Project contributors, see file LICENSE.md in module root
254 CommMatrixSparsityPattern(const M& m_, const Dune::GlobalLookupIndexSet<I>& idxset_, const I& aggidxset_)
265 CommMatrixSparsityPattern(const M& m_, const Dune::GlobalLookupIndexSet<I>& idxset_, const I& aggidxset_,
318 std::cout<<rank<<": row "<<idx<<" is missing a diagonal entry! global="<<gi->global()<<" attr="<<gi->local().attribute()<<" "<<
553 static void scatter(Container& cont, const GlobalIndex& gi, std::size_t i, [[maybe_unused]] std::size_t j)
591 typename MatrixSparsityPatternGatherScatter<M,I>::ColIter MatrixSparsityPatternGatherScatter<M,I>::col;
594 typename MatrixSparsityPatternGatherScatter<M,I>::GlobalIndex MatrixSparsityPatternGatherScatter<M,I>::numlimits;
638 static void scatter(Container& cont, const Data& data, std::size_t i, [[maybe_unused]] std::size_t j)
Functionality for redistributing a parallel index set using graph partitioning.
Classes providing communication interfaces for overlapping Schwarz methods.
int size() const
iterator end()
iterator begin()
static constexpr size_type M()
std::ptrdiff_t index() const
#define DUNE_THROW(E, m)
void build(const R &remoteIndices, const T1 &sourceFlags, const T2 &destFlags)
ParallelIndexSet::const_iterator const_iterator
MPI_Comm communicator() const
const GlobalIndex & global() const
const IndexPair * pair(const std::size_t &local) const
LocalIndex & local()
void free()
void redistributeMatrixEntries(M &origMatrix, M &newMatrix, C &origComm, C &newComm, RedistributeInformation< C > &ri)
Definition matrixredistribute.hh:757
void redistributeSparsityPattern(M &origMatrix, M &newMatrix, C &origComm, C &newComm, RedistributeInformation< C > &ri)
Definition matrixredistribute.hh:663
void redistributeMatrix(M &origMatrix, M &newMatrix, C &origComm, C &newComm, RedistributeInformation< C > &ri)
Redistribute a matrix according to given domain decompositions.
Definition matrixredistribute.hh:820
Definition matrixredistribute.hh:22
void setNoBackwardsCopyRows(std::size_t size)
Definition matrixredistribute.hh:44
void redistribute(const D &from, D &to) const
Definition matrixredistribute.hh:28
void setNoCopyRows(std::size_t size)
Definition matrixredistribute.hh:41
void setNoRows(std::size_t size)
Definition matrixredistribute.hh:38
void redistributeBackward(D &from, const D &to) const
Definition matrixredistribute.hh:32
std::size_t getBackwardsCopyRowSize(std::size_t index) const
Definition matrixredistribute.hh:57
std::size_t getRowSize(std::size_t index) const
Definition matrixredistribute.hh:47
std::size_t getCopyRowSize(std::size_t index) const
Definition matrixredistribute.hh:52
std::size_t getRowSize(std::size_t index) const
Definition matrixredistribute.hh:158
std::size_t & getBackwardsCopyRowSize(std::size_t index)
Definition matrixredistribute.hh:173
RedistributeInterface & getInterface()
Definition matrixredistribute.hh:75
void redistribute(const D &from, D &to) const
Definition matrixredistribute.hh:136
void setNoBackwardsCopyRows(std::size_t rows)
Definition matrixredistribute.hh:193
std::size_t & getCopyRowSize(std::size_t index)
Definition matrixredistribute.hh:163
RedistributeInformation()
Definition matrixredistribute.hh:71
std::size_t getCopyRowSize(std::size_t index) const
Definition matrixredistribute.hh:168
void setNoRows(std::size_t rows)
Definition matrixredistribute.hh:183
void reserve(std::size_t size)
Definition matrixredistribute.hh:150
OwnerOverlapCopyCommunication< T, T1 > Comm
Definition matrixredistribute.hh:69
void setNoCopyRows(std::size_t rows)
Definition matrixredistribute.hh:188
void redistributeBackward(D &from, const D &to) const
Definition matrixredistribute.hh:141
void setSetup()
Definition matrixredistribute.hh:106
std::size_t getBackwardsCopyRowSize(std::size_t index) const
Definition matrixredistribute.hh:178
void redistribute(const D &from, D &to) const
Definition matrixredistribute.hh:118
void resetSetup()
Definition matrixredistribute.hh:112
void redistributeBackward(D &from, const D &to) const
Definition matrixredistribute.hh:126
void checkInterface(const IS &source, const IS &target, MPI_Comm comm)
Definition matrixredistribute.hh:80
bool isSetup() const
Definition matrixredistribute.hh:145
std::size_t & getRowSize(std::size_t index)
Definition matrixredistribute.hh:153
Utility class to communicate and set the row sizes of a redistributed matrix.
Definition matrixredistribute.hh:216
CommMatrixRowSize(const M &m_, RI &rowsize_)
Constructor.
Definition matrixredistribute.hh:226
Utility class to communicate and build the sparsity pattern of a redistributed matrix.
Definition matrixredistribute.hh:245
M::size_type size_type
Definition matrixredistribute.hh:246
const Dune::GlobalLookupIndexSet< I > & idxset
Definition matrixredistribute.hh:356
void storeSparsityPattern(M &m)
Creates and stores the sparsity pattern of the redistributed matrix.
Definition matrixredistribute.hh:276
const std::vector< size_type > * rowsize
Definition matrixredistribute.hh:359
void completeSparsityPattern(std::vector< std::set< size_type > > add_sparsity)
Completes the sparsity pattern of the redistributed matrix with data from copy rows for the novlp cas...
Definition matrixredistribute.hh:340
CommMatrixSparsityPattern(const M &m_, const Dune::GlobalLookupIndexSet< I > &idxset_, const I &aggidxset_)
Constructor for the original side.
Definition matrixredistribute.hh:254
CommMatrixSparsityPattern(const M &m_, const Dune::GlobalLookupIndexSet< I > &idxset_, const I &aggidxset_, const std::vector< typename M::size_type > &rowsize_)
Constructor for the redistruted side.
Definition matrixredistribute.hh:265
std::vector< std::set< size_type > > sparsity
Definition matrixredistribute.hh:358
Dune::GlobalLookupIndexSet< I > LookupIndexSet
Definition matrixredistribute.hh:355
static M::size_type getSize(const Type &t, std::size_t i)
Definition matrixredistribute.hh:376
CommMatrixSparsityPattern< M, I > Type
Definition matrixredistribute.hh:365
I::GlobalIndex IndexedType
The indexed type we send. This is the global index indentitfying the column.
Definition matrixredistribute.hh:371
VariableSize IndexedTypeFlag
Each row varies in size.
Definition matrixredistribute.hh:374
Utility class for comunicating the matrix entries.
Definition matrixredistribute.hh:396
std::vector< size_t > * rowsize
row size information for the receiving side.
Definition matrixredistribute.hh:452
M & matrix
The matrix to communicate the values of.
Definition matrixredistribute.hh:446
CommMatrixRow(M &m_, const Dune::GlobalLookupIndexSet< I > &idxset_, const I &aggidxset_, std::vector< size_t > &rowsize_)
Constructor.
Definition matrixredistribute.hh:412
const Dune::GlobalLookupIndexSet< I > & idxset
Index set for the original matrix.
Definition matrixredistribute.hh:448
void setOverlapRowsToDirichlet()
Sets the non-owner rows correctly as Dirichlet boundaries.
Definition matrixredistribute.hh:421
const I & aggidxset
Index set for the redistributed matrix.
Definition matrixredistribute.hh:450
CommMatrixRow(M &m_, const Dune::GlobalLookupIndexSet< I > &idxset_, const I &aggidxset_)
Constructor.
Definition matrixredistribute.hh:405
std::pair< typename I::GlobalIndex, typename M::block_type > IndexedType
The indexed type we send. This is the pair of global index indentitfying the column and the value its...
Definition matrixredistribute.hh:464
CommMatrixRow< M, I > Type
Definition matrixredistribute.hh:458
static std::size_t getSize(const Type &t, std::size_t i)
Definition matrixredistribute.hh:469
VariableSize IndexedTypeFlag
Each row varies in size.
Definition matrixredistribute.hh:467
Definition matrixredistribute.hh:483
static void scatter(Container &cont, const typename M::size_type &rowsize, std::size_t i)
Definition matrixredistribute.hh:490
static const M::size_type gather(const Container &cont, std::size_t i)
Definition matrixredistribute.hh:486
CommMatrixRowSize< M, RI > Container
Definition matrixredistribute.hh:484
Definition matrixredistribute.hh:500
static const M::size_type gather(const Container &cont, std::size_t i)
Definition matrixredistribute.hh:503
static void scatter(Container &cont, const typename M::size_type &rowsize, std::size_t i)
Definition matrixredistribute.hh:507
CommMatrixRowSize< M, RI > Container
Definition matrixredistribute.hh:501
Definition matrixredistribute.hh:518
M::ConstColIterator ColIter
Definition matrixredistribute.hh:521
static void scatter(Container &cont, const GlobalIndex &gi, std::size_t i, std::size_t j)
Definition matrixredistribute.hh:553
CommMatrixSparsityPattern< M, I > Container
Definition matrixredistribute.hh:520
static GlobalIndex numlimits
Definition matrixredistribute.hh:524
I::GlobalIndex GlobalIndex
Definition matrixredistribute.hh:519
static const GlobalIndex & gather(const Container &cont, std::size_t i, std::size_t j)
Definition matrixredistribute.hh:526
Definition matrixredistribute.hh:599
I::GlobalIndex GlobalIndex
Definition matrixredistribute.hh:600
static GlobalIndex numlimits
Definition matrixredistribute.hh:606
M::ConstColIterator ColIter
Definition matrixredistribute.hh:602
static const Data & gather(const Container &cont, std::size_t i, std::size_t j)
Definition matrixredistribute.hh:608
std::pair< GlobalIndex, typename M::block_type > Data
Definition matrixredistribute.hh:603
static void scatter(Container &cont, const Data &data, std::size_t i, std::size_t j)
Definition matrixredistribute.hh:638
CommMatrixRow< M, I > Container
Definition matrixredistribute.hh:601
Definition pinfo.hh:28
Definition repartition.hh:260
@ nonoverlapping
Category for non-overlapping solvers.
Definition solvercategory.hh:27
static Category category(const OP &op, decltype(op.category()) *=nullptr)
Helperfunction to extract the solver category either from an enum, or from the newly introduced virtu...
Definition solvercategory.hh:34
T begin(T... args)
T end(T... args)
T endl(T... args)
T insert(T... args)
T max(T... args)
T set_union(T... args)
T size(T... args)
T swap(T... args)
Legal Statements / Impressum | Hosted by TU Dresden & Uni Heidelberg | Generated by
1.9.8