Nektar++
|
#include <SparseMatrix.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 |
Public Member Functions | |
NekSparseMatrix (const SparseStorageSharedPtr &sparseStoragePtr) | |
NekSparseMatrix (const NekSparseMatrix &src) | |
~NekSparseMatrix () | |
IndexType | GetRows () const |
IndexType | GetColumns () const |
IndexType | GetNumNonZeroEntries () const |
const DataType | GetFillInRatio () const |
size_t | GetMemoryFootprint () const |
unsigned long | GetMulCallsCounter () const |
const DataType | GetAvgRowDensity () const |
IndexType | GetBandwidth () |
COOMatTypeSharedPtr | GetCooStorage () |
boost::call_traits< DataType >::const_reference | operator() (const IndexType row, const IndexType column) const |
SparseStorageType::const_iterator | begin () const |
SparseStorageType::const_iterator | end () const |
void | Multiply (const DataVectorType &in, DataVectorType &out) |
void | Multiply (const DataType *in, DataType *out) |
void | writeSparsityPatternTo (std::ostream &out, IndexType blockSize=64) |
void | writeBlockSparsityPatternTo (std::ostream &out, 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 | |
unsigned long | m_mulCallsCounter |
SparseStorageSharedPtr | m_sparseStorage |
Definition at line 57 of file SparseMatrix.hpp.
typedef Array<OneD, const DataType> Nektar::NekSparseMatrix< SparseStorageType >::ConstDataVectorType |
Definition at line 64 of file SparseMatrix.hpp.
typedef SparseStorageType::DataType Nektar::NekSparseMatrix< SparseStorageType >::DataType |
Definition at line 61 of file SparseMatrix.hpp.
typedef Array<OneD, DataType> Nektar::NekSparseMatrix< SparseStorageType >::DataVectorType |
Definition at line 63 of file SparseMatrix.hpp.
typedef std::shared_ptr<SparseStorageType> Nektar::NekSparseMatrix< SparseStorageType >::SparseStorageSharedPtr |
Definition at line 62 of file SparseMatrix.hpp.
typedef SparseStorageType Nektar::NekSparseMatrix< SparseStorageType >::StorageType |
Definition at line 60 of file SparseMatrix.hpp.
Nektar::NekSparseMatrix< SparseStorageType >::NekSparseMatrix | ( | const SparseStorageSharedPtr & | sparseStoragePtr | ) |
Definition at line 54 of file SparseMatrix.cpp.
Nektar::NekSparseMatrix< SparseStorageType >::NekSparseMatrix | ( | const NekSparseMatrix< SparseStorageType > & | src | ) |
Definition at line 61 of file SparseMatrix.cpp.
Nektar::NekSparseMatrix< SparseStorageType >::~NekSparseMatrix |
Definition at line 68 of file SparseMatrix.cpp.
SparseStorageType::const_iterator Nektar::NekSparseMatrix< SparseStorageType >::begin |
Definition at line 108 of file SparseMatrix.cpp.
References Nektar::NekSparseMatrix< SparseStorageType >::begin().
Referenced by Nektar::NekSparseMatrix< SparseStorageType >::begin().
SparseStorageType::const_iterator Nektar::NekSparseMatrix< SparseStorageType >::end |
Definition at line 115 of file SparseMatrix.cpp.
References Nektar::NekSparseMatrix< SparseStorageType >::end().
Referenced by Nektar::NekSparseMatrix< SparseStorageType >::end().
const SparseStorageType::DataType Nektar::NekSparseMatrix< SparseStorageType >::GetAvgRowDensity |
Definition at line 151 of file SparseMatrix.cpp.
References Nektar::NekSparseMatrix< SparseStorageType >::GetNumNonZeroEntries().
IndexType Nektar::NekSparseMatrix< SparseStorageType >::GetBandwidth |
Definition at line 158 of file SparseMatrix.cpp.
References tinysimd::abs().
IndexType Nektar::NekSparseMatrix< SparseStorageType >::GetColumns |
Definition at line 79 of file SparseMatrix.cpp.
Referenced by Nektar::operator<<().
COOMatTypeSharedPtr Nektar::NekSparseMatrix< SparseStorageType >::GetCooStorage |
Definition at line 174 of file SparseMatrix.cpp.
const NekSparseMatrix< SparseStorageType >::DataType Nektar::NekSparseMatrix< SparseStorageType >::GetFillInRatio |
Definition at line 92 of file SparseMatrix.cpp.
References Nektar::NekSparseMatrix< SparseStorageType >::GetFillInRatio().
Referenced by Nektar::NekSparseMatrix< SparseStorageType >::GetFillInRatio().
size_t Nektar::NekSparseMatrix< SparseStorageType >::GetMemoryFootprint |
Definition at line 137 of file SparseMatrix.cpp.
unsigned long Nektar::NekSparseMatrix< SparseStorageType >::GetMulCallsCounter |
Definition at line 144 of file SparseMatrix.cpp.
IndexType Nektar::NekSparseMatrix< SparseStorageType >::GetNumNonZeroEntries |
Definition at line 85 of file SparseMatrix.cpp.
Referenced by Nektar::NekSparseMatrix< SparseStorageType >::GetAvgRowDensity().
IndexType Nektar::NekSparseMatrix< SparseStorageType >::GetRows |
Definition at line 73 of file SparseMatrix.cpp.
Referenced by Nektar::operator<<().
void Nektar::NekSparseMatrix< SparseStorageType >::Multiply | ( | const DataType * | in, |
DataType * | out | ||
) |
Definition at line 129 of file SparseMatrix.cpp.
void Nektar::NekSparseMatrix< SparseStorageType >::Multiply | ( | const DataVectorType & | in, |
DataVectorType & | out | ||
) |
Definition at line 121 of file SparseMatrix.cpp.
boost::call_traits< typenameSparseStorageType::DataType >::const_reference Nektar::NekSparseMatrix< SparseStorageType >::operator() | ( | const IndexType | row, |
const IndexType | column | ||
) | const |
Definition at line 100 of file SparseMatrix.cpp.
void Nektar::NekSparseMatrix< SparseStorageType >::writeBlockSparsityPatternTo | ( | std::ostream & | out, |
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 235 of file SparseMatrix.cpp.
void Nektar::NekSparseMatrix< SparseStorageType >::writeSparsityPatternTo | ( | std::ostream & | out, |
IndexType | blockSize = 64 |
||
) |
Definition at line 195 of file SparseMatrix.cpp.
|
protected |
Definition at line 99 of file SparseMatrix.hpp.
|
protected |
Definition at line 100 of file SparseMatrix.hpp.