Nektar++
|
Represents a matrix of all degrees of freedom. More...
#include <GlobalMatrix.h>
Public Types | |
typedef NekSparseMatrix< StorageSmvBsr< NekDouble > > | DNekSmvBsrMat |
typedef std::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... | |
unsigned long | GetMulCallsCounter () 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 44 of file GlobalMatrix.h.
typedef NekSparseMatrix<StorageSmvBsr<NekDouble> > Nektar::MultiRegions::GlobalMatrix::DNekSmvBsrMat |
Definition at line 47 of file GlobalMatrix.h.
typedef std::shared_ptr<DNekSmvBsrMat> Nektar::MultiRegions::GlobalMatrix::DNekSmvBsrMatSharedPtr |
Definition at line 48 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 65 of file GlobalMatrix.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), ASSERTL1, Nektar::convertCooToBco(), Nektar::ErrorUtil::efatal, Nektar::MultiRegions::eSmvBSR, m_copyOp, m_smvbsrmatrix, m_tmpin, m_tmpout, Nektar::MultiRegions::MatrixStorageTypeMap, and NEKERROR.
|
inline |
Definition at line 56 of file GlobalMatrix.h.
unsigned long Nektar::MultiRegions::GlobalMatrix::GetMulCallsCounter | ( | ) | const |
Definition at line 179 of file GlobalMatrix.cpp.
References m_smvbsrmatrix.
unsigned int Nektar::MultiRegions::GlobalMatrix::GetNumNonZeroEntries | ( | ) | const |
Definition at line 188 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 152 of file GlobalMatrix.cpp.
References m_copyOp, m_mulCallsCounter, m_rows, m_smvbsrmatrix, m_tmpin, m_tmpout, and Vmath::Vcopy().
|
staticprivate |
Definition at line 79 of file GlobalMatrix.h.
|
staticprivate |
Definition at line 80 of file GlobalMatrix.h.
|
private |
Definition at line 77 of file GlobalMatrix.h.
Referenced by GlobalMatrix(), and Multiply().
|
private |
Definition at line 75 of file GlobalMatrix.h.
Referenced by Multiply().
|
private |
Definition at line 71 of file GlobalMatrix.h.
Referenced by Multiply().
|
private |
Pointer to a double-precision Nektar++ sparse matrix.
Definition at line 69 of file GlobalMatrix.h.
Referenced by GetMulCallsCounter(), GetNumNonZeroEntries(), GlobalMatrix(), and Multiply().
Definition at line 72 of file GlobalMatrix.h.
Referenced by GlobalMatrix(), and Multiply().
Definition at line 73 of file GlobalMatrix.h.
Referenced by GlobalMatrix(), and Multiply().