9#ifndef __MATMANAGER_HPP__
10#define __MATMANAGER_HPP__
51 static_assert(!std::is_same<Tag, Tag>::value,
"not implemented");
64 aij_ptr.reset(aij,
false);
70 Mat *Aij,
int verb =
QUIET) {
71 static_assert(!std::is_same<Tag, Tag>::value,
"not implemented");
84 aij_ptr.reset(aij,
false);
90 Mat *Aij,
int verb =
QUIET) {
91 static_assert(!std::is_same<Tag, Tag>::value,
"not implemented");
104 aij_ptr.reset(aij,
false);
125 static_assert(!std::is_same<Tag, Tag>::value,
"not implemented");
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");
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");
308 static_assert(!std::is_same<Tag, Tag>::value,
"not implemented");
324 const std::string name, Mat *Aij,
int verb);
329 const std::string name, Mat *Aij,
int verb);
343 const std::string name, Mat *Aij,
int verb);
348 const std::string name, Mat *Aij,
int verb);
353 const std::string problem_name,
int row_print,
int col_print,
int verb);
357 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 createHybridL2MPIAIJ(const std::string problem_name, SmartPetscObj< Mat > &aij_ptr, int verb=QUIET)
Create a Hybrid MPIAij object.
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.
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