G+Smo  24.08.0
Geometry + Simulation Modules
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SparseMatrix.h
Go to the documentation of this file.
1 
14 #pragma once
15 
17 #include <gsCore/gsLinearAlgebra.h>
19 
20 namespace gismo
21 {
22 
23 namespace trilinos
24 {
25 
26 class SparseMatrixPrivate;
27 
28 class GISMO_EXPORT SparseMatrix
29 {
30 public:
31 
32  SparseMatrix();
33 
34  explicit SparseMatrix(const gsSparseMatrix<real_t,RowMajor> & sp, const int rank = 0);
35 
36  ~SparseMatrix();
37 
38  std::pair<index_t,index_t> dim() const;
39 
40  std::pair<index_t,index_t> mydim() const;
41 
42  index_t cols() const;
43 
44  index_t mycols() const;
45 
46  index_t rows() const;
47 
48  index_t myrows() const;
49 
50  index_t nonzeros() const;
51 
52  index_t mynonzeros() const;
53 
54  void copyTo(gsSparseMatrix<real_t,RowMajor> & sp, const int rank = 0) const;
55 
56  Epetra_CrsMatrix * get() const;
57 
58  Teuchos::RCP<Epetra_CrsMatrix> getRCP() const;
59 
60  void print() const;
61 
62 private:
63  SparseMatrix(const SparseMatrix& other);
64  SparseMatrix& operator=(const SparseMatrix& other);
65 
66 private:
67 
68  SparseMatrixPrivate * my;
69 };
70 
71 
72 }//namespace trilinos
73 
74 }// namespace gismo
#define index_t
Definition: gsConfig.h:32
Provides forward declarations of types and structs.
This is the main header file that collects wrappers of Eigen for linear algebra.
Forward declarations for Trilinos extensions.