ParMooN
 All Classes Functions Variables Friends Pages
NSE_MGLevel2.h
1 // =======================================================================
2 // @(#)NSE_MGLevel2.h 1.6 07/03/00
3 //
4 // Class: TNSE_MGLevel2
5 // Purpose: store all data for one level in a multi grid method
6 // for solving a Stokes-/ Navier-Stokes system of
7 // type 2 (A, B1, B2, B3, B1T, B2T, B3T)
8 //
9 // Author: Volker John 25.07.2000
10 //
11 // History: 25.07.2000 start of implementation
12 //
13 // =======================================================================
14 
15 #ifndef __NSE_MGLEVEL2__
16 #define __NSE_MGLEVEL2__
17 
18 #include <NSE_MGLevel.h>
19 
21 {
22  protected:
23 #ifdef __2D__
24 
26 
29 
32 
35 
38 
41 
44 
47 
50 
53 #endif
54 
55 #ifdef __3D__
56 
58 
61 
64 
67 
70 
73 
76 
79 
82 
85 
88 
91 #endif
92 
94  int *ARowPtr;
95 
97  int *AKCol;
98 
100  double *AEntries;
101 
103  int *BRowPtr;
104 
106  int *BKCol;
107 
109  double *B1Entries;
110 
112  double *B2Entries;
113 
114 #ifdef __3D__
115 
116  double *B3Entries;
117 #endif
118 
120  int *BTRowPtr;
121 
123  int *BTKCol;
124 
126  double *B1TEntries;
127 
129  double *B2TEntries;
130 
131 #ifdef __3D__
132 
133  double *B3TEntries;
134 #endif
135 
137  int *CRowPtr;
138 
140  int *CKCol;
141 
143  double *CEntries;
144 
145  public:
147 #ifdef __2D__
148  TNSE_MGLevel2(int level, TSquareMatrix2D *A,
151  double *f1, double *u1,
152  int n_aux, double *al, int VelocitySpace,
153  int PressureSpace, TCollection *coll,
154  int *dw);
155 
157  TNSE_MGLevel2(int level, TSquareMatrix2D *A,
160  TMatrix2D *C,
161  double *f1, double *u1,
162  int n_aux, double *al, int VelocitySpace,
163  int PressureSpace, TCollection *coll,
164  int *dw);
165 #endif
166 
167 #ifdef __3D__
168  TNSE_MGLevel2(int level, TSquareMatrix3D *A,
171  double *f1, double *u1,
172  int n_aux, double *al, int VelocitySpace,
173  int PressureSpace, TCollection *coll,
174  int *dw);
175 
177  TNSE_MGLevel2(int level, TSquareMatrix3D *A,
180  TMatrix3D *C,
181  double *f1, double *u1,
182  int n_aux, double *al, int VelocitySpace,
183  int PressureSpace, TCollection *coll,
184  int *dw);
185 #endif
186 
188  ~TNSE_MGLevel2();
189 
191  virtual void Defect(double *u1, double *f1, double *d1, double &res);
192 
194  virtual void CorrectNodes(double *u1);
195 
197  virtual void CellVanka(double *u1, double *rhs1, double *aux,
198  int N_Parameters, double *Parameters, int smoother, int N_Levels);
199 
201  virtual void NodalVanka(double *u1, double *rhs1, double *aux,
202  int N_Parameters, double *Parameters, int smoother, int N_Levels);
203 
205  virtual void SolveExact(double *u1, double *rhs1);
206 
208  virtual void SolveExactUMFPACK(double *u1, double *rhs1, int &umfpack_flag);
209 
211  virtual void BraessSarazin(double *u1, double *rhs1, double *aux,
212  int N_Parameters, double *Parameters,int N_Levels);
213 
215  virtual double StepLengthControl(double *u1, double *u1old, double *def1,
216  int N_Parameters, double *Parameter);
217 
219  virtual void PrintAll();
220 
221 };
222 
223 #endif
TMatrix3D * B1
Definition: NSE_MGLevel2.h:66
int * BTKCol
Definition: NSE_MGLevel2.h:123
TSquareStructure2D * StructureA
Definition: NSE_MGLevel2.h:28
double * CEntries
Definition: NSE_MGLevel2.h:143
TMatrix2D * B2T
Definition: NSE_MGLevel2.h:46
TMatrix3D * B2
Definition: NSE_MGLevel2.h:69
double * B2TEntries
Definition: NSE_MGLevel2.h:129
int * BRowPtr
Definition: NSE_MGLevel2.h:103
int * CRowPtr
Definition: NSE_MGLevel2.h:137
Definition: Structure3D.h:23
Definition: SquareMatrix2D.h:20
Definition: Structure2D.h:23
Definition: SquareMatrix3D.h:20
virtual double StepLengthControl(double *u1, double *u1old, double *def1, int N_Parameters, double *Parameter)
Definition: NSE_MGLevel2.C:1109
TMatrix2D * B2
Definition: NSE_MGLevel2.h:37
~TNSE_MGLevel2()
Definition: NSE_MGLevel2.C:254
virtual void PrintAll()
Definition: NSE_MGLevel2.C:1169
virtual void CellVanka(double *u1, double *rhs1, double *aux, int N_Parameters, double *Parameters, int smoother, int N_Levels)
Definition: NSE_MGLevel2.C:336
TMatrix3D * B3T
Definition: NSE_MGLevel2.h:84
TMatrix2D * C
Definition: NSE_MGLevel2.h:52
TStructure2D * StructureBT
Definition: NSE_MGLevel2.h:40
double * B1Entries
Definition: NSE_MGLevel2.h:109
double * AEntries
Definition: NSE_MGLevel2.h:100
TSquareStructure3D * StructureA
Definition: NSE_MGLevel2.h:60
TStructure2D * StructureC
Definition: NSE_MGLevel2.h:49
TSquareMatrix2D * A
Definition: NSE_MGLevel2.h:25
TMatrix2D * B1
Definition: NSE_MGLevel2.h:34
Definition: NSE_MGLevel2.h:20
store cells in an array, used by cell iterators
Definition: Collection.h:18
virtual void CorrectNodes(double *u1)
Definition: NSE_MGLevel2.C:295
int PressureSpace
Definition: NSE_MGLevel.h:71
virtual void NodalVanka(double *u1, double *rhs1, double *aux, int N_Parameters, double *Parameters, int smoother, int N_Levels)
Definition: NSE_MGLevel2.C:705
int * BKCol
Definition: NSE_MGLevel2.h:106
double * B2Entries
Definition: NSE_MGLevel2.h:112
TSquareMatrix3D * A
Definition: NSE_MGLevel2.h:57
TStructure3D * StructureBT
Definition: NSE_MGLevel2.h:75
double * B3TEntries
Definition: NSE_MGLevel2.h:133
int * AKCol
Definition: NSE_MGLevel2.h:97
Definition: Matrix3D.h:20
Definition: Matrix2D.h:20
TStructure3D * StructureC
Definition: NSE_MGLevel2.h:87
virtual void SolveExact(double *u1, double *rhs1)
Definition: NSE_MGLevel2.C:1003
double * B1TEntries
Definition: NSE_MGLevel2.h:126
TMatrix3D * B3
Definition: NSE_MGLevel2.h:72
TStructure2D * StructureB
Definition: NSE_MGLevel2.h:31
int * CKCol
Definition: NSE_MGLevel2.h:140
TNSE_MGLevel2(int level, TSquareMatrix2D *A, 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_MGLevel2.C:45
virtual void BraessSarazin(double *u1, double *rhs1, double *aux, int N_Parameters, double *Parameters, int N_Levels)
Definition: NSE_MGLevel2.C:1278
TMatrix3D * C
Definition: NSE_MGLevel2.h:90
TMatrix3D * B1T
Definition: NSE_MGLevel2.h:78
int VelocitySpace
Definition: NSE_MGLevel.h:68
double * B3Entries
Definition: NSE_MGLevel2.h:116
Definition: SquareStructure3D.h:20
TMatrix3D * B2T
Definition: NSE_MGLevel2.h:81
int * BTRowPtr
Definition: NSE_MGLevel2.h:120
virtual void Defect(double *u1, double *f1, double *d1, double &res)
Definition: NSE_MGLevel2.C:259
Definition: NSE_MGLevel.h:24
Definition: SquareStructure2D.h:20
virtual void SolveExactUMFPACK(double *u1, double *rhs1, int &umfpack_flag)
Definition: NSE_MGLevel2.C:1100
TStructure3D * StructureB
Definition: NSE_MGLevel2.h:63
int * ARowPtr
Definition: NSE_MGLevel2.h:94
TMatrix2D * B1T
Definition: NSE_MGLevel2.h:43