Nektar++
|
#include <SparseDiagBlkMatrix.hpp>
Public Types | |
typedef SparseStorageType | StorageType |
typedef SparseStorageType::DataType | DataType |
typedef std::shared_ptr< SparseStorageType > | SparseStorageSharedPtr |
typedef Array< OneD, DataType > | DataVectorType |
typedef Array< OneD, const DataType > | ConstDataVectorType |
typedef Array< OneD, SparseStorageSharedPtr > | SparseStorageSharedPtrVector |
Public Member Functions | |
NekSparseDiagBlkMatrix (const SparseStorageSharedPtrVector &sparseStoragePtrVector) | |
NekSparseDiagBlkMatrix (const NekSparseDiagBlkMatrix &src) | |
~NekSparseDiagBlkMatrix () | |
IndexType | GetRows () const |
IndexType | GetColumns () const |
IndexType | GetNumNonZeroEntries () |
DataType | GetFillInRatio () const |
IndexType | GetRows (int i) const |
number of rows at i-th submatrix More... | |
IndexType | GetColumns (int i) const |
number of columns at i-th submatrix More... | |
IndexType | GetNumberOfMatrixBlocks () const |
IndexType | GetNumNonZeroEntries (int i) const |
DataType | GetFillInRatio (int i) const |
boost::call_traits< DataType >::const_reference | operator() (const IndexType row, const IndexType column) const |
boost::call_traits< DataType >::const_reference | operator() (const IndexType block, const IndexType row, const IndexType column) const |
void | Multiply (const DataVectorType &in, DataVectorType &out) |
void | Multiply (const DataType *in, DataType *out) |
void | MultiplySubMatrix (const IndexType blockNum, DataType *in, DataType *out) |
size_t | GetMemoryFootprint () |
size_t | GetMemoryFootprint (IndexType i) const |
unsigned long | GetMulCallsCounter () const |
DataType | GetAvgRowDensity () |
DataType | GetAvgRowDensity (IndexType i) const |
IndexType | GetBandwidth () |
IndexType | GetBandwidth (IndexType i) |
COOMatTypeSharedPtr | GetCooStorage () |
COOMatTypeSharedPtr | GetCooStorage (IndexType i) |
void | writeSparsityPatternTo (std::ostream &out, IndexType blockSize=64) |
void | writeSubmatrixSparsityPatternTo (std::ostream &out, const IndexType subMatrixIdx, IndexType blockSize=64) |
void | writeBlockSparsityPatternTo (std::ostream &out, const IndexType blk_row=0, const IndexType blk_col=0, IndexType blockSize=64) |
void | writeSubmatrixBlockSparsityPatternTo (std::ostream &out, const IndexType subMatrixIdx, const IndexType blk_row=0, const IndexType blk_col=0, IndexType blockSize=64) |
Complementary routine to the previous. It generates exact non-zero pattern of a given block matrix entry to *this object. E.g., for a 6x6 matrix defined as A(i,i):=i, A(i,j):=0, block size = 2 and blk_row=blk_col=2 it produces 2x2 matrix with 5 and 6 along the diagonal. More... | |
Protected Attributes | |
IndexType | m_rows |
IndexType | m_cols |
IndexVector | m_rowoffset |
unsigned long | m_mulCallsCounter |
SparseStorageSharedPtrVector | m_submatrix |
Definition at line 59 of file SparseDiagBlkMatrix.hpp.
typedef Array<OneD, const DataType> Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::ConstDataVectorType |
Definition at line 66 of file SparseDiagBlkMatrix.hpp.
typedef SparseStorageType::DataType Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::DataType |
Definition at line 63 of file SparseDiagBlkMatrix.hpp.
typedef Array<OneD, DataType> Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::DataVectorType |
Definition at line 65 of file SparseDiagBlkMatrix.hpp.
typedef std::shared_ptr<SparseStorageType> Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::SparseStorageSharedPtr |
Definition at line 64 of file SparseDiagBlkMatrix.hpp.
typedef Array<OneD, SparseStorageSharedPtr> Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::SparseStorageSharedPtrVector |
Definition at line 67 of file SparseDiagBlkMatrix.hpp.
typedef SparseStorageType Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::StorageType |
Definition at line 62 of file SparseDiagBlkMatrix.hpp.
Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::NekSparseDiagBlkMatrix | ( | const SparseStorageSharedPtrVector & | sparseStoragePtrVector | ) |
Definition at line 51 of file SparseDiagBlkMatrix.cpp.
References Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::m_cols, Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::m_rowoffset, and Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::m_rows.
Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::NekSparseDiagBlkMatrix | ( | const NekSparseDiagBlkMatrix< SparseStorageType > & | src | ) |
Definition at line 67 of file SparseDiagBlkMatrix.cpp.
Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::~NekSparseDiagBlkMatrix |
Definition at line 75 of file SparseDiagBlkMatrix.cpp.
SparseStorageType::DataType Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::GetAvgRowDensity |
Definition at line 251 of file SparseDiagBlkMatrix.cpp.
SparseStorageType::DataType Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::GetAvgRowDensity | ( | IndexType | i | ) | const |
Definition at line 264 of file SparseDiagBlkMatrix.cpp.
References Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::GetNumNonZeroEntries().
IndexType Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::GetBandwidth |
Definition at line 271 of file SparseDiagBlkMatrix.cpp.
References tinysimd::abs().
IndexType Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::GetBandwidth | ( | IndexType | i | ) |
Definition at line 291 of file SparseDiagBlkMatrix.cpp.
References tinysimd::abs().
IndexType Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::GetColumns |
Definition at line 86 of file SparseDiagBlkMatrix.cpp.
Referenced by Nektar::operator<<().
IndexType Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::GetColumns | ( | int | i | ) | const |
number of columns at i-th submatrix
Definition at line 100 of file SparseDiagBlkMatrix.cpp.
COOMatTypeSharedPtr Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::GetCooStorage |
Definition at line 321 of file SparseDiagBlkMatrix.cpp.
COOMatTypeSharedPtr Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::GetCooStorage | ( | IndexType | i | ) |
Definition at line 306 of file SparseDiagBlkMatrix.cpp.
NekSparseDiagBlkMatrix< SparseStorageType >::DataType Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::GetFillInRatio |
Definition at line 140 of file SparseDiagBlkMatrix.cpp.
References Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::GetNumNonZeroEntries().
Referenced by Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::GetFillInRatio().
NekSparseDiagBlkMatrix< SparseStorageType >::DataType Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::GetFillInRatio | ( | int | i | ) | const |
Definition at line 133 of file SparseDiagBlkMatrix.cpp.
References Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::GetFillInRatio().
size_t Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::GetMemoryFootprint |
Definition at line 220 of file SparseDiagBlkMatrix.cpp.
size_t Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::GetMemoryFootprint | ( | IndexType | i | ) | const |
Definition at line 236 of file SparseDiagBlkMatrix.cpp.
unsigned long Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::GetMulCallsCounter |
Definition at line 243 of file SparseDiagBlkMatrix.cpp.
IndexType Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::GetNumberOfMatrixBlocks |
Definition at line 106 of file SparseDiagBlkMatrix.cpp.
IndexType Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::GetNumNonZeroEntries |
Definition at line 113 of file SparseDiagBlkMatrix.cpp.
Referenced by Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::GetAvgRowDensity(), and Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::GetFillInRatio().
IndexType Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::GetNumNonZeroEntries | ( | int | i | ) | const |
Definition at line 125 of file SparseDiagBlkMatrix.cpp.
IndexType Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::GetRows |
Definition at line 80 of file SparseDiagBlkMatrix.cpp.
Referenced by Nektar::operator<<().
IndexType Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::GetRows | ( | int | i | ) | const |
number of rows at i-th submatrix
Definition at line 93 of file SparseDiagBlkMatrix.cpp.
void Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::Multiply | ( | const DataType * | in, |
DataType * | out | ||
) |
Definition at line 200 of file SparseDiagBlkMatrix.cpp.
void Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::Multiply | ( | const DataVectorType & | in, |
DataVectorType & | out | ||
) |
Definition at line 189 of file SparseDiagBlkMatrix.cpp.
void Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::MultiplySubMatrix | ( | const IndexType | blockNum, |
DataType * | in, | ||
DataType * | out | ||
) |
Definition at line 211 of file SparseDiagBlkMatrix.cpp.
boost::call_traits< typenameSparseStorageType::DataType >::const_reference Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::operator() | ( | const IndexType | block, |
const IndexType | row, | ||
const IndexType | column | ||
) | const |
Definition at line 155 of file SparseDiagBlkMatrix.cpp.
boost::call_traits< typenameSparseStorageType::DataType >::const_reference Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::operator() | ( | const IndexType | row, |
const IndexType | column | ||
) | const |
Definition at line 164 of file SparseDiagBlkMatrix.cpp.
void Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::writeBlockSparsityPatternTo | ( | std::ostream & | out, |
const IndexType | blk_row = 0 , |
||
const IndexType | blk_col = 0 , |
||
IndexType | blockSize = 64 |
||
) |
Definition at line 482 of file SparseDiagBlkMatrix.cpp.
void Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::writeSparsityPatternTo | ( | std::ostream & | out, |
IndexType | blockSize = 64 |
||
) |
Definition at line 388 of file SparseDiagBlkMatrix.cpp.
void Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::writeSubmatrixBlockSparsityPatternTo | ( | std::ostream & | out, |
const IndexType | subMatrixIdx, | ||
const IndexType | blk_row = 0 , |
||
const IndexType | blk_col = 0 , |
||
IndexType | blockSize = 64 |
||
) |
Complementary routine to the previous. It generates exact non-zero pattern of a given block matrix entry to *this object. E.g., for a 6x6 matrix defined as A(i,i):=i, A(i,j):=0, block size = 2 and blk_row=blk_col=2 it produces 2x2 matrix with 5 and 6 along the diagonal.
Definition at line 437 of file SparseDiagBlkMatrix.cpp.
void Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::writeSubmatrixSparsityPatternTo | ( | std::ostream & | out, |
const IndexType | subMatrixIdx, | ||
IndexType | blockSize = 64 |
||
) |
Definition at line 351 of file SparseDiagBlkMatrix.cpp.
|
protected |
Definition at line 124 of file SparseDiagBlkMatrix.hpp.
Referenced by Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::NekSparseDiagBlkMatrix().
|
protected |
Definition at line 126 of file SparseDiagBlkMatrix.hpp.
|
protected |
Definition at line 125 of file SparseDiagBlkMatrix.hpp.
Referenced by Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::NekSparseDiagBlkMatrix().
|
protected |
Definition at line 123 of file SparseDiagBlkMatrix.hpp.
Referenced by Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::NekSparseDiagBlkMatrix().
|
protected |
Definition at line 127 of file SparseDiagBlkMatrix.hpp.