Dune Core Modules (2.4.1)
bcrsmatrix.hh
Go to the documentation of this file.
168 DUNE_THROW(BCRSMatrixError,"You can only create an ImplicitBuilder for a matrix in implicit build mode");
170 DUNE_THROW(BCRSMatrixError,"You can only create an ImplicitBuilder for a matrix with set size that has not been compressed() yet");
188 ImplicitMatrixBuilder(Matrix& m, size_type rows, size_type cols, size_type avg_cols_per_row, double overflow_fraction)
192 DUNE_THROW(BCRSMatrixError,"You can only set up a matrix for this ImplicitBuilder if it has no memory allocated yet");
430 };
456 };
493 };
502 DUNE_THROW(BCRSMatrixError,"You cannot use operator[] in implicit build mode before calling compress()");
514 DUNE_THROW(BCRSMatrixError,"You cannot use operator[] in implicit build mode before calling compress()");
760 DUNE_THROW(InvalidStateException,"BCRSMatrix can only be copy-constructed when source matrix is completely empty (size not set) or fully built)");
797 if (ready == building && (build_mode == unknown || build_mode == random || build_mode == row_wise) && (bm == row_wise || bm == random))
800 DUNE_THROW(InvalidStateException, "Matrix structure cannot be changed at this stage anymore (ready == "<<ready<<").");
826 DUNE_THROW(Dune::BCRSMatrixError,"number of non-zeroes may not be set in implicit mode, use setImplicitBuildModeParameters() instead");
857 DUNE_THROW(InvalidStateException,"You cannot modify build mode parameters at this stage anymore");
873 if (!((ready == notAllocated || ready == built) && (Mat.ready == notAllocated || Mat.ready == built)))
874 DUNE_THROW(InvalidStateException,"BCRSMatrix can only be copied when both target and source are empty or fully built)");
932 DUNE_THROW(BCRSMatrixError,"creation only allowed if row wise allocation was requested in the constructor");
1226 dwarn << "WARNING: size of row "<< i.index()<<" is "<<j.offset()<<". But was specified as being "<< (*i).end().offset()
1227 <<". This means you are wasting valuable space and creating additional cache misses!"<<std::endl;
1328 DUNE_THROW(InvalidStateException,"You may only call compress() at the end of the 'building' stage");
1447 DUNE_THROW(BCRSMatrixError,"You can only call arithmetic operations on fully built BCRSMatrix instances");
1475 DUNE_THROW(BCRSMatrixError,"You can only call arithmetic operations on fully built BCRSMatrix instances");
1508 DUNE_THROW(BCRSMatrixError,"You can only call arithmetic operations on fully built BCRSMatrix instances");
1530 DUNE_THROW(BCRSMatrixError,"You can only call arithmetic operations on fully built BCRSMatrix instances");
1555 DUNE_THROW(BCRSMatrixError,"You can only call arithmetic operations on fully built BCRSMatrix instances");
1575 DUNE_THROW(BCRSMatrixError,"You can only call arithmetic operations on fully built BCRSMatrix instances");
1597 DUNE_THROW(BCRSMatrixError,"You can only call arithmetic operations on fully built BCRSMatrix instances");
1616 DUNE_THROW(BCRSMatrixError,"You can only call arithmetic operations on fully built BCRSMatrix instances");
1635 DUNE_THROW(BCRSMatrixError,"You can only call arithmetic operations on fully built BCRSMatrix instances");
1654 DUNE_THROW(BCRSMatrixError,"You can only call arithmetic operations on fully built BCRSMatrix instances");
1669 DUNE_THROW(BCRSMatrixError,"You can only call arithmetic operations on fully built BCRSMatrix instances");
1705 DUNE_THROW(BCRSMatrixError,"You can only call arithmetic operations on fully built BCRSMatrix instances");
1724 DUNE_THROW(BCRSMatrixError,"You can only call arithmetic operations on fully built BCRSMatrix instances");
1743 DUNE_THROW(BCRSMatrixError,"You can only call arithmetic operations on fully built BCRSMatrix instances");
1762 DUNE_THROW(BCRSMatrixError,"You can only call arithmetic operations on fully built BCRSMatrix instances");
1783 DUNE_THROW(BCRSMatrixError,"You can only call arithmetic operations on fully built BCRSMatrix instances");
1809 DUNE_THROW(BCRSMatrixError,"You can only call arithmetic operations on fully built BCRSMatrix instances");
1829 DUNE_THROW(BCRSMatrixError,"You can only call arithmetic operations on fully built BCRSMatrix instances");
1910 size_type allocationSize; //allocated size of a and j arrays, except in implicit mode: nnz_==allocationsSize
2096 void allocate(size_type rows, size_type columns, size_type allocationSize_, bool allocateRows, bool allocate_data)
2108 DUNE_THROW(InvalidStateException,"Rows have already been allocated, cannot allocate a second time");
2154 DUNE_THROW(InvalidStateException,"implicit_allocate() may only be called in implicit build mode");
2160 DUNE_THROW(InvalidStateException,"You have to set the implicit build mode parameters before starting to build the matrix");
This file implements a vector space as a tensor product of a given vector space. The number of compon...
Iterator class for sequential creation of blocks
Definition: bcrsmatrix.hh:919
bool operator==(const CreateIterator &it) const
equality
Definition: bcrsmatrix.hh:1014
CreateIterator & operator++()
prefix increment
Definition: bcrsmatrix.hh:936
size_type index() const
dereferencing
Definition: bcrsmatrix.hh:1020
bool operator!=(const CreateIterator &it) const
inequality
Definition: bcrsmatrix.hh:1008
CreateIterator(BCRSMatrix &_Mat, size_type _i)
constructor
Definition: bcrsmatrix.hh:922
void insert(size_type j)
put column index in row
Definition: bcrsmatrix.hh:1026
bool contains(size_type j)
return true if column index is in row
Definition: bcrsmatrix.hh:1032
size_type size() const
Get the current row size.
Definition: bcrsmatrix.hh:1044
Class used by shared_ptr to deallocate memory using the proper allocator.
Definition: bcrsmatrix.hh:2067
RealRowIterator()
empty constructor, use with care!
Definition: bcrsmatrix.hh:545
bool equals(const RealRowIterator< ValueType > &other) const
equality
Definition: bcrsmatrix.hh:573
bool equals(const RealRowIterator< const ValueType > &other) const
equality
Definition: bcrsmatrix.hh:580
RealRowIterator(row_type *_p, size_type _i)
constructor
Definition: bcrsmatrix.hh:540
size_type index() const
return index
Definition: bcrsmatrix.hh:555
remove_const< T >::type ValueType
The unqualified value type.
Definition: bcrsmatrix.hh:532
bool exists(size_type i, size_type j) const
return true if (i,j) is in pattern
Definition: bcrsmatrix.hh:1881
BuildStage buildStage() const
The current build stage of the matrix.
Definition: bcrsmatrix.hh:1867
friend class CreateIterator
allow CreateIterator to access internal data
Definition: bcrsmatrix.hh:1059
void copyWindowStructure(const BCRSMatrix &Mat)
Copy the window structure from another matrix.
Definition: bcrsmatrix.hh:1999
B & entry(size_type row, size_type col)
Returns reference to entry (row,col) of the matrix.
Definition: bcrsmatrix.hh:1255
void usmhv(const field_type &alpha, const X &x, Y &y) const
y += alpha A^H x
Definition: bcrsmatrix.hh:1758
RealRowIterator< const row_type > const_iterator
The const iterator over the matrix rows.
Definition: bcrsmatrix.hh:656
BCRSMatrix(size_type _n, size_type _m, size_type _avg, double _overflowsize, BuildMode bm)
construct matrix with a known average number of entries per row
Definition: bcrsmatrix.hh:733
B::field_type field_type
export the type representing the field
Definition: bcrsmatrix.hh:435
BCRSMatrix & axpy(field_type alpha, const BCRSMatrix &b)
Add the scaled entries of another matrix to this one.
Definition: bcrsmatrix.hh:1551
void deallocate(bool deallocateRows=true)
deallocate memory of the matrix.
Definition: bcrsmatrix.hh:2016
Iterator RowIterator
rename the iterators for easier access
Definition: bcrsmatrix.hh:650
row_type & operator[](size_type i)
random access to the rows
Definition: bcrsmatrix.hh:498
void endrowsizes()
indicate that size of all rows is defined
Definition: bcrsmatrix.hh:1109
void incrementrowsize(size_type i, size_type s=1)
increment size of row i by s (1 by default)
Definition: bcrsmatrix.hh:1098
size_type nonzeroes() const
number of blocks that are stored (the number of blocks that possibly are nonzero)
Definition: bcrsmatrix.hh:1861
ConstIterator ConstRowIterator
rename the const row iterator for easier access
Definition: bcrsmatrix.hh:687
void allocate(size_type rows, size_type columns, size_type allocationSize_, bool allocateRows, bool allocate_data)
Allocate memory for the matrix structure.
Definition: bcrsmatrix.hh:2096
void setrowsize(size_type i, size_type s)
set number of indices in row i to s
Definition: bcrsmatrix.hh:1077
BCRSMatrix & operator*=(const field_type &k)
vector space multiplication with scalar
Definition: bcrsmatrix.hh:1443
RealRowIterator< row_type > iterator
The iterator over the (mutable matrix rows.
Definition: bcrsmatrix.hh:620
void usmtv(const field_type &alpha, const X &x, Y &y) const
y += alpha A^T x
Definition: bcrsmatrix.hh:1701
@ implicit
Build entries randomly with an educated guess on entries per row.
Definition: bcrsmatrix.hh:488
BCRSMatrix(size_type _n, size_type _m, size_type _nnz, BuildMode bm)
matrix with known number of nonzeroes
Definition: bcrsmatrix.hh:705
::Dune::CompressionStatistics< size_type > CompressionStatistics
The type for the statistics object returned by compress()
Definition: bcrsmatrix.hh:450
BCRSMatrix & operator-=(const BCRSMatrix &b)
Substract the entries of another matrix to this one.
Definition: bcrsmatrix.hh:1526
BCRSMatrix(const BCRSMatrix &Mat)
copy constructor
Definition: bcrsmatrix.hh:754
Iterator end()
Get iterator to one beyond last row.
Definition: bcrsmatrix.hh:630
void setIndices(size_type row, It begin, It end)
Set all column indices for row from the given iterator range.
Definition: bcrsmatrix.hh:1194
void addindex(size_type row, size_type col)
add index (row,col) to the matrix
Definition: bcrsmatrix.hh:1151
row_type::Iterator ColIterator
Iterator for the entries of each row.
Definition: bcrsmatrix.hh:653
FieldTraits< field_type >::real_type frobenius_norm() const
frobenius norm: sqrt(sum over squared values of entries)
Definition: bcrsmatrix.hh:1800
A::size_type size_type
The type for the index access and the size.
Definition: bcrsmatrix.hh:447
BCRSMatrix & operator/=(const field_type &k)
vector space division by scalar
Definition: bcrsmatrix.hh:1471
BCRSMatrix & operator+=(const BCRSMatrix &b)
Add the entries of another matrix to this one.
Definition: bcrsmatrix.hh:1504
CreateIterator createend()
get create iterator pointing to one after the last block
Definition: bcrsmatrix.hh:1068
FieldTraits< field_type >::real_type frobenius_norm2() const
square of frobenius norm, need for block recursion
Definition: bcrsmatrix.hh:1779
row_type::ConstIterator ConstColIterator
Const iterator to the entries of a row.
Definition: bcrsmatrix.hh:690
void usmv(F &&alpha, const X &x, Y &y) const
y += alpha A x
Definition: bcrsmatrix.hh:1631
CompressedBlockVectorWindow< B, A > row_type
implement row_type with compressed vector
Definition: bcrsmatrix.hh:444
size_type getrowsize(size_type i) const
get current number of indices in row i
Definition: bcrsmatrix.hh:1088
size_type M() const
number of columns (counted in blocks)
Definition: bcrsmatrix.hh:1855
@ blocklevel
The number of blocklevels the matrix contains.
Definition: bcrsmatrix.hh:455
CreateIterator createbegin()
get initial create iterator
Definition: bcrsmatrix.hh:1062
@ rowSizesBuilt
The row sizes of the matrix are known.
Definition: bcrsmatrix.hh:427
@ notbuilt
Matrix is not built at all, no memory has been allocated, build mode and size can still be set.
Definition: bcrsmatrix.hh:418
@ notAllocated
Matrix is not built at all, no memory has been allocated, build mode and size can still be set.
Definition: bcrsmatrix.hh:420
@ building
Matrix is currently being built, some memory has been allocated, build mode and size are fixed.
Definition: bcrsmatrix.hh:422
BuildMode buildMode() const
The currently selected build mode of the matrix.
Definition: bcrsmatrix.hh:1873
FieldTraits< field_type >::real_type infinity_norm_real() const
simplified infinity norm (uses Manhattan norm for complex values)
Definition: bcrsmatrix.hh:1825
B block_type
export the type representing the components
Definition: bcrsmatrix.hh:438
void implicit_allocate(size_type _n, size_type _m)
organizes allocation implicit mode calculates correct array size to be allocated and sets the the win...
Definition: bcrsmatrix.hh:2151
BCRSMatrix(size_type _n, size_type _m, BuildMode bm)
matrix with unknown number of nonzeroes
Definition: bcrsmatrix.hh:714
void endindices()
indicate that all indices are defined, check consistency
Definition: bcrsmatrix.hh:1208
CompressionStatistics compress()
Finishes the buildstage in implicit mode.
Definition: bcrsmatrix.hh:1319
void setDataPointers()
Set data pointers for all rows.
Definition: bcrsmatrix.hh:1980
size_type N() const
number of rows (counted in blocks)
Definition: bcrsmatrix.hh:1849
void setBuildMode(BuildMode bm)
Sets the build mode of the matrix.
Definition: bcrsmatrix.hh:790
void setSize(size_type rows, size_type columns, size_type nnz=0)
Set the size of the matrix.
Definition: bcrsmatrix.hh:818
FieldTraits< field_type >::real_type infinity_norm() const
infinity norm (row sum norm, how to generalize for blocks?)
Definition: bcrsmatrix.hh:1806
BCRSMatrix & operator=(const BCRSMatrix &Mat)
assignment
Definition: bcrsmatrix.hh:868
void setColumnPointers(ConstRowIterator row)
Copy row sizes from iterator range starting at row and set column index pointers for all rows.
Definition: bcrsmatrix.hh:1954
ConstIterator end() const
Get const iterator to one beyond last row.
Definition: bcrsmatrix.hh:667
ConstIterator begin() const
Get const iterator to first row.
Definition: bcrsmatrix.hh:661
void setImplicitBuildModeParameters(size_type _avg, double _overflow)
Set parameters needed for creation in implicit build mode.
Definition: bcrsmatrix.hh:846
A allocator_type
export the allocator type
Definition: bcrsmatrix.hh:441
compressed_block_vector_unmanaged< B, A >::ConstIterator ConstIterator
make iterators available as types
Definition: bvector.hh:952
void set(size_type _n, B *_p, size_type *_j)
set size and pointer
Definition: bvector.hh:1024
size_type * getindexptr()
get pointer
Definition: bvector.hh:1056
void setsize(size_type _n)
set size only
Definition: bvector.hh:1032
compressed_block_vector_unmanaged< B, A >::Iterator Iterator
make iterators available as types
Definition: bvector.hh:949
void setptr(B *_p)
set pointer only
Definition: bvector.hh:1038
size_type getsize() const
get size
Definition: bvector.hh:1073
void setindexptr(size_type *_j)
set pointer only
Definition: bvector.hh:1044
Proxy row object for entry access.
Definition: bcrsmatrix.hh:131
block_type & operator[](size_type j) const
Returns entry in column j.
Definition: bcrsmatrix.hh:136
A wrapper for uniform access to the BCRSMatrix during and after the build stage in implicit build mod...
Definition: bcrsmatrix.hh:111
Matrix::block_type block_type
The block_type of the underlying matrix.
Definition: bcrsmatrix.hh:119
ImplicitMatrixBuilder(Matrix &m)
Creates an ImplicitMatrixBuilder for matrix m.
Definition: bcrsmatrix.hh:164
ImplicitMatrixBuilder(Matrix &m, size_type rows, size_type cols, size_type avg_cols_per_row, double overflow_fraction)
Sets up matrix m for implicit construction using the given parameters and creates an ImplicitBmatrixu...
Definition: bcrsmatrix.hh:188
size_type M() const
The number of columns in the matrix.
Definition: bcrsmatrix.hh:211
Matrix::size_type size_type
The size_type of the underlying matrix.
Definition: bcrsmatrix.hh:122
row_object operator[](size_type i) const
Returns a proxy for entries in row i.
Definition: bcrsmatrix.hh:199
size_type N() const
The number of rows in the matrix.
Definition: bcrsmatrix.hh:205
The overflow error used during implicit BCRSMatrix construction was exhausted.
Definition: istlexception.hh:34
Default exception if a function was called while the object is not in a valid state for that function...
Definition: exceptions.hh:306
T block_type
Export the type representing the components.
Definition: matrix.hh:32
Base class for stl conformant forward iterators.
Definition: iteratorfacades.hh:430
size_type size() const
number of blocks in the array (are of size 1 here)
Definition: basearray.hh:752
Type traits to determine the type of reals (when working with complex numbers)
DWarnType dwarn(std::cerr)
Stream for warnings indicating problems.
Definition: stdstreams.hh:159
This file implements iterator facade classes for writing stl conformant iterators.
Some handy generic functions for ISTL matrices.
Fallback implementation of the nullptr object in C++0x.
Standard Dune debug streams.
Statistics about compression achieved in implicit mode.
Definition: bcrsmatrix.hh:82
size_type overflow_total
total number of elements written to the overflow area during construction.
Definition: bcrsmatrix.hh:88
size_type maximum
maximum number of non-zeroes per row.
Definition: bcrsmatrix.hh:86
double avg
average number of non-zeroes per row.
Definition: bcrsmatrix.hh:84
double mem_ratio
fraction of wasted memory resulting from non-used overflow area.
Definition: bcrsmatrix.hh:93
Traits for type conversions and type information.
|
Legal Statements / Impressum |
Hosted by TU Dresden |
generated with Hugo v0.111.3
(Dec 22, 23:30, 2024)