ParMooN
 All Classes Functions Variables Friends Pages
NSE3DMGLevel4.h
1 // =======================================================================
2 // @(#)NSE3DMGLevel4.h 1.6 07/03/00
3 //
4 // Class: TNSE3DMGLevel4
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, 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 __NSE3DMGLEVEL4__
16 #define __NSE3DMGLEVEL4__
17 
18 #include <NSE3DMGLevel.h>
19 
20 class TNSE3DMGLevel4 : public TNSE3DMGLevel
21 {
22  protected:
25 
28 
31 
34 
37 
40 
43 
46 
49 
52 
54  int *ARowPtr;
55 
57  int *AKCol;
58 
60  double *A11Entries;
61 
63  double *A12Entries;
64 
66  double *A13Entries;
67 
69  double *A21Entries;
70 
72  double *A22Entries;
73 
75  double *A23Entries;
76 
78  double *A31Entries;
79 
81  double *A32Entries;
82 
84  double *A33Entries;
85 
88 
91 
94 
97 
99  int *BRowPtr;
100 
102  int *BKCol;
103 
105  double *B1Entries;
106 
108  double *B2Entries;
109 
111  double *B3Entries;
112 
115 
118 
121 
124 
126  int *BTRowPtr;
127 
129  int *BTKCol;
130 
132  double *B1TEntries;
133 
135  double *B2TEntries;
136 
138  double *B3TEntries;
139 
140  public:
142  TNSE3DMGLevel4(int level,
151  double *f1, double *f2, double *f3, double *g,
152  double *u1, double *u2, double *u3, double *p,
153  int n_aux, double al, int VelocitySpace,
154  int PressureSpace, TCollection *coll);
155 
157  ~TNSE3DMGLevel4();
158 
160  virtual void Defect(double *u1, double *u2, double *u3, double *p,
161  double *f1, double *f2, double *f3, double *g,
162  double *d1, double *d2, double *d3, double *d4,
163  double &res);
164 
166  virtual void CorrectNodes(double *u1, double *u2, double *u3, double *p);
167 
169  virtual void CellVanka(double *u1, double *u2, double *u3, double *p,
170  double *rhs1, double *rhs2, double *rhs3, double *rhs4,
171  double *def1, double *def2, double *def3, double *def4,
172  double *aux, double *Counters,
173  int N_Parameters, double *Parameters, int smoother, int N_Levels);
174 
176  virtual void NodalVanka(double *u1, double *u2, double *u3, double *p,
177  double *rhs1, double *rhs2, double *rhs3, double *rhs4,
178  double *def1, double *def2, double *def3, double *def4,
179  double *aux, double *Counters,
180  int N_Parameters, double *Parameters, int smoother, int N_Levels);
181 
183  virtual void SolveExact(double *u1, double *u2, double *u3, double *p,
184  double *rhs1, double *rhs2, double *rhs3, double *rhs4,
185  double *aux, double *Counters,
186  int N_Parameters, double *Parameters);
187 
189  virtual void BraessSarazin(double *u1, double *u2, double *u3, double *p,
190  double *rhs1, double *rhs2, double *rhs3, double *rhs4,
191  double *aux, double *Counters,
192  int N_Parameters, double *Parameters,int N_Levels);
193 
195  virtual double StepLengthControl(double *u1, double *u2, double *u3, double *p,
196  double *u1old, double *u2old, double *u3old, double *pold,
197  double *def1, double *def2, double *def3, double *def4,
198  int N_Parameters, double *Parameter);
199 
201  virtual void PrintAll();
202 
203 };
204 
205 #endif
TSquareMatrix3D * A23
Definition: NSE3DMGLevel4.h:39
virtual void PrintAll()
double * A13Entries
Definition: NSE3DMGLevel4.h:66
double * A21Entries
Definition: NSE3DMGLevel4.h:69
Definition: Structure3D.h:23
Definition: SquareMatrix3D.h:20
TSquareMatrix3D * A32
Definition: NSE3DMGLevel4.h:45
TMatrix3D * B2
Definition: NSE3DMGLevel4.h:90
TNSE3DMGLevel4(int level, TSquareMatrix3D *A11, TSquareMatrix3D *A12, TSquareMatrix3D *A13, TSquareMatrix3D *A21, TSquareMatrix3D *A22, TSquareMatrix3D *A23, TSquareMatrix3D *A31, TSquareMatrix3D *A32, TSquareMatrix3D *A33, TMatrix3D *B1, TMatrix3D *B2, TMatrix3D *B3, TMatrix3D *B1T, TMatrix3D *B2T, TMatrix3D *B3T, double *f1, double *f2, double *f3, double *g, double *u1, double *u2, double *u3, double *p, int n_aux, double al, int VelocitySpace, int PressureSpace, TCollection *coll)
double * A22Entries
Definition: NSE3DMGLevel4.h:72
double * B3TEntries
Definition: NSE3DMGLevel4.h:138
double * B1Entries
Definition: NSE3DMGLevel4.h:105
TSquareMatrix3D * A22
Definition: NSE3DMGLevel4.h:36
int * BKCol
Definition: NSE3DMGLevel4.h:102
int * AKCol
Definition: NSE3DMGLevel4.h:57
double * B2TEntries
Definition: NSE3DMGLevel4.h:135
virtual void CorrectNodes(double *u1, double *u2, double *u3, double *p)
double * A12Entries
Definition: NSE3DMGLevel4.h:63
TMatrix3D * B1T
Definition: NSE3DMGLevel4.h:114
double * B3Entries
Definition: NSE3DMGLevel4.h:111
double * A33Entries
Definition: NSE3DMGLevel4.h:84
virtual void NodalVanka(double *u1, double *u2, double *u3, double *p, double *rhs1, double *rhs2, double *rhs3, double *rhs4, double *def1, double *def2, double *def3, double *def4, double *aux, double *Counters, int N_Parameters, double *Parameters, int smoother, int N_Levels)
store cells in an array, used by cell iterators
Definition: Collection.h:18
double * B2Entries
Definition: NSE3DMGLevel4.h:108
virtual void Defect(double *u1, double *u2, double *u3, double *p, double *f1, double *f2, double *f3, double *g, double *d1, double *d2, double *d3, double *d4, double &res)
int * ARowPtr
Definition: NSE3DMGLevel4.h:54
TStructure3D * StructureB
Definition: NSE3DMGLevel4.h:96
TSquareMatrix3D * A11
Definition: NSE3DMGLevel4.h:24
TSquareMatrix3D * A12
Definition: NSE3DMGLevel4.h:27
double * A31Entries
Definition: NSE3DMGLevel4.h:78
TSquareMatrix3D * A13
Definition: NSE3DMGLevel4.h:30
Definition: Matrix3D.h:20
int * BTRowPtr
Definition: NSE3DMGLevel4.h:126
TMatrix3D * B3T
Definition: NSE3DMGLevel4.h:120
TMatrix3D * B2T
Definition: NSE3DMGLevel4.h:117
virtual void SolveExact(double *u1, double *u2, double *u3, double *p, double *rhs1, double *rhs2, double *rhs3, double *rhs4, double *aux, double *Counters, int N_Parameters, double *Parameters)
TSquareMatrix3D * A21
Definition: NSE3DMGLevel4.h:33
TSquareMatrix3D * A31
Definition: NSE3DMGLevel4.h:42
virtual void BraessSarazin(double *u1, double *u2, double *u3, double *p, double *rhs1, double *rhs2, double *rhs3, double *rhs4, double *aux, double *Counters, int N_Parameters, double *Parameters, int N_Levels)
Definition: SquareStructure3D.h:20
int * BRowPtr
Definition: NSE3DMGLevel4.h:99
double * A11Entries
Definition: NSE3DMGLevel4.h:60
virtual void CellVanka(double *u1, double *u2, double *u3, double *p, double *rhs1, double *rhs2, double *rhs3, double *rhs4, double *def1, double *def2, double *def3, double *def4, double *aux, double *Counters, int N_Parameters, double *Parameters, int smoother, int N_Levels)
TMatrix3D * B3
Definition: NSE3DMGLevel4.h:93
double * A23Entries
Definition: NSE3DMGLevel4.h:75
TSquareStructure3D * StructureA
Definition: NSE3DMGLevel4.h:51
double * B1TEntries
Definition: NSE3DMGLevel4.h:132
int * BTKCol
Definition: NSE3DMGLevel4.h:129
Definition: NSE3DMGLevel4.h:20
TMatrix3D * B1
Definition: NSE3DMGLevel4.h:87
virtual double StepLengthControl(double *u1, double *u2, double *u3, double *p, double *u1old, double *u2old, double *u3old, double *pold, double *def1, double *def2, double *def3, double *def4, int N_Parameters, double *Parameter)
TSquareMatrix3D * A33
Definition: NSE3DMGLevel4.h:48
TStructure3D * StructureBT
Definition: NSE3DMGLevel4.h:123
double * A32Entries
Definition: NSE3DMGLevel4.h:81