|
dune-istl 2.12-git
|
Loading...
Searching...
No Matches
experimental/bcrsmatrix.hh
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright © DUNE Project contributors, see file LICENSE.md in module root
81class BCRSMatrix : public Matrix<B, SparseIndexRanges<I, typename std::allocator_traits<A>::template rebind_alloc<I>>, A>
84 using BaseMatrix = Matrix<B, SparseIndexRanges<I, typename std::allocator_traits<A>::template rebind_alloc<I>>, A>;
190 };
370 DUNE_THROW(NotImplemented, "setIndicesNoSort is not implemented yet for BCRSMatrix row-wise build mode");
385 DUNE_THROW(NotImplemented, "setIndices is not implemented yet for BCRSMatrix row-wise build mode");
744BCRSMatrix<B, I, A>::DefaultBlockAssgnment::operator=(const typename FieldTraits<B>::field_type& e)
A dynamic dense block matrix class.
#define DUNE_NO_UNIQUE_ADDRESS
STL namespace.
Definition defaultmatrixvectortraits.hh:14
int size() const
SLList< T, A > & operator=(const SLList< T, A > &other)
void increment()
auto overload(F &&... f)
virtual void operator()()=0
#define DUNE_THROW(E,...)
T field_type
Block compressed row storage matrix.
Definition experimental/bcrsmatrix.hh:82
void setSize(size_type rows, size_type cols, size_type nnz=0)
Set the expected matrix dimensions for the currently selected build mode.
Definition experimental/bcrsmatrix.hh:567
BCRSMatrix(const BaseMatrix &other, const allocator_type &allocator=allocator_type())
Construct an BCRSMatrix from another Matrix.
Definition experimental/bcrsmatrix.hh:214
BuildMode
Available matrix construction modes.
Definition experimental/bcrsmatrix.hh:155
@ row_wise
Fill index sets sequentially, one row after another.
Definition experimental/bcrsmatrix.hh:169
@ unknown
No build mode selected, or matrix construction has finished.
Definition experimental/bcrsmatrix.hh:189
@ implicit
Build entries in arbitrary order.
Definition experimental/bcrsmatrix.hh:185
@ random
Build entries in arbitrary order.
Definition experimental/bcrsmatrix.hh:179
void setrowsize(size_type row, size_type size)
Random/implicit build API, mirroring the historic BCRSMatrix interface.
Definition experimental/bcrsmatrix.hh:608
void endindices()
Finalize the sparsity pattern and make the matrix ready for value access.
Definition experimental/bcrsmatrix.hh:629
BuildMode buildMode() const
Return the currently active build mode.
Definition experimental/bcrsmatrix.hh:553
void setIndicesNoSort(size_type row, It begin, It end)
Set all column indices for row from the given iterator range on row-wise build mode.
Definition experimental/bcrsmatrix.hh:369
void swap(BCRSMatrix &other)
Swap the contents of two matrices, respecting allocator propagation rules.
Definition experimental/bcrsmatrix.hh:302
void setIndices(size_type row, It begin, It end)
Set all column indices for row from the given iterator range row-wise build mode.
Definition experimental/bcrsmatrix.hh:384
void setBuildMode(BuildMode bm)
Reset the matrix and select a new build mode.
Definition experimental/bcrsmatrix.hh:531
A allocator_type
Type of the allocator used for memory management.
Definition experimental/bcrsmatrix.hh:146
DefaultBlockAssgnment entry(size_type row, size_type col)
Insert an index in implicit/random build mode.
Definition experimental/bcrsmatrix.hh:705
SequencedPatternBuilder::EndSentinel createend()
End sentinel for row-wise construction.
Definition experimental/bcrsmatrix.hh:697
void endrowsizes()
Finalize the row-size declaration phase.
Definition experimental/bcrsmatrix.hh:352
CreateIterator createbegin()
Begin row-wise construction.
Definition experimental/bcrsmatrix.hh:690
CompressionStatistics compress()
Finalize implicit/random build and return compression statistics.
Definition experimental/bcrsmatrix.hh:714
friend void swap(BCRSMatrix &lhs, BCRSMatrix &rhs)
Swap the contents of two matrices, respecting allocator propagation rules.
Definition experimental/bcrsmatrix.hh:311
BCRSMatrix< B, I, A > & operator=(const BCRSMatrix &other)
Copy-assign an BCRSMatrix from another matrix.
Definition experimental/bcrsmatrix.hh:758
void addindex(size_type row, size_type col)
Insert the col index into a sparse row during implicit/random build.
Definition experimental/bcrsmatrix.hh:622
void incrementrowsize(size_type row, size_type increment=1)
Increment the expected number of non-zero entries in a row for random/implicit build.
Definition experimental/bcrsmatrix.hh:615
BCRSMatrix(BaseMatrix &&other, const allocator_type &allocator=allocator_type())
Move-construct an BCRSMatrix from another Matrix.
Definition experimental/bcrsmatrix.hh:221
Owning matrix container built on top of MatrixView.
Definition experimental/matrix.hh:44
allocator_type get_allocator() const
Return the allocator currently associated with this matrix.
Definition experimental/matrix.hh:367
Definition experimental/bcrsmatrix.hh:193
size_type overflow_total
total number of elements written to the overflow area during construction.
Definition experimental/bcrsmatrix.hh:199
double avg
average number of non-zeroes per row.
Definition experimental/bcrsmatrix.hh:195
double mem_ratio
fraction of wasted memory resulting from non-used overflow area.
Definition experimental/bcrsmatrix.hh:201
size_type maximum
maximum number of non-zeroes per row.
Definition experimental/bcrsmatrix.hh:197
Row-wise build API.
Definition experimental/bcrsmatrix.hh:393
CreateIterator & operator++()
Advance to the next row; when the last row is completed, finalize the matrix.
Definition experimental/bcrsmatrix.hh:670
Iterator begin()
Return iterator to the first row.
Definition matrixview.hh:115
std::iter_value_t< block_iter_type > block_type
The type of blocks in the matrix.
Definition matrixview.hh:70
P pattern_type
The type used for the sparsity pattern.
Definition matrixview.hh:66
std::ranges::range_size_t< pattern_type > size_type
The type used to count elements in the row and column index sets.
Definition matrixview.hh:74
Iterator end()
Return iterator one past the last row.
Definition matrixview.hh:118
Builder that allows inserting indices into any index set in any order.
Definition sparseindexranges.hh:244
Builder that fills index sets one at a time, in sequential order.
Definition sparseindexranges.hh:329
Definition sparseindexranges.hh:361
Handle for inserting indices into the current index set of a SequencedSparseIndexRangeBuilder.
Definition sparseindexranges.hh:375
T construct(T... args)
T exchange(T... args)
T swap(T... args)
T visit(T... args)
Legal Statements / Impressum | Hosted by TU Dresden & Uni Heidelberg | Generated by
1.9.8