ParMooN
 All Classes Functions Variables Friends Pages
NSE_MGLevel3.h
1 // =======================================================================
2 // @(#)NSE_MGLevel3.h 1.6 07/03/00
3 //
4 // Class: TNSE_MGLevel3
5 // Purpose: store all data for one level in a multi grid method
6 // for solving a Stokes-/ Navier-Stokes system of
7 // type 3 (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_MGLEVEL3__
16 #define __NSE_MGLEVEL3__
17 
18 #include <NSE_MGLevel.h>
19 
20 class TNSE_MGLevel3 : public TNSE_MGLevel
21 {
22  protected:
23 #ifdef __2D__
24 
26 
29 
32 
35 
38 
40  TMatrix2D *B1;
41 
43  TMatrix2D *B2;
44 
47 
50 #endif
51 
52 #ifdef __3D__
53 
55 
58 
61 
64 
67 
70 
73 
76 
79 
82 
84  TMatrix3D *B1;
85 
87  TMatrix3D *B2;
88 
90  TMatrix3D *B3;
91 
94 
97 #endif
98 
100  int *ARowPtr;
101 
103  int *AKCol;
104 
106  double *A11Entries;
107 
109  double *A12Entries;
110 
112  double *A21Entries;
113 
115  double *A22Entries;
116 
118  double *B1Entries;
119 
121  double *B2Entries;
122 
123 #ifdef __3D__
124 
125  double *A13Entries;
126 
128  double *A23Entries;
129 
131  double *A31Entries;
132 
134  double *A32Entries;
135 
137  double *A33Entries;
138 
140  double *B3Entries;
141 #endif
142 
144  int *BRowPtr;
145 
147  int *BKCol;
148 
150  int *BTRowPtr;
151 
153  int *BTKCol;
154 
155  public:
157 #ifdef __2D__
158  TNSE_MGLevel3(int level,
162  TStructure2D *structureBT,
163  double *f1, double *u1,
164  int n_aux, double *al, int VelocitySpace,
165  int PressureSpace, TCollection *coll,
166  int *dw);
167 #endif
168 #ifdef __3D__
169  TNSE_MGLevel3(int level,
177  TStructure3D *structureBT,
178  double *f1, double *u1,
179  int n_aux, double *al, int VelocitySpace,
180  int PressureSpace, TCollection *coll,
181  int *dw);
182 #endif
183 
185  ~TNSE_MGLevel3();
186 
187  virtual void Defect(double *u1, double *f1, double *d1, double &res);
188 
190  virtual void CorrectNodes(double *u1);
191 
193  virtual void CellVanka(double *u1, double *rhs1, double *aux,
194  int N_Parameters, double *Parameters, int smoother, int N_Levels);
195 
197  virtual void NodalVanka(double *u1, double *rhs1, double *aux,
198  int N_Parameters, double *Parameters, int smoother, int N_Levels);
199 
201  virtual void SolveExact(double *u1, double *rhs1);
202 
204  virtual void SolveExactUMFPACK(double *u1, double *rhs1, int &umfpack_flag);
205 
207  virtual void BraessSarazin(double *u1, double *rhs1, double *aux,
208  int N_Parameters, double *Parameters,int N_Levels);
209 
211  virtual double StepLengthControl(double *u1, double *u1old, double *def1,
212  int N_Parameters, double *Parameter);
213 
215  virtual void PrintAll();
216 
217 };
218 
219 #endif
virtual void Defect(double *u1, double *f1, double *d1, double &res)
Definition: NSE_MGLevel3.C:161
double * A23Entries
Definition: NSE3DMGLevel3.h:128
virtual void SolveExact(double *u1, double *rhs1)
Definition: NSE_MGLevel3.C:932
int * BKCol
Definition: NSE3DMGLevel3.h:147
virtual void BraessSarazin(double *u1, double *rhs1, double *aux, int N_Parameters, double *Parameters, int N_Levels)
Definition: NSE_MGLevel3.C:1108
virtual void CellVanka(double *u1, double *rhs1, double *aux, int N_Parameters, double *Parameters, int smoother, int N_Levels)
Definition: NSE_MGLevel3.C:233
TStructure2D * StructureB
Definition: NSE3DMGLevel3.h:46
int * ARowPtr
Definition: NSE3DMGLevel3.h:100
TNSE_MGLevel3(int level, TSquareMatrix2D *A11, TSquareMatrix2D *A12, TSquareMatrix2D *A21, TSquareMatrix2D *A22, TMatrix2D *B1, TMatrix2D *B2, TStructure2D *structureBT, double *f1, double *u1, int n_aux, double al, int VelocitySpace, int PressureSpace, TCollection *coll)
int * BTRowPtr
Definition: NSE3DMGLevel3.h:150
Definition: Structure3D.h:23
Definition: SquareMatrix2D.h:20
TStructure2D * StructureBT
Definition: NSE3DMGLevel3.h:49
Definition: Structure2D.h:23
Definition: SquareMatrix3D.h:20
TSquareMatrix2D * A12
Definition: NSE3DMGLevel3.h:28
virtual double StepLengthControl(double *u1, double *u1old, double *def1, int N_Parameters, double *Parameter)
Definition: NSE_MGLevel3.C:1055
Definition: NSE3DMGLevel3.h:20
TSquareMatrix3D * A13
Definition: NSE3DMGLevel3.h:60
int * BRowPtr
Definition: NSE3DMGLevel3.h:144
double * A22Entries
Definition: NSE3DMGLevel3.h:115
TSquareStructure2D * StructureA
Definition: NSE3DMGLevel3.h:37
TMatrix2D * B2
Definition: NSE3DMGLevel3.h:43
store cells in an array, used by cell iterators
Definition: Collection.h:18
int PressureSpace
Definition: NSE_MGLevel.h:71
TSquareMatrix2D * A21
Definition: NSE3DMGLevel3.h:31
TSquareMatrix3D * A31
Definition: NSE3DMGLevel3.h:72
virtual void CorrectNodes(double *u1)
Definition: NSE_MGLevel3.C:191
double * A13Entries
Definition: NSE3DMGLevel3.h:125
double * A32Entries
Definition: NSE3DMGLevel3.h:134
int * AKCol
Definition: NSE3DMGLevel3.h:103
TSquareMatrix3D * A23
Definition: NSE3DMGLevel3.h:69
Definition: Matrix3D.h:20
virtual void NodalVanka(double *u1, double *rhs1, double *aux, int N_Parameters, double *Parameters, int smoother, int N_Levels)
Definition: NSE_MGLevel3.C:595
Definition: Matrix2D.h:20
double * A21Entries
Definition: NSE3DMGLevel3.h:112
TMatrix3D * B3
Definition: NSE3DMGLevel3.h:90
virtual void PrintAll()
Definition: NSE_MGLevel3.C:1140
virtual void SolveExactUMFPACK(double *u1, double *rhs1, int &umfpack_flag)
Definition: NSE_MGLevel3.C:1046
int * BTKCol
Definition: NSE3DMGLevel3.h:153
double * A11Entries
Definition: NSE3DMGLevel3.h:106
TSquareMatrix3D * A32
Definition: NSE3DMGLevel3.h:75
double * A31Entries
Definition: NSE3DMGLevel3.h:131
double * A12Entries
Definition: NSE3DMGLevel3.h:109
~TNSE_MGLevel3()
Definition: NSE_MGLevel3.C:156
TSquareMatrix2D * A22
Definition: NSE3DMGLevel3.h:34
double * B3Entries
Definition: NSE3DMGLevel3.h:140
int VelocitySpace
Definition: NSE_MGLevel.h:68
TMatrix2D * B1
Definition: NSE3DMGLevel3.h:40
Definition: SquareStructure3D.h:20
TSquareMatrix2D * A11
Definition: NSE3DMGLevel3.h:25
Definition: NSE_MGLevel.h:24
double * A33Entries
Definition: NSE3DMGLevel3.h:137
Definition: SquareStructure2D.h:20
TSquareMatrix3D * A33
Definition: NSE3DMGLevel3.h:78
double * B1Entries
Definition: NSE3DMGLevel3.h:118
double * B2Entries
Definition: NSE3DMGLevel3.h:121