Ice Sheet System Model  4.18
Code documentation
IssmAbsMat.h
Go to the documentation of this file.
1 
10 #ifndef _ISSM_ABS_MAT_H_
11 #define _ISSM_ABS_MAT_H_
12 
13 /*Headers:*/
14 #include "../toolkitsenums.h"
15 #include "../../shared/Numerics/types.h"
16 
17 /*We need to template this class, in case we want to create Matrices that hold
18  IssmDouble* matrix or IssmPDouble* matrix.
19  Such vectors are useful for use without or with the matlab or python
20  interface (which do not care for IssmDouble types, but only rely on
21  IssmPDouble types) */
22 
23 template <class doubletype> class IssmAbsVec;
24 class Parameters;
25 
26 template <class doubletype>
27 class IssmAbsMat{
28 
29  public:
30 
31  /*IssmAbsMat constructors, destructors*/
32  virtual ~IssmAbsMat(){};
33 
34  /*Functionality: */
35  virtual void Echo(void)=0;
36  virtual void Assemble(void)=0;
37  virtual doubletype Norm(NormMode mode)=0;
38  virtual void GetSize(int* pM,int* pN)=0;
39  virtual void GetLocalSize(int* pM,int* pN)=0;
42  virtual doubletype* ToSerial(void)=0;
43  virtual void SetValues(int m,int* idxm,int n,int* idxn,doubletype* values,InsMode mode)=0;
44  virtual void Convert(MatrixType type)=0;
45  virtual void SetZero(void)=0;
46  #ifndef _HAVE_WRAPPERS_
48  #endif
49 };
50 
51 #endif //#ifndef _ISSM_ABS_MAT_H_
IssmAbsMat::GetLocalSize
virtual void GetLocalSize(int *pM, int *pN)=0
Parameters
Declaration of Parameters class.
Definition: Parameters.h:18
IssmAbsMat::GetSize
virtual void GetSize(int *pM, int *pN)=0
IssmAbsMat::MatMult
virtual void MatMult(IssmAbsVec< doubletype > *X, IssmAbsVec< doubletype > *AX)=0
IssmAbsMat::Solve
virtual IssmAbsVec< IssmDouble > * Solve(IssmAbsVec< IssmDouble > *pf, Parameters *parameters)=0
IssmAbsMat
Definition: IssmAbsMat.h:27
MatrixType
MatrixType
Definition: toolkitsenums.h:16
IssmAbsMat::Convert
virtual void Convert(MatrixType type)=0
IssmAbsMat::Duplicate
virtual IssmAbsMat< doubletype > * Duplicate(void)=0
IssmAbsMat::Norm
virtual doubletype Norm(NormMode mode)=0
IssmAbsMat::Echo
virtual void Echo(void)=0
IssmAbsVec
Definition: IssmAbsVec.h:24
IssmAbsMat::SetZero
virtual void SetZero(void)=0
NormMode
NormMode
Definition: toolkitsenums.h:15
IssmAbsMat::SetValues
virtual void SetValues(int m, int *idxm, int n, int *idxn, doubletype *values, InsMode mode)=0
IssmAbsMat::~IssmAbsMat
virtual ~IssmAbsMat()
Definition: IssmAbsMat.h:32
IssmAbsMat::ToSerial
virtual doubletype * ToSerial(void)=0
InsMode
InsMode
Definition: toolkitsenums.h:14
IssmAbsMat::Assemble
virtual void Assemble(void)=0