ParMooN
 All Classes Functions Variables Friends Pages
NSE3DMGLevel2.h
1 // =======================================================================
2 // @(#)NSE3DMGLevel2.h 1.6 07/03/00
3 //
4 // Class: TNSE3DMGLevel2
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 __NSE3DMGLEVEL2__
16 #define __NSE3DMGLEVEL2__
17 
18 #include <NSE3DMGLevel.h>
19 
20 class TNSE3DMGLevel2 : public TNSE3DMGLevel
21 {
22  protected:
25 
28 
30  int *ARowPtr;
31 
33  int *AKCol;
34 
36  double *AEntries;
37 
40 
43 
46 
49 
51  int *BRowPtr;
52 
54  int *BKCol;
55 
57  double *B1Entries;
58 
60  double *B2Entries;
61 
63  double *B3Entries;
64 
67 
70 
73 
76 
78  int *BTRowPtr;
79 
81  int *BTKCol;
82 
84  double *B1TEntries;
85 
87  double *B2TEntries;
88 
90  double *B3TEntries;
91 
92  public:
94  TNSE3DMGLevel2(int level, TSquareMatrix3D *A,
97  double *f1, double *f2, double *f3, double *g,
98  double *u1, double *u2, double *u3, double *p,
99  int n_aux, double al, int VelocitySpace,
100  int PressureSpace, TCollection *coll);
101 
103  ~TNSE3DMGLevel2();
104 
106  virtual void Defect(double *u1, double *u2, double *u3, double *p,
107  double *f1, double *f2, double *f3, double *g,
108  double *d1, double *d2, double *d3, double *d4,
109  double &res);
110 
112  virtual void CorrectNodes(double *u1, double *u2, double *u3, double *p);
113 
115  virtual void CellVanka(double *u1, double *u2, double *u3, double *p,
116  double *rhs1, double *rhs2, double *rhs3, double *rhs4,
117  double *def1, double *def2, double *def3, double *def4,
118  double *aux, double *Counters,
119  int N_Parameters, double *Parameters, int smoother, int N_Levels);
120 
122  virtual void NodalVanka(double *u1, double *u2, double *u3, double *p,
123  double *rhs1, double *rhs2, double *rhs3, double *rhs4,
124  double *def1, double *def2, double *def3, double *def4,
125  double *aux, double *Counters,
126  int N_Parameters, double *Parameters, int smoother, int N_Levels);
127 
129  virtual void SolveExact(double *u1, double *u2, double *u3, double *p,
130  double *rhs1, double *rhs2, double *rhs3, double *rhs4,
131  double *aux, double *Counters,
132  int N_Parameters, double *Parameters);
133 
135  virtual void BraessSarazin(double *u1, double *u2, double *u3, double *p,
136  double *rhs1, double *rhs2, double *rhs3, double *rhs4,
137  double *aux, double *Counters,
138  int N_Parameters, double *Parameters,int N_Levels);
139 
141  virtual double StepLengthControl(double *u1, double *u2, double *u3, double *p,
142  double *u1old, double *u2old, double *u3old, double *pold,
143  double *def1, double *def2, double *def3, double *def4,
144  int N_Parameters, double *Parameter);
145 
147  virtual void PrintAll();
148 
149 };
150 
151 #endif
int * ARowPtr
Definition: NSE3DMGLevel2.h:30
TStructure3D * StructureB
Definition: NSE3DMGLevel2.h:48
int * BKCol
Definition: NSE3DMGLevel2.h:54
double * B1TEntries
Definition: NSE3DMGLevel2.h:84
Definition: Structure3D.h:23
Definition: SquareMatrix3D.h:20
double * B2TEntries
Definition: NSE3DMGLevel2.h:87
int * BRowPtr
Definition: NSE3DMGLevel2.h:51
TStructure3D * StructureBT
Definition: NSE3DMGLevel2.h:75
TMatrix3D * B1T
Definition: NSE3DMGLevel2.h:66
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)
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)
int * BTKCol
Definition: NSE3DMGLevel2.h:81
store cells in an array, used by cell iterators
Definition: Collection.h:18
int * AKCol
Definition: NSE3DMGLevel2.h:33
TMatrix3D * B2T
Definition: NSE3DMGLevel2.h:69
double * B3TEntries
Definition: NSE3DMGLevel2.h:90
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)
double * B2Entries
Definition: NSE3DMGLevel2.h:60
Definition: Matrix3D.h:20
Definition: NSE3DMGLevel2.h:20
TMatrix3D * B3T
Definition: NSE3DMGLevel2.h:72
TMatrix3D * B3
Definition: NSE3DMGLevel2.h:45
TSquareMatrix3D * A
Definition: NSE3DMGLevel2.h:24
int * BTRowPtr
Definition: NSE3DMGLevel2.h:78
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)
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)
TMatrix3D * B2
Definition: NSE3DMGLevel2.h:42
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)
Definition: SquareStructure3D.h:20
TNSE3DMGLevel2(int level, TSquareMatrix3D *A, 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 * B3Entries
Definition: NSE3DMGLevel2.h:63
TSquareStructure3D * StructureA
Definition: NSE3DMGLevel2.h:27
double * AEntries
Definition: NSE3DMGLevel2.h:36
TMatrix3D * B1
Definition: NSE3DMGLevel2.h:39
virtual void CorrectNodes(double *u1, double *u2, double *u3, double *p)
virtual void PrintAll()
double * B1Entries
Definition: NSE3DMGLevel2.h:57