19 #ifndef __MATMANAGER_HPP__
20 #define __MATMANAGER_HPP__
61 static_assert(!std::is_same<Tag, Tag>::value,
"not implemented");
73 CHKERR createMPIAIJWithArrays<Tag>(name, &aij, verb);
74 aij_ptr.reset(aij,
false);
95 static_assert(!std::is_same<Tag, Tag>::value,
"not implemented");
107 CHKERR createMPIAIJ<Tag>(name, &aij, verb);
108 aij_ptr.reset(aij,
false);
138 static_assert(!std::is_same<Tag, Tag>::value,
"not implemented");
167 static_assert(!std::is_same<Tag, Tag>::value,
"not implemented");
199 CHKERR createSeqAIJWithArrays<Tag>(name, &aij, verb);
200 aij_ptr.reset(aij,
false);
217 int row_print,
int col_print, Mat
A,
236 int row_print,
int col_print,
238 static_assert(!std::is_same<Tag, Tag>::value,
"not implemented");
257 int row_print,
int col_print,
259 static_assert(!std::is_same<Tag, Tag>::value,
"not implemented");
273 const std::string name, Mat *Aij,
int verb);
277 MatrixManager::createMPIAIJ<PetscGlobalIdx_mi_tag>(
const std::string name,
282 MatrixManager::createMPIAdjWithArrays<Idx_mi_tag>(
const std::string name,
287 const std::string name, Mat *Aij,
int verb);
291 MatrixManager::checkMPIAIJWithArraysMatrixFillIn<PetscGlobalIdx_mi_tag>(
292 const std::string problem_name,
int row_print,
int col_print,
int verb);
296 const std::string problem_name,
int row_print,
int col_print,
int verb);
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define CHKERR
Inline error check.
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
implementation of Data Operators for Forces and Sources
Matrix manager is used to build and partition problems.
MoFEMErrorCode query_interface(boost::typeindex::type_index type_index, UnknownInterface **iface) const
MoFEMErrorCode createMPIAdjWithArrays(const std::string name, Mat *Adj, int verb=QUIET)
Creates a sparse matrix representing an adjacency list.
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.
PetscLogEvent MOFEM_EVENT_createMPIAdjWithArrays
virtual ~MatrixManager()=default
Destructor.
PetscLogEvent MOFEM_EVENT_checkMatrixFillIn
PetscLogEvent MOFEM_EVENT_createMPIAIJ
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.
PetscLogEvent MOFEM_EVENT_createMPIAIJWithArrays
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
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.
PetscLogEvent MOFEM_EVENT_createSeqAIJWithArrays
MoFEMErrorCode createSeqAIJWithArrays(const std::string name, Mat *Aij, int verb=QUIET)
Create sequencial matrix.
MatrixManager(const MoFEM::Core &core)
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
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.
MoFEMErrorCode createSeqAIJWithArrays(const std::string name, SmartPetscObj< Mat > &aij_ptr, int verb=QUIET)
Create sequencial matrix.
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
base class for all interface classes