|
dune-istl 2.8.0
|
Loading...
Searching...
No Matches
matrixredistribute.hh
Go to the documentation of this file.
252 CommMatrixSparsityPattern(const M& m_, const Dune::GlobalLookupIndexSet<I>& idxset_, const I& aggidxset_)
263 CommMatrixSparsityPattern(const M& m_, const Dune::GlobalLookupIndexSet<I>& idxset_, const I& aggidxset_,
316 std::cout<<rank<<": row "<<idx<<" is missing a diagonal entry! global="<<gi->global()<<" attr="<<gi->local().attribute()<<" "<<
551 static void scatter(Container& cont, const GlobalIndex& gi, std::size_t i, [[maybe_unused]] std::size_t j)
589 typename MatrixSparsityPatternGatherScatter<M,I>::ColIter MatrixSparsityPatternGatherScatter<M,I>::col;
592 typename MatrixSparsityPatternGatherScatter<M,I>::GlobalIndex MatrixSparsityPatternGatherScatter<M,I>::numlimits;
636 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:755
void redistributeSparsityPattern(M &origMatrix, M &newMatrix, C &origComm, C &newComm, RedistributeInformation< C > &ri)
Definition matrixredistribute.hh:661
void redistributeMatrix(M &origMatrix, M &newMatrix, C &origComm, C &newComm, RedistributeInformation< C > &ri)
Redistribute a matrix according to given domain decompositions.
Definition matrixredistribute.hh:818
Definition matrixredistribute.hh:20
void setNoBackwardsCopyRows(std::size_t size)
Definition matrixredistribute.hh:42
void redistribute(const D &from, D &to) const
Definition matrixredistribute.hh:26
void setNoCopyRows(std::size_t size)
Definition matrixredistribute.hh:39
void setNoRows(std::size_t size)
Definition matrixredistribute.hh:36
void redistributeBackward(D &from, const D &to) const
Definition matrixredistribute.hh:30
std::size_t getBackwardsCopyRowSize(std::size_t index) const
Definition matrixredistribute.hh:55
std::size_t getRowSize(std::size_t index) const
Definition matrixredistribute.hh:45
std::size_t getCopyRowSize(std::size_t index) const
Definition matrixredistribute.hh:50
std::size_t getRowSize(std::size_t index) const
Definition matrixredistribute.hh:156
std::size_t & getBackwardsCopyRowSize(std::size_t index)
Definition matrixredistribute.hh:171
RedistributeInterface & getInterface()
Definition matrixredistribute.hh:73
void redistribute(const D &from, D &to) const
Definition matrixredistribute.hh:134
void setNoBackwardsCopyRows(std::size_t rows)
Definition matrixredistribute.hh:191
std::size_t & getCopyRowSize(std::size_t index)
Definition matrixredistribute.hh:161
RedistributeInformation()
Definition matrixredistribute.hh:69
std::size_t getCopyRowSize(std::size_t index) const
Definition matrixredistribute.hh:166
void setNoRows(std::size_t rows)
Definition matrixredistribute.hh:181
void reserve(std::size_t size)
Definition matrixredistribute.hh:148
OwnerOverlapCopyCommunication< T, T1 > Comm
Definition matrixredistribute.hh:67
void setNoCopyRows(std::size_t rows)
Definition matrixredistribute.hh:186
void redistributeBackward(D &from, const D &to) const
Definition matrixredistribute.hh:139
void setSetup()
Definition matrixredistribute.hh:104
std::size_t getBackwardsCopyRowSize(std::size_t index) const
Definition matrixredistribute.hh:176
void redistribute(const D &from, D &to) const
Definition matrixredistribute.hh:116
void resetSetup()
Definition matrixredistribute.hh:110
void redistributeBackward(D &from, const D &to) const
Definition matrixredistribute.hh:124
void checkInterface(const IS &source, const IS &target, MPI_Comm comm)
Definition matrixredistribute.hh:78
bool isSetup() const
Definition matrixredistribute.hh:143
std::size_t & getRowSize(std::size_t index)
Definition matrixredistribute.hh:151
Utility class to communicate and set the row sizes of a redistributed matrix.
Definition matrixredistribute.hh:214
CommMatrixRowSize(const M &m_, RI &rowsize_)
Constructor.
Definition matrixredistribute.hh:224
Utility class to communicate and build the sparsity pattern of a redistributed matrix.
Definition matrixredistribute.hh:243
M::size_type size_type
Definition matrixredistribute.hh:244
const Dune::GlobalLookupIndexSet< I > & idxset
Definition matrixredistribute.hh:354
void storeSparsityPattern(M &m)
Creates and stores the sparsity pattern of the redistributed matrix.
Definition matrixredistribute.hh:274
const std::vector< size_type > * rowsize
Definition matrixredistribute.hh:357
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:338
CommMatrixSparsityPattern(const M &m_, const Dune::GlobalLookupIndexSet< I > &idxset_, const I &aggidxset_)
Constructor for the original side.
Definition matrixredistribute.hh:252
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:263
std::vector< std::set< size_type > > sparsity
Definition matrixredistribute.hh:356
Dune::GlobalLookupIndexSet< I > LookupIndexSet
Definition matrixredistribute.hh:353
static M::size_type getSize(const Type &t, std::size_t i)
Definition matrixredistribute.hh:374
CommMatrixSparsityPattern< M, I > Type
Definition matrixredistribute.hh:363
I::GlobalIndex IndexedType
The indexed type we send. This is the global index indentitfying the column.
Definition matrixredistribute.hh:369
VariableSize IndexedTypeFlag
Each row varies in size.
Definition matrixredistribute.hh:372
Utility class for comunicating the matrix entries.
Definition matrixredistribute.hh:394
std::vector< size_t > * rowsize
row size information for the receiving side.
Definition matrixredistribute.hh:450
M & matrix
The matrix to communicate the values of.
Definition matrixredistribute.hh:444
CommMatrixRow(M &m_, const Dune::GlobalLookupIndexSet< I > &idxset_, const I &aggidxset_, std::vector< size_t > &rowsize_)
Constructor.
Definition matrixredistribute.hh:410
const Dune::GlobalLookupIndexSet< I > & idxset
Index set for the original matrix.
Definition matrixredistribute.hh:446
void setOverlapRowsToDirichlet()
Sets the non-owner rows correctly as Dirichlet boundaries.
Definition matrixredistribute.hh:419
const I & aggidxset
Index set for the redistributed matrix.
Definition matrixredistribute.hh:448
CommMatrixRow(M &m_, const Dune::GlobalLookupIndexSet< I > &idxset_, const I &aggidxset_)
Constructor.
Definition matrixredistribute.hh:403
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:462
CommMatrixRow< M, I > Type
Definition matrixredistribute.hh:456
static std::size_t getSize(const Type &t, std::size_t i)
Definition matrixredistribute.hh:467
VariableSize IndexedTypeFlag
Each row varies in size.
Definition matrixredistribute.hh:465
Definition matrixredistribute.hh:481
static void scatter(Container &cont, const typename M::size_type &rowsize, std::size_t i)
Definition matrixredistribute.hh:488
static const M::size_type gather(const Container &cont, std::size_t i)
Definition matrixredistribute.hh:484
CommMatrixRowSize< M, RI > Container
Definition matrixredistribute.hh:482
Definition matrixredistribute.hh:498
static const M::size_type gather(const Container &cont, std::size_t i)
Definition matrixredistribute.hh:501
static void scatter(Container &cont, const typename M::size_type &rowsize, std::size_t i)
Definition matrixredistribute.hh:505
CommMatrixRowSize< M, RI > Container
Definition matrixredistribute.hh:499
Definition matrixredistribute.hh:516
M::ConstColIterator ColIter
Definition matrixredistribute.hh:519
static void scatter(Container &cont, const GlobalIndex &gi, std::size_t i, std::size_t j)
Definition matrixredistribute.hh:551
CommMatrixSparsityPattern< M, I > Container
Definition matrixredistribute.hh:518
static GlobalIndex numlimits
Definition matrixredistribute.hh:522
I::GlobalIndex GlobalIndex
Definition matrixredistribute.hh:517
static const GlobalIndex & gather(const Container &cont, std::size_t i, std::size_t j)
Definition matrixredistribute.hh:524
Definition matrixredistribute.hh:597
I::GlobalIndex GlobalIndex
Definition matrixredistribute.hh:598
static GlobalIndex numlimits
Definition matrixredistribute.hh:604
M::ConstColIterator ColIter
Definition matrixredistribute.hh:600
static const Data & gather(const Container &cont, std::size_t i, std::size_t j)
Definition matrixredistribute.hh:606
std::pair< GlobalIndex, typename M::block_type > Data
Definition matrixredistribute.hh:601
static void scatter(Container &cont, const Data &data, std::size_t i, std::size_t j)
Definition matrixredistribute.hh:636
CommMatrixRow< M, I > Container
Definition matrixredistribute.hh:599
Definition pinfo.hh:26
Definition repartition.hh:258
@ nonoverlapping
Category for non-overlapping solvers.
Definition solvercategory.hh:25
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:32
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