Ice Sheet System Model  4.18
Code documentation
PetscMat.h
Go to the documentation of this file.
1 
7 #ifndef _PETSCMAT_H_
8 #define _PETSCMAT_H_
9 
10 /*Headers:*/
11 /*{{{*/
12 #ifdef HAVE_CONFIG_H
13  #include <config.h>
14 #else
15 #error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
16 #endif
17 
18 #include "../petscincludes.h"
19 #include "../../../shared/Numerics/types.h"
20 
21 /*}}}*/
22 class PetscVec;
23 
24 class PetscMat{
25 
26  public:
27  Mat matrix;
28 
29  #ifdef _HAVE_AD_
30  IssmDouble* amatrix;
31  #endif
32 
33  /*PetscMat constructors, destructors*/
34  PetscMat();
35  PetscMat(int M,int N);
36  PetscMat(int M,int N,IssmDouble sparsity);
37  PetscMat(int m,int n,int M,int N,int* d_nnz,int* o_nnz);
38  PetscMat(IssmDouble* serial_mat,int M,int N,IssmDouble sparsity);
39  PetscMat(int M,int N,int connectivity,int numberofdofspernode);
40  ~PetscMat();
41 
42  /*PetscMat specific routines*/
43  void AllocationInfo(void);
44  void Echo(void);
45  void Assemble(void);
46  IssmDouble Norm(NormMode norm_type);
47  void GetSize(int* pM,int* pN);
48  void GetLocalSize(int* pM,int* pN);
49  void MatMult(PetscVec* X,PetscVec* AX);
50  PetscMat* Duplicate(void);
51  IssmDouble* ToSerial(void);
52  void SetValues(int m,int* idxm,int n,int* idxn,IssmDouble* values,InsMode mode);
53  void Convert(MatrixType type);
54  void SetZero(void);
55 };
56 
57 #endif //#ifndef _PETSCMAT_H_
PetscMat::~PetscMat
~PetscMat()
Definition: PetscMat.cpp:99
IssmDouble
double IssmDouble
Definition: types.h:37
PetscMat::AllocationInfo
void AllocationInfo(void)
Definition: PetscMat.cpp:105
PetscMat::SetZero
void SetZero(void)
Definition: PetscMat.cpp:195
PetscMat::GetLocalSize
void GetLocalSize(int *pM, int *pN)
Definition: PetscMat.cpp:148
PetscMat::MatMult
void MatMult(PetscVec *X, PetscVec *AX)
Definition: PetscMat.cpp:155
PetscMat::ToSerial
IssmDouble * ToSerial(void)
Definition: PetscMat.cpp:173
MatrixType
MatrixType
Definition: toolkitsenums.h:16
PetscMat::Norm
IssmDouble Norm(NormMode norm_type)
Definition: PetscMat.cpp:132
PetscMat::SetValues
void SetValues(int m, int *idxm, int n, int *idxn, IssmDouble *values, InsMode mode)
Definition: PetscMat.cpp:182
NormMode
NormMode
Definition: toolkitsenums.h:15
PetscVec
Definition: PetscVec.h:22
PetscMat::GetSize
void GetSize(int *pM, int *pN)
Definition: PetscMat.cpp:142
InsMode
InsMode
Definition: toolkitsenums.h:14
PetscMat::Assemble
void Assemble(void)
Definition: PetscMat.cpp:124
PetscMat::Echo
void Echo(void)
Definition: PetscMat.cpp:119
PetscMat::matrix
Mat matrix
Definition: PetscMat.h:27
PetscMat::Convert
void Convert(MatrixType type)
Definition: PetscMat.cpp:189
PetscMat
Definition: PetscMat.h:24
PetscMat::PetscMat
PetscMat()
Definition: PetscMat.cpp:21
PetscMat::Duplicate
PetscMat * Duplicate(void)
Definition: PetscMat.cpp:163