Nektar++
|
Represents a matrix of all degrees of freedom. More...
#include <GlobalMatrix.h>
Public Types | |
typedef NekSparseMatrix < StorageSmvBsr< NekDouble > > | DNekSmvBsrMat |
typedef boost::shared_ptr < DNekSmvBsrMat > | DNekSmvBsrMatSharedPtr |
Public Member Functions | |
GlobalMatrix (const LibUtilities::SessionReaderSharedPtr &pSession, unsigned int rows, unsigned int columns, const COOMatType &cooMat, const MatrixStorage &matStorage=eFULL) | |
Construct a new matrix. More... | |
~GlobalMatrix () | |
void | Multiply (const Array< OneD, const NekDouble > &in, Array< OneD, NekDouble > &out) |
Perform a matrix-vector multiply. More... | |
const unsigned long | GetMulCallsCounter () const |
const unsigned int | GetNumNonZeroEntries () const |
Private Attributes | |
DNekSmvBsrMatSharedPtr | m_smvbsrmatrix |
Pointer to a double-precision Nektar++ sparse matrix. More... | |
unsigned int | m_rows |
Array< OneD, NekDouble > | m_tmpin |
Array< OneD, NekDouble > | m_tmpout |
unsigned long | m_mulCallsCounter |
bool | m_copyOp |
Static Private Attributes | |
static std::string | def |
static std::string | lookupIds [] |
Represents a matrix of all degrees of freedom.
This matrix is essentially a wrapper around a DNekSparseMat.
Definition at line 47 of file GlobalMatrix.h.
typedef NekSparseMatrix<StorageSmvBsr<NekDouble> > Nektar::MultiRegions::GlobalMatrix::DNekSmvBsrMat |
Definition at line 50 of file GlobalMatrix.h.
typedef boost::shared_ptr<DNekSmvBsrMat> Nektar::MultiRegions::GlobalMatrix::DNekSmvBsrMatSharedPtr |
Definition at line 51 of file GlobalMatrix.h.
Nektar::MultiRegions::GlobalMatrix::GlobalMatrix | ( | const LibUtilities::SessionReaderSharedPtr & | pSession, |
unsigned int | rows, | ||
unsigned int | columns, | ||
const COOMatType & | cooMat, | ||
const MatrixStorage & | matStorage = eFULL |
||
) |
Construct a new matrix.
Allocates a new DNekSparseMat object from the given specification.
rows | Number of rows in matrix. |
columns | Number of columns in matrix. |
cooMat | ? |
Definition at line 69 of file GlobalMatrix.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), ASSERTL1, Nektar::convertCooToBco(), ErrorUtil::efatal, Nektar::MultiRegions::eSmvBSR, m_copyOp, m_smvbsrmatrix, m_tmpin, m_tmpout, Nektar::MultiRegions::MatrixStorageTypeMap, and NEKERROR.
|
inline |
Definition at line 61 of file GlobalMatrix.h.
const unsigned long Nektar::MultiRegions::GlobalMatrix::GetMulCallsCounter | ( | ) | const |
Definition at line 177 of file GlobalMatrix.cpp.
References m_smvbsrmatrix.
const unsigned int Nektar::MultiRegions::GlobalMatrix::GetNumNonZeroEntries | ( | ) | const |
Definition at line 183 of file GlobalMatrix.cpp.
References m_smvbsrmatrix.
void Nektar::MultiRegions::GlobalMatrix::Multiply | ( | const Array< OneD, const NekDouble > & | in, |
Array< OneD, NekDouble > & | out | ||
) |
Perform a matrix-vector multiply.
Performs a matrix-vector multiply using the sparse format-specific multiply routine.
in | Input vector. |
out | Output vector. |
Definition at line 156 of file GlobalMatrix.cpp.
References m_copyOp, m_mulCallsCounter, m_rows, m_smvbsrmatrix, m_tmpin, m_tmpout, and Vmath::Vcopy().
|
staticprivate |
Definition at line 84 of file GlobalMatrix.h.
|
staticprivate |
Definition at line 85 of file GlobalMatrix.h.
|
private |
Definition at line 82 of file GlobalMatrix.h.
Referenced by GlobalMatrix(), and Multiply().
|
private |
Definition at line 80 of file GlobalMatrix.h.
Referenced by Multiply().
|
private |
Definition at line 76 of file GlobalMatrix.h.
Referenced by Multiply().
|
private |
Pointer to a double-precision Nektar++ sparse matrix.
Definition at line 74 of file GlobalMatrix.h.
Referenced by GetMulCallsCounter(), GetNumNonZeroEntries(), GlobalMatrix(), and Multiply().
Definition at line 77 of file GlobalMatrix.h.
Referenced by GlobalMatrix(), and Multiply().
Definition at line 78 of file GlobalMatrix.h.
Referenced by GlobalMatrix(), and Multiply().