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<class Tag > | |
MoFEMErrorCode | createHybridL2MPIAIJ (const std::string problem_name, SmartPetscObj< Mat > &aij_ptr, int verb=QUIET) |
Create a Hybrid MPIAij object. 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 | createHybridL2MPIAIJ (const std::string problem_name, SmartPetscObj< Mat > &aij_ptr, 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) |
template<> | |
MoFEMErrorCode | createHybridL2MPIAIJ (const std::string problem_name, SmartPetscObj< Mat > &aij_ptr, 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 reference 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 606 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 899 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 1153 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 1141 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::createHybridL2MPIAIJ | ( | const std::string | problem_name, |
SmartPetscObj< Mat > & | aij_ptr, | ||
int | verb | ||
) |
MoFEMErrorCode MoFEM::MatrixManager::createHybridL2MPIAIJ | ( | const std::string | problem_name, |
SmartPetscObj< Mat > & | aij_ptr, | ||
int | verb | ||
) |
Definition at line 1165 of file MatrixManager.cpp.
|
inline |
Create a Hybrid MPIAij object.
It assumes that L2 field is on skeleton, and dim+1 is bridge adjacency.
Tag |
problem_name | |
aij_ptr | |
verb |
Definition at line 305 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 821 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 751 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 662 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 624 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 734 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 858 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 600 of file MatrixManager.cpp.
MoFEM::Core& MoFEM::MatrixManager::cOre |
Definition at line 26 of file MatrixManager.hpp.
|
private |
Definition at line 319 of file MatrixManager.hpp.
|
private |
Definition at line 315 of file MatrixManager.hpp.
|
private |
Definition at line 313 of file MatrixManager.hpp.
|
private |
Definition at line 317 of file MatrixManager.hpp.
|
private |
Definition at line 314 of file MatrixManager.hpp.
|
private |
Definition at line 318 of file MatrixManager.hpp.
|
private |
Definition at line 316 of file MatrixManager.hpp.