ParMooN
 All Classes Functions Variables Friends Pages
NSE_MGLevel1.h
1 // =======================================================================
2 // @(#)NSE_MGLevel1.h 1.6 07/03/00
3 //
4 // Class: TNSE_MGLevel1
5 // Purpose: store all data for one level in a multi grid method
6 // for solving a Stokes-/ Navier-Stokes system of
7 // type 1 (A, B1, B2, B3)
8 //
9 // Author: Volker John 25.07.2000
10 //
11 // History: 25.07.2000 start of implementation
12 //
13 // =======================================================================
14 
15 #ifndef __NSE_MGLEVEL1__
16 #define __NSE_MGLEVEL1__
17 
18 #include <NSE_MGLevel.h>
19 
21 {
22  protected:
23 #ifdef __2D__
24 
26 
29 
32 
35 
38 
41 #endif
42 #ifdef __3D__
43 
45 
48 
51 
54 
57 
60 
62  double *B3Entries;
63 
66 #endif
67 
69  int *ARowPtr;
70 
72  int *AKCol;
73 
75  double *AEntries;
76 
78  int *BRowPtr;
79 
81  int *BKCol;
82 
84  double *B1Entries;
85 
87  double *B2Entries;
88 
90  int *BTRowPtr;
91 
93  int *BTKCol;
94 
95 
96  public:
98 #ifdef __2D__
99  TNSE_MGLevel1(int level, TSquareMatrix2D *A,
101  TStructure2D *structureBT,
102  double *f1, double *u1,
103  int n_aux, double *al, int VelocitySpace,
104  int PressureSpace, TCollection *coll,
105  int *dw);
106 #endif
107 #ifdef __3D__
108  TNSE_MGLevel1(int level, TSquareMatrix3D *A,
110  TStructure3D *structureBT,
111  double *f1, double *u1,
112  int n_aux, double *al, int VelocitySpace,
113  int PressureSpace, TCollection *coll,
114  int *dw);
115 #endif
116 
118  ~TNSE_MGLevel1();
119 
121  virtual void Defect(double *u1, double *f1, double *d1, double &res);
122 
124  virtual void CorrectNodes(double *u1);
125 
127  virtual void CellVanka(double *u1, double *rhs1, double *aux,
128  int N_Parameters, double *Parameters,
129  int smoother, int N_Levels);
130 
132  virtual void NodalVanka(double *u1, double *rhs1, double *aux,
133  int N_Parameters, double *Parameters, int smoother, int N_Levels);
134 
136  virtual void SolveExact(double *u1, double *rhs1);
137 
139  virtual void SolveExactUMFPACK(double *u1, double *rhs1, int &umfpack_flag);
140 
142  virtual void BraessSarazin(double *u1, double *rhs1, double *aux,
143  int N_Parameters, double *Parameters,int N_Levels);
144 
146  virtual double StepLengthControl(double *u1, double *u1old, double *def1,
147  int N_Parameters, double *Parameter);
148 
150  virtual void PrintAll();
151 };
152 
153 #endif
TStructure2D * StructureB
Definition: NSE_MGLevel1.h:37
TMatrix2D * B1
Definition: NSE_MGLevel1.h:31
TSquareStructure2D * StructureA
Definition: NSE_MGLevel1.h:28
virtual void PrintAll()
Definition: NSE_MGLevel1.C:1094
Definition: Structure3D.h:23
Definition: SquareMatrix2D.h:20
Definition: Structure2D.h:23
Definition: SquareMatrix3D.h:20
TMatrix3D * B2
Definition: NSE_MGLevel1.h:53
Definition: NSE_MGLevel1.h:20
virtual void SolveExactUMFPACK(double *u1, double *rhs1, int &umfpack_flag)
Definition: NSE_MGLevel1.C:1011
int * BTRowPtr
Definition: NSE_MGLevel1.h:90
TMatrix3D * B1
Definition: NSE_MGLevel1.h:50
virtual void Defect(double *u1, double *f1, double *d1, double &res)
Definition: NSE_MGLevel1.C:143
virtual void NodalVanka(double *u1, double *rhs1, double *aux, int N_Parameters, double *Parameters, int smoother, int N_Levels)
Definition: NSE_MGLevel1.C:566
~TNSE_MGLevel1()
Definition: NSE_MGLevel1.C:138
TNSE_MGLevel1(int level, TSquareMatrix2D *A, TMatrix2D *B1, TMatrix2D *B2, TStructure2D *structureBT, double *f1, double *u1, int n_aux, double *al, int VelocitySpace, int PressureSpace, TCollection *coll, int *dw)
Definition: NSE_MGLevel1.C:45
virtual double StepLengthControl(double *u1, double *u1old, double *def1, int N_Parameters, double *Parameter)
Definition: NSE_MGLevel1.C:1040
int * BTKCol
Definition: NSE_MGLevel1.h:93
int * AKCol
Definition: NSE_MGLevel1.h:72
store cells in an array, used by cell iterators
Definition: Collection.h:18
virtual void SolveExact(double *u1, double *rhs1)
Definition: NSE_MGLevel1.C:900
int PressureSpace
Definition: NSE_MGLevel.h:71
TSquareMatrix3D * A
Definition: NSE_MGLevel1.h:44
virtual void BraessSarazin(double *u1, double *rhs1, double *aux, int N_Parameters, double *Parameters, int N_Levels)
Definition: NSE_MGLevel1.C:1099
int * ARowPtr
Definition: NSE_MGLevel1.h:69
TSquareMatrix2D * A
Definition: NSE_MGLevel1.h:25
double * AEntries
Definition: NSE_MGLevel1.h:75
TMatrix3D * B3
Definition: NSE_MGLevel1.h:56
double * B2Entries
Definition: NSE_MGLevel1.h:87
TStructure3D * StructureB
Definition: NSE_MGLevel1.h:59
int * BRowPtr
Definition: NSE_MGLevel1.h:78
Definition: Matrix3D.h:20
Definition: Matrix2D.h:20
virtual void CellVanka(double *u1, double *rhs1, double *aux, int N_Parameters, double *Parameters, int smoother, int N_Levels)
Definition: NSE_MGLevel1.C:218
TStructure2D * StructureBT
Definition: NSE_MGLevel1.h:40
virtual void CorrectNodes(double *u1)
Definition: NSE_MGLevel1.C:176
TStructure3D * StructureBT
Definition: NSE_MGLevel1.h:65
int VelocitySpace
Definition: NSE_MGLevel.h:68
Definition: SquareStructure3D.h:20
double * B3Entries
Definition: NSE_MGLevel1.h:62
TMatrix2D * B2
Definition: NSE_MGLevel1.h:34
int * BKCol
Definition: NSE_MGLevel1.h:81
Definition: NSE_MGLevel.h:24
Definition: SquareStructure2D.h:20
TSquareStructure3D * StructureA
Definition: NSE_MGLevel1.h:47
double * B1Entries
Definition: NSE_MGLevel1.h:84