Nektar++
|
#include <BlockMatrix.hpp>
Classes | |
class | iterator_base |
Public Types | |
typedef NekMatrix< DataType, InnerMatrixType > | InnerType |
typedef NekMatrix< InnerType, BlockMatrixTag > | ThisType |
typedef InnerType::NumberType | NumberType |
typedef ConstMatrix< NumberType > | BaseType |
typedef InnerType::GetValueType | GetValueType |
typedef InnerType::ConstGetValueType | ConstGetValueType |
typedef iterator_base< ThisType > | iterator |
typedef iterator_base< const ThisType > | const_iterator |
Public Member Functions | |
NekMatrix (MatrixStorage type=eFULL) | |
NekMatrix (unsigned int numberOfBlockRows, unsigned int numberOfBlockColumns, unsigned int rowsPerBlock, unsigned int columnsPerBlock, MatrixStorage type=eFULL) | |
NekMatrix (unsigned int numberOfBlockRows, unsigned int numberOfBlockColumns, const unsigned int *rowsPerBlock, const unsigned int *columnsPerBlock, MatrixStorage type=eFULL) | |
NekMatrix (unsigned int numberOfBlockRows, unsigned int numberOfBlockColumns, const Array< OneD, const unsigned int > &rowsPerBlock, const Array< OneD, const unsigned int > &columnsPerBlock, MatrixStorage type=eFULL) | |
NekMatrix (const Array< OneD, const unsigned int > &rowsPerBlock, const Array< OneD, const unsigned int > &columnsPerBlock, MatrixStorage type=eFULL) | |
NekMatrix (const ThisType &rhs) | |
unsigned int | GetRequiredStorageSize () const |
unsigned int | CalculateBlockIndex (unsigned int row, unsigned int column) const |
const InnerType * | GetBlockPtr (unsigned int row, unsigned int column) const |
std::shared_ptr< const InnerType > | GetBlock (unsigned int row, unsigned int column) const |
std::shared_ptr< InnerType > & | GetBlock (unsigned int row, unsigned int column) |
void | SetBlock (unsigned int row, unsigned int column, std::shared_ptr< InnerType > &m) |
ConstGetValueType | operator() (unsigned int row, unsigned int col) const |
unsigned int | GetStorageSize () const |
unsigned int | GetNumberOfBlockRows () const |
unsigned int | GetNumberOfBlockColumns () const |
unsigned int | GetNumberOfRowsInBlockRow (unsigned int blockRow) const |
unsigned int | GetNumberOfColumnsInBlockColumn (unsigned int blockCol) const |
void | GetBlockSizes (Array< OneD, unsigned int > &rowSizes, Array< OneD, unsigned int > &colSizes) const |
iterator | begin () |
iterator | end () |
const_iterator | begin () const |
const_iterator | end () const |
Public Member Functions inherited from Nektar::ConstMatrix< NekMatrix< DataType, InnerMatrixType >::NumberType > | |
virtual | ~ConstMatrix () |
boost::call_traits< NekMatrix< DataType, InnerMatrixType >::NumberType >::value_type | operator() (unsigned int row, unsigned int column) const |
unsigned int | GetStorageSize () const |
MatrixStorage | GetType () const |
MatrixStorage | GetStorageType () const |
unsigned int | GetRows () const |
unsigned int | GetTransposedRows (char transpose) const |
unsigned int | GetColumns () const |
unsigned int | GetTransposedColumns (char transpose) const |
const unsigned int * | GetSize () const |
void | Transpose () |
char | GetTransposeFlag () const |
Static Public Member Functions | |
static ThisType | CreateWrapper (const ThisType &rhs) |
static std::shared_ptr< ThisType > | CreateWrapper (const std::shared_ptr< ThisType > &rhs) |
Static Public Member Functions inherited from Nektar::ConstMatrix< NekMatrix< DataType, InnerMatrixType >::NumberType > | |
static unsigned int | CalculateIndex (MatrixStorage type, unsigned int row, unsigned int col, unsigned int numRows, unsigned int numColumns, const char transpose='N', unsigned int numSubDiags=0, unsigned int numSuperDiags=0) |
static unsigned int | GetRequiredStorageSize (MatrixStorage type, unsigned int rows, unsigned int columns, unsigned int subDiags=0, unsigned int superDiags=0) |
Protected Member Functions | |
boost::call_traits< NumberType >::value_type | v_GetValue (unsigned int row, unsigned int column) const override |
unsigned int | v_GetStorageSize () const override |
void | v_Transpose () override |
Protected Member Functions inherited from Nektar::ConstMatrix< NekMatrix< DataType, InnerMatrixType >::NumberType > | |
ConstMatrix (unsigned int rows, unsigned int columns, MatrixStorage policy=eFULL) | |
ConstMatrix (const ConstMatrix< NekMatrix< DataType, InnerMatrixType >::NumberType > &rhs) | |
ConstMatrix< NekMatrix< DataType, InnerMatrixType >::NumberType > & | operator= (const ConstMatrix< NekMatrix< DataType, InnerMatrixType >::NumberType > &rhs) |
void | Resize (unsigned int rows, unsigned int columns) |
Resets the rows and columns in the array. This method does not update the data storage to match the new row and column counts. More... | |
void | SetTransposeFlag (char newValue) |
char | GetRawTransposeFlag () const |
virtual boost::call_traits< NekMatrix< DataType, InnerMatrixType >::NumberType >::value_type | v_GetValue (unsigned int row, unsigned int column) const=0 |
virtual unsigned int | v_GetStorageSize () const=0 |
virtual void | v_Transpose () |
virtual char | v_GetTransposeFlag () const |
Private Member Functions | |
void | Initialize (const unsigned int *rowsPerBlock, const unsigned int *columnsPerBlock) |
Static Private Member Functions | |
static unsigned int | GetNumberOfElementsInBlock (unsigned int block, unsigned int totalBlocks, const Array< OneD, unsigned int > &sizes) |
Private Attributes | |
Array< OneD, std::shared_ptr< InnerType > > | m_data |
std::shared_ptr< InnerType > | m_nullBlockPtr |
Array< OneD, unsigned int > | m_rowSizes |
Array< OneD, unsigned int > | m_columnSizes |
unsigned int | m_storageSize |
unsigned int | m_numberOfBlockRows |
unsigned int | m_numberOfBlockColumns |
Static Private Attributes | |
static NumberType | m_zeroElement |
Definition at line 49 of file BlockMatrix.hpp.
typedef ConstMatrix<NumberType> Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::BaseType |
Definition at line 57 of file BlockMatrix.hpp.
typedef iterator_base<const ThisType> Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::const_iterator |
Definition at line 125 of file BlockMatrix.hpp.
typedef InnerType::ConstGetValueType Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::ConstGetValueType |
Definition at line 63 of file BlockMatrix.hpp.
typedef InnerType::GetValueType Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::GetValueType |
Definition at line 62 of file BlockMatrix.hpp.
typedef NekMatrix<DataType, InnerMatrixType> Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::InnerType |
Definition at line 54 of file BlockMatrix.hpp.
typedef iterator_base<ThisType> Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::iterator |
Definition at line 124 of file BlockMatrix.hpp.
typedef InnerType::NumberType Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::NumberType |
Definition at line 56 of file BlockMatrix.hpp.
typedef NekMatrix<InnerType, BlockMatrixTag> Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::ThisType |
Definition at line 55 of file BlockMatrix.hpp.
|
explicit |
Definition at line 42 of file BlockMatrix.cpp.
Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::NekMatrix | ( | unsigned int | numberOfBlockRows, |
unsigned int | numberOfBlockColumns, | ||
unsigned int | rowsPerBlock, | ||
unsigned int | columnsPerBlock, | ||
MatrixStorage | type = eFULL |
||
) |
Definition at line 50 of file BlockMatrix.cpp.
Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::NekMatrix | ( | unsigned int | numberOfBlockRows, |
unsigned int | numberOfBlockColumns, | ||
const unsigned int * | rowsPerBlock, | ||
const unsigned int * | columnsPerBlock, | ||
MatrixStorage | type = eFULL |
||
) |
Definition at line 75 of file BlockMatrix.cpp.
Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::NekMatrix | ( | unsigned int | numberOfBlockRows, |
unsigned int | numberOfBlockColumns, | ||
const Array< OneD, const unsigned int > & | rowsPerBlock, | ||
const Array< OneD, const unsigned int > & | columnsPerBlock, | ||
MatrixStorage | type = eFULL |
||
) |
Definition at line 96 of file BlockMatrix.cpp.
Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::NekMatrix | ( | const Array< OneD, const unsigned int > & | rowsPerBlock, |
const Array< OneD, const unsigned int > & | columnsPerBlock, | ||
MatrixStorage | type = eFULL |
||
) |
Definition at line 118 of file BlockMatrix.cpp.
Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::NekMatrix | ( | const ThisType & | rhs | ) |
NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::iterator Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::begin |
Definition at line 417 of file BlockMatrix.cpp.
NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::const_iterator Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::begin |
Definition at line 433 of file BlockMatrix.cpp.
unsigned int Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::CalculateBlockIndex | ( | unsigned int | row, |
unsigned int | column | ||
) | const |
Definition at line 161 of file BlockMatrix.cpp.
|
static |
|
static |
NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::iterator Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::end |
Definition at line 425 of file BlockMatrix.cpp.
NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::const_iterator Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::end |
Definition at line 441 of file BlockMatrix.cpp.
std::shared_ptr< typename NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::InnerType > & Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::GetBlock | ( | unsigned int | row, |
unsigned int | column | ||
) |
Definition at line 231 of file BlockMatrix.cpp.
References ASSERTL2.
std::shared_ptr< const typename NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::InnerType > Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::GetBlock | ( | unsigned int | row, |
unsigned int | column | ||
) | const |
Definition at line 202 of file BlockMatrix.cpp.
References ASSERTL2.
const NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::InnerType * Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::GetBlockPtr | ( | unsigned int | row, |
unsigned int | column | ||
) | const |
Definition at line 173 of file BlockMatrix.cpp.
References ASSERTL2.
void Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::GetBlockSizes | ( | Array< OneD, unsigned int > & | rowSizes, |
Array< OneD, unsigned int > & | colSizes | ||
) | const |
Definition at line 398 of file BlockMatrix.cpp.
unsigned int Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::GetNumberOfBlockColumns |
Definition at line 353 of file BlockMatrix.cpp.
unsigned int Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::GetNumberOfBlockRows |
Definition at line 339 of file BlockMatrix.cpp.
unsigned int Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::GetNumberOfColumnsInBlockColumn | ( | unsigned int | blockCol | ) | const |
Definition at line 382 of file BlockMatrix.cpp.
|
staticprivate |
Definition at line 465 of file BlockMatrix.cpp.
References ASSERTL2.
unsigned int Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::GetNumberOfRowsInBlockRow | ( | unsigned int | blockRow | ) | const |
Definition at line 366 of file BlockMatrix.cpp.
unsigned int Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::GetRequiredStorageSize |
Definition at line 152 of file BlockMatrix.cpp.
unsigned int Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::GetStorageSize |
Definition at line 332 of file BlockMatrix.cpp.
|
private |
Definition at line 486 of file BlockMatrix.cpp.
NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::ConstGetValueType Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::operator() | ( | unsigned int | row, |
unsigned int | col | ||
) | const |
Definition at line 279 of file BlockMatrix.cpp.
References ASSERTL2.
void Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::SetBlock | ( | unsigned int | row, |
unsigned int | column, | ||
std::shared_ptr< InnerType > & | m | ||
) |
Definition at line 258 of file BlockMatrix.cpp.
References ASSERTL2.
|
overrideprotectedvirtual |
Implements Nektar::ConstMatrix< NekMatrix< DataType, InnerMatrixType >::NumberType >.
Definition at line 520 of file BlockMatrix.cpp.
|
overrideprotectedvirtual |
Implements Nektar::ConstMatrix< NekMatrix< DataType, InnerMatrixType >::NumberType >.
Definition at line 512 of file BlockMatrix.cpp.
|
overrideprotectedvirtual |
Reimplemented from Nektar::ConstMatrix< NekMatrix< DataType, InnerMatrixType >::NumberType >.
Definition at line 527 of file BlockMatrix.cpp.
|
private |
Definition at line 222 of file BlockMatrix.hpp.
|
private |
Definition at line 219 of file BlockMatrix.hpp.
|
private |
Definition at line 220 of file BlockMatrix.hpp.
|
private |
Definition at line 225 of file BlockMatrix.hpp.
|
private |
Definition at line 224 of file BlockMatrix.hpp.
|
private |
Definition at line 221 of file BlockMatrix.hpp.
|
private |
Definition at line 223 of file BlockMatrix.hpp.
|
staticprivate |
Definition at line 226 of file BlockMatrix.hpp.