v0.14.0 |
Matrix manager is used to build and partition problems. More...
#include <src/interfaces/MatrixManager.hpp>
Public Member Functions | |
MoFEMErrorCode | query_interface (boost::typeindex::type_index type_index, UnknownInterface **iface) const |
MatrixManager (const MoFEM::Core &core) | |
virtual | ~MatrixManager ()=default |
Destructor. More... | |
template<class Tag > | |
MoFEMErrorCode | createMPIAIJWithArrays (const std::string name, Mat *Aij, int verb=QUIET) |
Creates a MPI AIJ matrix using arrays that contain in standard CSR format the local rows. More... | |
template<class Tag > | |
MoFEMErrorCode | createMPIAIJWithArrays (const std::string name, SmartPetscObj< Mat > &aij_ptr, int verb=QUIET) |
Creates a MPI AIJ matrix using arrays that contain in standard CSR format the local rows. More... | |
template<class Tag > | |
MoFEMErrorCode | createMPIAIJCUSPARSEWithArrays (const std::string name, Mat *Aij, int verb=QUIET) |
template<class Tag > | |
MoFEMErrorCode | createMPIAIJCUSPARSEWithArrays (const std::string name, SmartPetscObj< Mat > &aij_ptr, int verb=QUIET) |
template<class Tag > | |
MoFEMErrorCode | createSeqAIJCUSPARSEWithArrays (const std::string name, Mat *Aij, int verb=QUIET) |
template<class Tag > | |
MoFEMErrorCode | createSeqAIJCUSPARSEWithArrays (const std::string name, SmartPetscObj< Mat > &aij_ptr, int verb=QUIET) |
template<class Tag > | |
MoFEMErrorCode | createMPIAIJ (const std::string name, Mat *Aij, int verb=QUIET) |
Creates a MPI AIJ matrix using arrays that contain in standard CSR format the local rows. More... | |
template<class Tag > | |
MoFEMErrorCode | createMPIAIJ (const std::string name, SmartPetscObj< Mat > &aij_ptr, int verb=QUIET) |
Creates a MPI AIJ matrix using arrays that contain in standard CSR format the local rows. More... | |
template<class Tag > | |
MoFEMErrorCode | createMPIAdjWithArrays (const std::string name, Mat *Adj, int verb=QUIET) |
Creates a sparse matrix representing an adjacency list. More... | |
template<class Tag > | |
MoFEMErrorCode | createSeqAIJWithArrays (const std::string name, Mat *Aij, int verb=QUIET) |
Create sequencial matrix. More... | |
template<class Tag > | |
MoFEMErrorCode | createSeqAIJWithArrays (const std::string name, SmartPetscObj< Mat > &aij_ptr, int verb=QUIET) |
Create sequencial matrix. More... | |
MoFEMErrorCode | checkMatrixFillIn (const std::string problem_name, int row_print, int col_print, Mat A, int verb=QUIET) |
check if matrix fill in correspond to finite element indices More... | |
template<class Tag > | |
MoFEMErrorCode | checkMPIAIJWithArraysMatrixFillIn (const std::string problem_name, int row_print, int col_print, int verb=QUIET) |
check if matrix fill in correspond to finite element indices More... | |
template<class Tag > | |
MoFEMErrorCode | checkMPIAIJMatrixFillIn (const std::string problem_name, int row_print, int col_print, int verb=QUIET) |
check if matrix fill in correspond to finite element indices More... | |
template<> | |
MoFEMErrorCode | createMPIAIJWithArrays (const std::string name, Mat *Aij, int verb) |
template<> | |
MoFEMErrorCode | createMPIAIJCUSPARSEWithArrays (const std::string name, Mat *Aij, int verb) |
template<> | |
MoFEMErrorCode | createSeqAIJCUSPARSEWithArrays (const std::string name, Mat *Aij, int verb) |
template<> | |
MoFEMErrorCode | createMPIAIJ (const std::string name, Mat *Aij, int verb) |
template<> | |
MoFEMErrorCode | createMPIAdjWithArrays (const std::string name, Mat *Adj, int verb) |
template<> | |
MoFEMErrorCode | createSeqAIJWithArrays (const std::string name, Mat *Aij, int verb) |
template<> | |
MoFEMErrorCode | checkMPIAIJWithArraysMatrixFillIn (const std::string problem_name, int row_print, int col_print, int verb) |
template<> | |
MoFEMErrorCode | checkMPIAIJMatrixFillIn (const std::string problem_name, int row_print, int col_print, int verb) |
template<> | |
MoFEMErrorCode | createMPIAIJWithArrays (const std::string name, Mat *Aij, int verb) |
template<> | |
MoFEMErrorCode | createMPIAIJCUSPARSEWithArrays (const std::string name, Mat *Aij, int verb) |
template<> | |
MoFEMErrorCode | createMPIAIJ (const std::string name, Mat *Aij, int verb) |
template<> | |
MoFEMErrorCode | createMPIAdjWithArrays (const std::string name, Mat *Adj, int verb) |
template<> | |
MoFEMErrorCode | createSeqAIJWithArrays (const std::string name, Mat *Aij, int verb) |
template<> | |
MoFEMErrorCode | createSeqAIJCUSPARSEWithArrays (const std::string name, Mat *Aij, int verb) |
template<> | |
MoFEMErrorCode | checkMPIAIJWithArraysMatrixFillIn (const std::string problem_name, int row_print, int col_print, int verb) |
template<> | |
MoFEMErrorCode | checkMPIAIJMatrixFillIn (const std::string problem_name, int row_print, int col_print, int verb) |
Public Member Functions inherited from MoFEM::UnknownInterface | |
template<class IFACE > | |
MoFEMErrorCode | registerInterface (bool error_if_registration_failed=true) |
Register interface. More... | |
template<class IFACE > | |
MoFEMErrorCode | getInterface (IFACE *&iface) const |
Get interface refernce to pointer of interface. More... | |
template<class IFACE > | |
MoFEMErrorCode | getInterface (IFACE **const iface) const |
Get interface pointer to pointer of interface. More... | |
template<class IFACE , typename boost::enable_if< boost::is_pointer< IFACE >, int >::type = 0> | |
IFACE | getInterface () const |
Get interface pointer to pointer of interface. More... | |
template<class IFACE , typename boost::enable_if< boost::is_reference< IFACE >, int >::type = 0> | |
IFACE | getInterface () const |
Get reference to interface. More... | |
template<class IFACE > | |
IFACE * | getInterface () const |
Function returning pointer to interface. More... | |
virtual | ~UnknownInterface ()=default |
Public Attributes | |
MoFEM::Core & | cOre |
Private Attributes | |
PetscLogEvent | MOFEM_EVENT_createMPIAIJ |
PetscLogEvent | MOFEM_EVENT_createMPIAIJWithArrays |
PetscLogEvent | MOFEM_EVENT_createMPIAdjWithArrays |
PetscLogEvent | MOFEM_EVENT_createSeqAIJWithArrays |
PetscLogEvent | MOFEM_EVENT_createMPIAIJCUSPARSEWithArrays |
PetscLogEvent | MOFEM_EVENT_createSeqAIJCUSPARSEWithArrays |
PetscLogEvent | MOFEM_EVENT_checkMatrixFillIn |
Additional Inherited Members | |
Static Public Member Functions inherited from MoFEM::UnknownInterface | |
static MoFEMErrorCode | getLibVersion (Version &version) |
Get library version. More... | |
static MoFEMErrorCode | getFileVersion (moab::Interface &moab, Version &version) |
Get database major version. More... | |
static MoFEMErrorCode | setFileVersion (moab::Interface &moab, Version version=Version(MoFEM_VERSION_MAJOR, MoFEM_VERSION_MINOR, MoFEM_VERSION_BUILD)) |
Get database major version. More... | |
static MoFEMErrorCode | getInterfaceVersion (Version &version) |
Get database major version. More... | |
Matrix manager is used to build and partition problems.
Definition at line 21 of file MatrixManager.hpp.
MoFEM::MatrixManager::MatrixManager | ( | const MoFEM::Core & | core | ) |
Definition at line 597 of file MatrixManager.cpp.
|
virtualdefault |
Destructor.
MoFEMErrorCode MoFEM::MatrixManager::checkMatrixFillIn | ( | const std::string | problem_name, |
int | row_print, | ||
int | col_print, | ||
Mat | A, | ||
int | verb = QUIET |
||
) |
check if matrix fill in correspond to finite element indices
This is used to check consistency of code. If problem is notices with additional non-zero elements in matrix, this function can help detect problem. Should be used as a part of atom tests
problem_name | |
row | print info at particular row |
col | print info at particular col |
Definition at line 890 of file MatrixManager.cpp.
MoFEMErrorCode MoFEM::MatrixManager::checkMPIAIJMatrixFillIn | ( | const std::string | problem_name, |
int | row_print, | ||
int | col_print, | ||
int | verb | ||
) |
MoFEMErrorCode MoFEM::MatrixManager::checkMPIAIJMatrixFillIn | ( | const std::string | problem_name, |
int | row_print, | ||
int | col_print, | ||
int | verb | ||
) |
Definition at line 1144 of file MatrixManager.cpp.
|
inline |
check if matrix fill in correspond to finite element indices
This is used to check consistency of code. If problem is notices with additional non-zero elements in matrix, this function can help detect problem. Should be used as a part of atom tests
Tag |
problem_name | |
row | print info at particular row |
col | print info at particular col |
Definition at line 286 of file MatrixManager.hpp.
MoFEMErrorCode MoFEM::MatrixManager::checkMPIAIJWithArraysMatrixFillIn | ( | const std::string | problem_name, |
int | row_print, | ||
int | col_print, | ||
int | verb | ||
) |
MoFEMErrorCode MoFEM::MatrixManager::checkMPIAIJWithArraysMatrixFillIn | ( | const std::string | problem_name, |
int | row_print, | ||
int | col_print, | ||
int | verb | ||
) |
Definition at line 1132 of file MatrixManager.cpp.
|
inline |
check if matrix fill in correspond to finite element indices
This is used to check consistency of code. If problem is notices with additional non-zero elements in matrix, this function can help detect problem. Should be used as a part of atom tests
Tag |
problem_name | |
row | print info at particular row |
col | print info at particular col |
Definition at line 265 of file MatrixManager.hpp.
MoFEMErrorCode MoFEM::MatrixManager::createMPIAdjWithArrays | ( | const std::string | name, |
Mat * | Adj, | ||
int | verb | ||
) |
MoFEMErrorCode MoFEM::MatrixManager::createMPIAdjWithArrays | ( | const std::string | name, |
Mat * | Adj, | ||
int | verb | ||
) |
Definition at line 812 of file MatrixManager.cpp.
|
inline |
Creates a sparse matrix representing an adjacency list.
The matrix does not have numerical values associated with it, but is intended for ordering (to reduce bandwidth etc) and partitioning.
Tag |
name | |
Adj | |
verb |
Definition at line 166 of file MatrixManager.hpp.
MoFEMErrorCode MoFEM::MatrixManager::createMPIAIJ | ( | const std::string | name, |
Mat * | Aij, | ||
int | verb | ||
) |
MoFEMErrorCode MoFEM::MatrixManager::createMPIAIJ | ( | const std::string | name, |
Mat * | Aij, | ||
int | verb | ||
) |
Definition at line 742 of file MatrixManager.cpp.
|
inline |
Creates a MPI AIJ matrix using arrays that contain in standard CSR format the local rows.
Tag |
name | |
Aij | |
verb |
Definition at line 123 of file MatrixManager.hpp.
|
inline |
Creates a MPI AIJ matrix using arrays that contain in standard CSR format the local rows.
Tag |
name | |
Aij | |
verb |
Definition at line 132 of file MatrixManager.hpp.
MoFEMErrorCode MoFEM::MatrixManager::createMPIAIJCUSPARSEWithArrays | ( | const std::string | name, |
Mat * | Aij, | ||
int | verb | ||
) |
MoFEMErrorCode MoFEM::MatrixManager::createMPIAIJCUSPARSEWithArrays | ( | const std::string | name, |
Mat * | Aij, | ||
int | verb | ||
) |
Definition at line 654 of file MatrixManager.cpp.
|
inline |
Definition at line 69 of file MatrixManager.hpp.
|
inline |
Definition at line 78 of file MatrixManager.hpp.
MoFEMErrorCode MoFEM::MatrixManager::createMPIAIJWithArrays | ( | const std::string | name, |
Mat * | Aij, | ||
int | verb | ||
) |
MoFEMErrorCode MoFEM::MatrixManager::createMPIAIJWithArrays | ( | const std::string | name, |
Mat * | Aij, | ||
int | verb | ||
) |
Definition at line 616 of file MatrixManager.cpp.
|
inline |
Creates a MPI AIJ matrix using arrays that contain in standard CSR format the local rows.
Tag |
name | |
Aij | |
verb |
Definition at line 49 of file MatrixManager.hpp.
|
inline |
Creates a MPI AIJ matrix using arrays that contain in standard CSR format the local rows.
Tag |
name | |
Aij | |
verb |
Definition at line 58 of file MatrixManager.hpp.
MoFEMErrorCode MoFEM::MatrixManager::createSeqAIJCUSPARSEWithArrays | ( | const std::string | name, |
Mat * | Aij, | ||
int | verb | ||
) |
MoFEMErrorCode MoFEM::MatrixManager::createSeqAIJCUSPARSEWithArrays | ( | const std::string | name, |
Mat * | Aij, | ||
int | verb | ||
) |
Definition at line 726 of file MatrixManager.cpp.
|
inline |
Definition at line 89 of file MatrixManager.hpp.
|
inline |
Definition at line 98 of file MatrixManager.hpp.
MoFEMErrorCode MoFEM::MatrixManager::createSeqAIJWithArrays | ( | const std::string | name, |
Mat * | Aij, | ||
int | verb | ||
) |
MoFEMErrorCode MoFEM::MatrixManager::createSeqAIJWithArrays | ( | const std::string | name, |
Mat * | Aij, | ||
int | verb | ||
) |
Definition at line 849 of file MatrixManager.cpp.
|
inline |
Create sequencial matrix.
Creates a sparse matrix in AIJ (compressed row) format (the default parallel PETSc format). For good matrix assembly performance the user should preallocate the matrix storage by setting the parameter nz (or the array nnz). By setting these parameters accurately, performance during matrix assembly can be increased by more than a factor of 50.
Tag |
name | |
Aij | |
i | |
j | |
v | |
verb |
Definition at line 195 of file MatrixManager.hpp.
|
inline |
Create sequencial matrix.
Creates a sparse matrix in AIJ (compressed row) format (the default parallel PETSc format). For good matrix assembly performance the user should preallocate the matrix storage by setting the parameter nz (or the array nnz). By setting these parameters accurately, performance during matrix assembly can be increased by more than a factor of 50.
Tag |
name | |
Aij | (SmartPetscObj) |
i | |
j | |
v | |
verb |
Definition at line 224 of file MatrixManager.hpp.
|
virtual |
Implements MoFEM::UnknownInterface.
Definition at line 591 of file MatrixManager.cpp.
MoFEM::Core& MoFEM::MatrixManager::cOre |
Definition at line 26 of file MatrixManager.hpp.
|
private |
Definition at line 300 of file MatrixManager.hpp.
|
private |
Definition at line 296 of file MatrixManager.hpp.
|
private |
Definition at line 294 of file MatrixManager.hpp.
|
private |
Definition at line 298 of file MatrixManager.hpp.
|
private |
Definition at line 295 of file MatrixManager.hpp.
|
private |
Definition at line 299 of file MatrixManager.hpp.
|
private |
Definition at line 297 of file MatrixManager.hpp.