Nektar++
|
#include <StorageSmvBsr.hpp>
Classes | |
class | const_iterator |
Public Types | |
typedef T | DataType |
typedef Array< OneD, DataType > | DataVectorType |
typedef Array< OneD, const DataType > | ConstDataVectorType |
typedef Array< OneD, IndexType > | IndexVectorType |
typedef void(* | MultiplyKernel) (const double *, const double *, double *) |
Public Member Functions | |
StorageSmvBsr (const IndexType blkRows, const IndexType blkCols, const IndexType blkDim, const BCOMatType &bcoMat, const MatrixStorage matType=eFULL) | |
StorageSmvBsr (const StorageSmvBsr &src) | |
~StorageSmvBsr () | |
IndexType | GetRows () const |
IndexType | GetColumns () const |
IndexType | GetNumNonZeroEntries () const |
IndexType | GetNumStoredDoubles () const |
IndexType | GetBlkSize () const |
DataType | GetFillInRatio () const |
size_t | GetMemoryUsage () const |
const_iterator | begin () const |
const_iterator | end () const |
const DataType & | GetValue (IndexType row, IndexType column) const |
void | Multiply (const DataType *in, DataType *out) |
void | Multiply (const DataVectorType &in, DataVectorType &out) |
void | MultiplyLight (const DataVectorType &in, DataVectorType &out) |
Protected Member Functions | |
void | processBcoInput (const IndexType blkRows, const IndexType blkDim, const BCOMatType &bcoMat) |
void | Multiply_1x1 (const int mb, const double *val, const int *bindx, const int *bpntrb, const int *bpntre, const double *b, double *c) |
Zero-based CSR multiply. Essentially this is slightly modified copy-paste from NIST Sparse Blas 0.9b routine CSR_VecMult_CAB_double() More... | |
void | Multiply_2x2 (const int mb, const double *val, const int *bindx, const int *bpntrb, const int *bpntre, const double *b, double *c) |
Zero-based BSR multiply unrolled for 2x2 blocks. Essentially this is slightly optimised copy-paste from NIST Sparse Blas 0.9b routine BSR_VecMult_BAB_double() More... | |
void | Multiply_3x3 (const int mb, const double *val, const int *bindx, const int *bpntrb, const int *bpntre, const double *b, double *c) |
Zero-based BSR multiply unrolled for 3x3 blocks. More... | |
void | Multiply_4x4 (const int mb, const double *val, const int *bindx, const int *bpntrb, const int *bpntre, const double *b, double *c) |
Zero-based BSR multiply unrolled for 4x4 blocks. More... | |
void | Multiply_generic (const int mb, const double *val, const int *bindx, const int *bpntrb, const int *bpntre, const double *b, double *c) |
Generic zero-based BSR multiply for higher matrix ranks. More... | |
Definition at line 62 of file StorageSmvBsr.hpp.
typedef Array<OneD, const DataType> Nektar::StorageSmvBsr< T >::ConstDataVectorType |
Definition at line 68 of file StorageSmvBsr.hpp.
typedef T Nektar::StorageSmvBsr< T >::DataType |
Definition at line 66 of file StorageSmvBsr.hpp.
typedef Array<OneD, DataType> Nektar::StorageSmvBsr< T >::DataVectorType |
Definition at line 67 of file StorageSmvBsr.hpp.
typedef Array<OneD, IndexType> Nektar::StorageSmvBsr< T >::IndexVectorType |
Definition at line 69 of file StorageSmvBsr.hpp.
typedef void(* Nektar::StorageSmvBsr< T >::MultiplyKernel) (const double *, const double *, double *) |
Definition at line 71 of file StorageSmvBsr.hpp.
Nektar::StorageSmvBsr< DataType >::StorageSmvBsr | ( | const IndexType | blkRows, |
const IndexType | blkCols, | ||
const IndexType | blkDim, | ||
const BCOMatType & | bcoMat, | ||
const MatrixStorage | matType = eFULL |
||
) |
Definition at line 206 of file StorageSmvBsr.cpp.
References Nektar::eFULL, and Nektar::StorageSmvBsr< T >::processBcoInput().
Nektar::StorageSmvBsr< DataType >::StorageSmvBsr | ( | const StorageSmvBsr< T > & | src | ) |
Nektar::StorageSmvBsr< DataType >::~StorageSmvBsr |
Definition at line 236 of file StorageSmvBsr.cpp.
StorageSmvBsr< DataType >::const_iterator Nektar::StorageSmvBsr< DataType >::begin |
Definition at line 314 of file StorageSmvBsr.cpp.
Referenced by Nektar::StorageSmvBsr< T >::const_iterator::const_iterator().
StorageSmvBsr< DataType >::const_iterator Nektar::StorageSmvBsr< DataType >::end |
Definition at line 320 of file StorageSmvBsr.cpp.
Referenced by Nektar::StorageSmvBsr< T >::const_iterator::const_iterator().
IndexType Nektar::StorageSmvBsr< DataType >::GetBlkSize |
Definition at line 258 of file StorageSmvBsr.cpp.
IndexType Nektar::StorageSmvBsr< DataType >::GetColumns |
Definition at line 246 of file StorageSmvBsr.cpp.
DataType Nektar::StorageSmvBsr< DataType >::GetFillInRatio |
Definition at line 270 of file StorageSmvBsr.cpp.
size_t Nektar::StorageSmvBsr< DataType >::GetMemoryUsage |
Definition at line 276 of file StorageSmvBsr.cpp.
IndexType Nektar::StorageSmvBsr< DataType >::GetNumNonZeroEntries |
Definition at line 252 of file StorageSmvBsr.cpp.
IndexType Nektar::StorageSmvBsr< DataType >::GetNumStoredDoubles |
Definition at line 264 of file StorageSmvBsr.cpp.
IndexType Nektar::StorageSmvBsr< DataType >::GetRows |
Definition at line 240 of file StorageSmvBsr.cpp.
const DataType & Nektar::StorageSmvBsr< DataType >::GetValue | ( | IndexType | row, |
IndexType | column | ||
) | const |
Definition at line 286 of file StorageSmvBsr.cpp.
void Nektar::StorageSmvBsr< DataType >::Multiply | ( | const DataType * | in, |
DataType * | out | ||
) |
Definition at line 359 of file StorageSmvBsr.cpp.
void Nektar::StorageSmvBsr< DataType >::Multiply | ( | const DataVectorType & | in, |
DataVectorType & | out | ||
) |
Definition at line 331 of file StorageSmvBsr.cpp.
|
protected |
Zero-based CSR multiply. Essentially this is slightly modified copy-paste from NIST Sparse Blas 0.9b routine CSR_VecMult_CAB_double()
Definition at line 419 of file StorageSmvBsr.cpp.
|
protected |
Zero-based BSR multiply unrolled for 2x2 blocks. Essentially this is slightly optimised copy-paste from NIST Sparse Blas 0.9b routine BSR_VecMult_BAB_double()
Definition at line 441 of file StorageSmvBsr.cpp.
|
protected |
Zero-based BSR multiply unrolled for 3x3 blocks.
Definition at line 472 of file StorageSmvBsr.cpp.
|
protected |
Zero-based BSR multiply unrolled for 4x4 blocks.
Definition at line 505 of file StorageSmvBsr.cpp.
|
protected |
Generic zero-based BSR multiply for higher matrix ranks.
Definition at line 544 of file StorageSmvBsr.cpp.
References Blas::Dgemv().
void Nektar::StorageSmvBsr< DataType >::MultiplyLight | ( | const DataVectorType & | in, |
DataVectorType & | out | ||
) |
Definition at line 388 of file StorageSmvBsr.cpp.
|
protected |
Definition at line 577 of file StorageSmvBsr.cpp.
References tinysimd::abs(), CellMLToNektar.pycml::copy(), and Nektar::NekConstants::kNekSparseNonZeroTol.
Referenced by Nektar::StorageSmvBsr< T >::StorageSmvBsr().
|
protected |
Definition at line 181 of file StorageSmvBsr.hpp.
|
protected |
Definition at line 182 of file StorageSmvBsr.hpp.
Referenced by Nektar::StorageSmvBsr< T >::const_iterator::storageIndexToFullCoord().
|
protected |
Definition at line 180 of file StorageSmvBsr.hpp.
|
protected |
Definition at line 184 of file StorageSmvBsr.hpp.
|
protected |
Definition at line 188 of file StorageSmvBsr.hpp.
Referenced by Nektar::StorageSmvBsr< T >::const_iterator::storageIndexToFullCoord().
|
protected |
Definition at line 178 of file StorageSmvBsr.hpp.
|
protected |
Definition at line 176 of file StorageSmvBsr.hpp.
|
protected |
Definition at line 185 of file StorageSmvBsr.hpp.
|
protected |
Definition at line 189 of file StorageSmvBsr.hpp.
Referenced by Nektar::StorageSmvBsr< T >::const_iterator::storageIndexToFullCoord().
|
protected |
Definition at line 187 of file StorageSmvBsr.hpp.
Referenced by Nektar::StorageSmvBsr< T >::const_iterator::forward().