ParMooN
 All Classes Functions Variables Friends Pages
NSE_MGLevel4.h
1 // =======================================================================
2 // @(#)NSE_MGLevel4.h 1.6 07/03/00
3 //
4 // Class: TNSE_MGLevel4
5 // Purpose: store all data for one level in a multi grid method
6 // for solving a Stokes-/ Navier-Stokes system of
7 // type 4 (all Aij, B1, B2, B3)
8 //
9 // Author: Volker John 25.07.2000
10 //
11 // History: 25.07.2000start of implementation
12 //
13 // =======================================================================
14 
15 #ifndef __NSE_MGLEVEL4__
16 #define __NSE_MGLEVEL4__
17 
18 #include <NSE_MGLevel.h>
19 
21 {
22  protected:
23 #ifdef __2D__
24 
26 
29 
32 
35 
38 
41 
44 
47 
50 
53 
56 
59 
62 #endif
63 
64 #ifdef __3D__
65 
67 
70 
73 
76 
79 
82 
85 
88 
91 
94 
97 
100 
103 
106 
109 
112 
115 
118 
121 
124 #endif
125 
127  int *ARowPtr;
128 
130  int *AKCol;
131 
133  double *A11Entries;
134 
136  double *A12Entries;
137 
139  double *A21Entries;
140 
142  double *A22Entries;
143 
145  double *B1Entries;
146 
148  double *B2Entries;
149 
151  double *B1TEntries;
152 
154  double *B2TEntries;
155 #ifdef __3D__
156 
157  double *A13Entries;
158 
160  double *A23Entries;
161 
163  double *A31Entries;
164 
166  double *A32Entries;
167 
169  double *A33Entries;
170 
172  double *B3Entries;
173 
175  double *B3TEntries;
176 
177 #endif
178 
180  int *BRowPtr;
181 
183  int *BKCol;
184 
186  int *BTRowPtr;
187 
189  int *BTKCol;
190 
192  int *CRowPtr;
193 
195  int *CKCol;
196 
198  double *CEntries;
199 
200  public:
202 #ifdef __2D__
203  TNSE_MGLevel4(int level,
208  double *f1, double *u1,
209  int n_aux, double *al, int VelocitySpace,
210  int PressureSpace, TCollection *coll, int *dw);
211 
212  TNSE_MGLevel4(int level,
213  TSquareMatrix2D *a11, TSquareMatrix2D *a12,
214  TSquareMatrix2D *a21, TSquareMatrix2D *a22,
215  TMatrix2D *b1, TMatrix2D *b2,
216  TMatrix2D *b1t, TMatrix2D *b2t,
217  TMatrix2D *c,
218  double *f1, double *u1,
219  int n_aux, double *al, int velocity_space,
220  int pressure_space, TCollection *Coll,
221  int *dw);
222 #endif
223 #ifdef __3D__
224  TNSE_MGLevel4(int level,
233  double *f1, double *u1,
234  int n_aux, double *al, int VelocitySpace,
235  int PressureSpace, TCollection *coll, int *dw);
236 
237 TNSE_MGLevel4(int level,
238  TSquareMatrix3D *a11, TSquareMatrix3D *a12,
239  TSquareMatrix3D *a13, TSquareMatrix3D *a21,
240  TSquareMatrix3D *a22, TSquareMatrix3D *a23,
241  TSquareMatrix3D *a31, TSquareMatrix3D *a32,
242  TSquareMatrix3D *a33,
243  TMatrix3D *b1, TMatrix3D *b2, TMatrix3D *b3,
244  TMatrix3D *b1t, TMatrix3D *b2t, TMatrix3D *b3t,
245  TMatrix3D *c,
246  double *f1, double *u1,
247  int n_aux, double *al, int velocity_space,
248  int pressure_space, TCollection *Coll,
249  int *dw);
250 
251 #endif
252 
254  ~TNSE_MGLevel4();
255 
256  virtual void Defect(double *u1, double *f1, double *d1, double &res);
257 
259  virtual void CorrectNodes(double *u1);
260 
262  virtual void CellVanka(double *u1, double *rhs1, double *aux,
263  int N_Parameters, double *Parameters, int smoother, int N_Levels);
264 
266  virtual void NodalVanka(double *u1, double *rhs1, double *aux,
267  int N_Parameters, double *Parameters, int smoother, int N_Levels);
268 
270  virtual void SolveExact(double *u1, double *rhs1);
271 
273  virtual void SolveExactUMFPACK(double *u1, double *rhs1, int &umfpack_flag);
274 
276  virtual void BraessSarazin(double *u1, double *rhs1, double *aux,
277  int N_Parameters, double *Parameters,int N_Levels);
278 
280  virtual double StepLengthControl(double *u1, double *u1old, double *def1,
281  int N_Parameters, double *Parameter);
282 
284  virtual void PrintAll();
285 
286 };
287 
288 #endif
289 
double * A23Entries
Definition: NSE_MGLevel4.h:160
TSquareMatrix3D * A22
Definition: NSE_MGLevel4.h:78
virtual void NodalVanka(double *u1, double *rhs1, double *aux, int N_Parameters, double *Parameters, int smoother, int N_Levels)
Definition: NSE_MGLevel4.C:786
TMatrix2D * B1
Definition: NSE_MGLevel4.h:40
double * A22Entries
Definition: NSE_MGLevel4.h:142
virtual void CellVanka(double *u1, double *rhs1, double *aux, int N_Parameters, double *Parameters, int smoother, int N_Levels)
Definition: NSE_MGLevel4.C:387
double * A31Entries
Definition: NSE_MGLevel4.h:163
double * B1Entries
Definition: NSE_MGLevel4.h:145
TMatrix3D * B3
Definition: NSE_MGLevel4.h:102
int * BKCol
Definition: NSE_MGLevel4.h:183
Definition: Structure3D.h:23
TStructure2D * StructureC
Definition: NSE_MGLevel4.h:58
Definition: SquareMatrix2D.h:20
Definition: Structure2D.h:23
TSquareMatrix2D * A12
Definition: NSE_MGLevel4.h:28
Definition: SquareMatrix3D.h:20
TNSE_MGLevel4(int level, TSquareMatrix2D *A11, TSquareMatrix2D *A12, TSquareMatrix2D *A21, TSquareMatrix2D *A22, TMatrix2D *B1, TMatrix2D *B2, TMatrix2D *B1T, TMatrix2D *B2T, double *f1, double *u1, int n_aux, double *al, int VelocitySpace, int PressureSpace, TCollection *coll, int *dw)
Definition: NSE_MGLevel4.C:45
TMatrix3D * B2
Definition: NSE_MGLevel4.h:99
int * BRowPtr
Definition: NSE_MGLevel4.h:180
double * A33Entries
Definition: NSE_MGLevel4.h:169
TMatrix2D * C
Definition: NSE_MGLevel4.h:61
TSquareMatrix2D * A21
Definition: NSE_MGLevel4.h:31
TStructure3D * StructureB
Definition: NSE_MGLevel4.h:114
TMatrix3D * B3T
Definition: NSE_MGLevel4.h:111
TSquareMatrix3D * A21
Definition: NSE_MGLevel4.h:75
TSquareStructure3D * StructureA
Definition: NSE_MGLevel4.h:93
TSquareMatrix2D * A22
Definition: NSE_MGLevel4.h:34
TSquareMatrix3D * A12
Definition: NSE_MGLevel4.h:69
virtual void Defect(double *u1, double *f1, double *d1, double &res)
Definition: NSE_MGLevel4.C:306
virtual void SolveExact(double *u1, double *rhs1)
Definition: NSE_MGLevel4.C:1123
double * B2TEntries
Definition: NSE_MGLevel4.h:154
store cells in an array, used by cell iterators
Definition: Collection.h:18
int PressureSpace
Definition: NSE_MGLevel.h:71
Definition: NSE_MGLevel4.h:20
TMatrix2D * B2
Definition: NSE_MGLevel4.h:43
TSquareStructure2D * StructureA
Definition: NSE_MGLevel4.h:37
double * B2Entries
Definition: NSE_MGLevel4.h:148
int * CRowPtr
Definition: NSE_MGLevel4.h:192
TSquareMatrix3D * A33
Definition: NSE_MGLevel4.h:90
virtual void PrintAll()
Definition: NSE_MGLevel4.C:1374
double * A32Entries
Definition: NSE_MGLevel4.h:166
int * BTKCol
Definition: NSE_MGLevel4.h:189
int * CKCol
Definition: NSE_MGLevel4.h:195
TSquareMatrix3D * A31
Definition: NSE_MGLevel4.h:84
TSquareMatrix2D * A11
Definition: NSE_MGLevel4.h:25
double * A21Entries
Definition: NSE_MGLevel4.h:139
Definition: Matrix3D.h:20
Definition: Matrix2D.h:20
double * CEntries
Definition: NSE_MGLevel4.h:198
TSquareMatrix3D * A11
Definition: NSE_MGLevel4.h:66
virtual double StepLengthControl(double *u1, double *u1old, double *def1, int N_Parameters, double *Parameter)
Definition: NSE_MGLevel4.C:1275
double * B3TEntries
Definition: NSE_MGLevel4.h:175
TMatrix2D * B1T
Definition: NSE_MGLevel4.h:46
int * ARowPtr
Definition: NSE_MGLevel4.h:127
TStructure3D * StructureC
Definition: NSE_MGLevel4.h:120
virtual void SolveExactUMFPACK(double *u1, double *rhs1, int &umfpack_flag)
Definition: NSE_MGLevel4.C:1245
virtual void CorrectNodes(double *u1)
Definition: NSE_MGLevel4.C:342
~TNSE_MGLevel4()
Definition: NSE_MGLevel4.C:301
TStructure2D * StructureBT
Definition: NSE_MGLevel4.h:55
int VelocitySpace
Definition: NSE_MGLevel.h:68
virtual void BraessSarazin(double *u1, double *rhs1, double *aux, int N_Parameters, double *Parameters, int N_Levels)
Definition: NSE_MGLevel4.C:1336
TMatrix2D * B2T
Definition: NSE_MGLevel4.h:49
Definition: SquareStructure3D.h:20
double * B3Entries
Definition: NSE_MGLevel4.h:172
double * B1TEntries
Definition: NSE_MGLevel4.h:151
double * A13Entries
Definition: NSE_MGLevel4.h:157
double * A11Entries
Definition: NSE_MGLevel4.h:133
TStructure3D * StructureBT
Definition: NSE_MGLevel4.h:117
int * AKCol
Definition: NSE_MGLevel4.h:130
Definition: NSE_MGLevel.h:24
TSquareMatrix3D * A23
Definition: NSE_MGLevel4.h:81
Definition: SquareStructure2D.h:20
TSquareMatrix3D * A13
Definition: NSE_MGLevel4.h:72
double * A12Entries
Definition: NSE_MGLevel4.h:136
TMatrix3D * C
Definition: NSE_MGLevel4.h:123
int * BTRowPtr
Definition: NSE_MGLevel4.h:186
TStructure2D * StructureB
Definition: NSE_MGLevel4.h:52
TMatrix3D * B2T
Definition: NSE_MGLevel4.h:108
TMatrix3D * B1T
Definition: NSE_MGLevel4.h:105
TMatrix3D * B1
Definition: NSE_MGLevel4.h:96
TSquareMatrix3D * A32
Definition: NSE_MGLevel4.h:87