ParMooN
 All Classes Functions Variables Friends Pages
ItMethod.h
1 // =======================================================================
2 // @(#)ItMethod.h 1.6 10/18/99
3 //
4 // Class: TItMethod
5 // Purpose: defines an iteration method
6 //
7 // Author: Volker John
8 //
9 // History: start of implementation 24.10.2000
10 //
11 // =======================================================================
12 
13 #ifndef __ITMETHOD__
14 #define __ITMETHOD__
15 
16 #include <Constants.h>
17 
19 class TItMethod
20 {
21  protected:
23  MatVecProc *matvec;
24 
26  DefectProc *matvecdefect;
27 
30 
32  int N_DOF;
33 
35  int system_id;
36 
39 
41  double res_norm_min;
42 
44  double red_factor;
45 
47  double div_factor;
48 
50  int maxit;
51 
53  int minit;
54 
56  int restart;
57 
59  double *defect;
60 
62  double **AuxArray;
63 
65  int N_Aux;
66 
67  public:
69  TItMethod(MatVecProc *MatVec, DefectProc *Defect, TItMethod *Prec,
70  int n_aux, int N_Unknowns);
71 
73  virtual ~TItMethod();
74 
79  virtual int Iterate(TSquareMatrix **A, TMatrix **B, double *sol,
80  double *rhs) = 0;
81 
83  int GetSystemId() const
84  { return system_id; };
85 
87  int GetPrecMaxit() const
88  { return prec_maxit; };
89 
91  void SetPrecMaxit(int Prec_Maxit)
92  { prec_maxit = Prec_Maxit; }
93 
95  double GetResNormMin() const
96  { return res_norm_min; };
97 
99  void SetResNormMin(double Res_Norm_Min)
100  { res_norm_min = Res_Norm_Min; }
101 
103  double GetRedFactor() const
104  { return red_factor; };
105 
107  void SetRedFactor(double Red_Factor)
108  { red_factor = Red_Factor; }
109 
111  double GetDivFactor() const
112  { return div_factor; };
113 
115  void SetDivFactor(double Div_Factor)
116  { div_factor = Div_Factor; }
117 
119  int GetMaxit() const
120  { return maxit; };
121 
123  void SetMaxit(int Maxit)
124  { maxit = Maxit; }
125 
127  int GetMinit() const
128  { return minit; };
129 
131  void SetMinit(int Minit)
132  { minit = Minit; }
133 
135  int GetRestart() const
136  { return restart; };
137 
139  void SetRestart(int Restart)
140  { restart = Restart; };
141 };
142 
143 #endif
DefectProc * matvecdefect
Definition: ItMethod.h:26
TItMethod(MatVecProc *MatVec, DefectProc *Defect, TItMethod *Prec, int n_aux, int N_Unknowns)
Definition: ItMethod.C:20
double ** AuxArray
Definition: ItMethod.h:62
Definition: Matrix.h:21
int GetMaxit() const
Definition: ItMethod.h:119
void SetMinit(int Minit)
Definition: ItMethod.h:131
TItMethod * prec
Definition: ItMethod.h:29
int GetMinit() const
Definition: ItMethod.h:127
void SetDivFactor(double Div_Factor)
Definition: ItMethod.h:115
void SetRestart(int Restart)
Definition: ItMethod.h:139
double GetRedFactor() const
Definition: ItMethod.h:103
int GetRestart() const
Definition: ItMethod.h:135
Definition: SquareMatrix.h:20
MatVecProc * matvec
Definition: ItMethod.h:23
double res_norm_min
Definition: ItMethod.h:41
double div_factor
Definition: ItMethod.h:47
int restart
Definition: ItMethod.h:56
double red_factor
Definition: ItMethod.h:44
int N_Aux
Definition: ItMethod.h:65
int system_id
Definition: ItMethod.h:35
int N_DOF
Definition: ItMethod.h:32
void SetPrecMaxit(int Prec_Maxit)
Definition: ItMethod.h:91
double GetResNormMin() const
Definition: ItMethod.h:95
virtual int Iterate(TSquareMatrix **A, TMatrix **B, double *sol, double *rhs)=0
int prec_maxit
Definition: ItMethod.h:38
void SetMaxit(int Maxit)
Definition: ItMethod.h:123
double GetDivFactor() const
Definition: ItMethod.h:111
double * defect
Definition: ItMethod.h:59
void SetResNormMin(double Res_Norm_Min)
Definition: ItMethod.h:99
int GetPrecMaxit() const
Definition: ItMethod.h:87
Definition: ItMethod.h:19
int minit
Definition: ItMethod.h:53
virtual ~TItMethod()
Definition: ItMethod.C:26
int maxit
Definition: ItMethod.h:50
int GetSystemId() const
Definition: ItMethod.h:83
void SetRedFactor(double Red_Factor)
Definition: ItMethod.h:107