9#ifndef __MATMANAGER_HPP__
10#define __MATMANAGER_HPP__
51 static_assert(!std::is_same<Tag, Tag>::value,
"not implemented");
63 CHKERR createMPIAIJWithArrays<Tag>(name, &aij, verb);
64 aij_ptr.reset(aij,
false);
70 Mat *Aij,
int verb =
QUIET) {
71 static_assert(!std::is_same<Tag, Tag>::value,
"not implemented");
83 CHKERR createMPIAIJCUSPARSEWithArrays<Tag>(name, &aij, verb);
84 aij_ptr.reset(aij,
false);
90 Mat *Aij,
int verb =
QUIET) {
91 static_assert(!std::is_same<Tag, Tag>::value,
"not implemented");
103 CHKERR createSeqAIJCUSPARSEWithArrays<Tag>(name, &aij, verb);
104 aij_ptr.reset(aij,
false);
125 static_assert(!std::is_same<Tag, Tag>::value,
"not implemented");
137 CHKERR createMPIAIJ<Tag>(name, &aij, verb);
138 aij_ptr.reset(aij,
false);
168 static_assert(!std::is_same<Tag, Tag>::value,
"not implemented");
197 static_assert(!std::is_same<Tag, Tag>::value,
"not implemented");
229 CHKERR createSeqAIJWithArrays<Tag>(name, &aij, verb);
230 aij_ptr.reset(aij,
false);
247 int row_print,
int col_print, Mat
A,
266 int row_print,
int col_print,
268 static_assert(!std::is_same<Tag, Tag>::value,
"not implemented");
287 int row_print,
int col_print,
289 static_assert(!std::is_same<Tag, Tag>::value,
"not implemented");
305 const std::string name, Mat *Aij,
int verb);
309MatrixManager::createMPIAIJCUSPARSEWithArrays<PetscGlobalIdx_mi_tag>(
310 const std::string name, Mat *Aij,
int verb);
314MatrixManager::createMPIAIJ<PetscGlobalIdx_mi_tag>(
const std::string name,
319MatrixManager::createMPIAdjWithArrays<Idx_mi_tag>(
const std::string name,
324 const std::string name, Mat *Aij,
int verb);
328MatrixManager::createSeqAIJCUSPARSEWithArrays<PetscLocalIdx_mi_tag>(
329 const std::string name, Mat *Aij,
int verb);
333MatrixManager::checkMPIAIJWithArraysMatrixFillIn<PetscGlobalIdx_mi_tag>(
334 const std::string problem_name,
int row_print,
int col_print,
int verb);
338 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
PetscLogEvent MOFEM_EVENT_createSeqAIJCUSPARSEWithArrays
MoFEMErrorCode createMPIAIJCUSPARSEWithArrays(const std::string name, Mat *Aij, int verb=QUIET)
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.
MoFEMErrorCode createSeqAIJCUSPARSEWithArrays(const std::string name, Mat *Aij, int verb=QUIET)
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.
MoFEMErrorCode createSeqAIJCUSPARSEWithArrays(const std::string name, SmartPetscObj< Mat > &aij_ptr, int verb=QUIET)
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.
PetscLogEvent MOFEM_EVENT_createMPIAIJCUSPARSEWithArrays
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
MoFEMErrorCode createMPIAIJCUSPARSEWithArrays(const std::string name, SmartPetscObj< Mat > &aij_ptr, int verb=QUIET)
intrusive_ptr for managing petsc objects
base class for all interface classes