ParMooN
 All Classes Functions Variables Friends Pages
NSE_MGLevel5.h
1 // =======================================================================
2 // @(#)NSE_MGLevel5.h 1.1 07/03/03
3 //
4 // Class: TNSE_MGLevel5
5 // Purpose: store all data for one level in a multi grid method
6 // for solving a Stokes-/ Navier-Stokes system of
7 // type 5 (A)
8 //
9 // Author: Gunar Matthies (28.10.2003)
10 //
11 // History: 28.10.2003 start of implementation
12 //
13 // =======================================================================
14 
15 #ifndef __NSE_MGLEVEL5__
16 #define __NSE_MGLEVEL5__
17 
18 #include <NSE_MGLevel.h>
19 
20 #ifdef __2D__
21 #include <SquareMatrixNSE2D.h>
22 #include <StructureNSE2D.h>
23 #endif
24 
25 #ifdef __3D__
26 #include <SquareMatrixNSE3D.h>
27 #include <StructureNSE3D.h>
28 #endif
29 
31 {
32  protected:
33 #ifdef __2D__
34 
36 
39 #endif
40 
41 #ifdef __3D__
42 
44 
47 #endif
48 
49  int *BeginJb;
50  int *jb;
51  int N_DOFperJoint;
52  double *Alpha;
53 
55  int N_Cells;
56 
58  int *ARowPtr;
59 
61  int *AKCol;
62 
64  double *AEntries;
65 
66  public:
68 #ifdef __2D__
69  TNSE_MGLevel5(int level, TSquareMatrixNSE2D *A,
70  double *f1, double *u1,
71  int n_aux, double *al,
73  TFESpace2D *PSpace, TCollection *coll);
74 #endif
75 
76 #ifdef __3D__
77  TNSE_MGLevel5(int level, TSquareMatrixNSE3D *A,
78  double *f1, double *u1,
79  int n_aux, double *al,
81  TFESpace3D *PSpace, TCollection *coll);
82 #endif
83 
86 
88  virtual void Defect(double *u1, double *f1, double *d1, double &res);
89 
91  virtual void CorrectNodes(double *u1);
92 
94  virtual void CellVanka(double *u1, double *rhs1, double *aux,
95  int N_Parameters, double *Parameters,
96  int smoother, int N_Levels);
97 
99  virtual void NodalVanka(double *u1, double *rhs1, double *aux,
100  int N_Parameters, double *Parameters, int smoother, int N_Levels);
101 
103  virtual void SolveExact(double *u1, double *rhs1);
104 
106  virtual void SolveExactUMFPACK(double *u1, double *rhs1, int &umfpack_flag);
107 
109  virtual void BraessSarazin(double *u1, double *rhs1, double *aux,
110  int N_Parameters, double *Parameters,int N_Levels);
111 
113  virtual double StepLengthControl(double *u1, double *u1old, double *def1,
114  int N_Parameters, double *Parameter);
115 
117  virtual void PrintAll();
118 
120  void GetUstarFromU(double *u, double *ustar);
121 
123  void GetUFromUstar(double *ustar, double *u);
124 
126  void GetDstarFromD(double *d, double *dstar);
127 
129  void GetDFromDstar(double *dstar, double *d);
130 };
131 
132 #endif
int N_Cells
Definition: NSE_MGLevel5.h:55
void GetDFromDstar(double *dstar, double *d)
Definition: NSE_MGLevel5.C:2406
TNSE_MGLevel5(int level, TSquareMatrixNSE2D *A, double *f1, double *u1, int n_aux, double *al, int VelocitySpace, int PressureSpace, TFESpace2D *PSpace, TCollection *coll)
Definition: NSE_MGLevel5.C:47
int * AKCol
Definition: NSE_MGLevel5.h:61
virtual void SolveExactUMFPACK(double *u1, double *rhs1, int &umfpack_flag)
Definition: NSE_MGLevel5.C:1831
virtual double StepLengthControl(double *u1, double *u1old, double *def1, int N_Parameters, double *Parameter)
Definition: NSE_MGLevel5.C:1842
virtual void CorrectNodes(double *u1)
Definition: NSE_MGLevel5.C:163
Definition: FESpace2D.h:28
Definition: FESpace3D.h:22
TSquareMatrixNSE3D * A
Definition: NSE_MGLevel5.h:43
double * AEntries
Definition: NSE_MGLevel5.h:64
store cells in an array, used by cell iterators
Definition: Collection.h:18
int PressureSpace
Definition: NSE_MGLevel.h:71
Definition: StructureNSE2D.h:19
virtual void BraessSarazin(double *u1, double *rhs1, double *aux, int N_Parameters, double *Parameters, int N_Levels)
Definition: NSE_MGLevel5.C:1894
Definition: StructureNSE3D.h:19
int * ARowPtr
Definition: NSE_MGLevel5.h:58
TStructureNSE3D * StructureA
Definition: NSE_MGLevel5.h:46
TSquareMatrixNSE2D * A
Definition: NSE_MGLevel5.h:35
TFESpace2D * PSpace
Definition: NSE_MGLevel.h:38
virtual void PrintAll()
Definition: NSE_MGLevel5.C:1889
void GetDstarFromD(double *d, double *dstar)
Definition: NSE_MGLevel5.C:2232
virtual void CellVanka(double *u1, double *rhs1, double *aux, int N_Parameters, double *Parameters, int smoother, int N_Levels)
Definition: NSE_MGLevel5.C:183
~TNSE_MGLevel5()
Definition: NSE_MGLevel5.C:131
Definition: SquareMatrixNSE2D.h:20
TStructureNSE2D * StructureA
Definition: NSE_MGLevel5.h:38
Definition: SquareMatrixNSE3D.h:20
virtual void NodalVanka(double *u1, double *rhs1, double *aux, int N_Parameters, double *Parameters, int smoother, int N_Levels)
Definition: NSE_MGLevel5.C:987
void GetUstarFromU(double *u, double *ustar)
Definition: NSE_MGLevel5.C:1902
virtual void SolveExact(double *u1, double *rhs1)
Definition: NSE_MGLevel5.C:994
Definition: NSE_MGLevel5.h:30
int VelocitySpace
Definition: NSE_MGLevel.h:68
Definition: NSE_MGLevel.h:24
void GetUFromUstar(double *ustar, double *u)
Definition: NSE_MGLevel5.C:2059
virtual void Defect(double *u1, double *f1, double *d1, double &res)
Definition: NSE_MGLevel5.C:136