ParMooN
 All Classes Functions Variables Friends Pages
MultiGrid2D.h
1 // =======================================================================
2 // @(#)MultiGrid2D.h 1.5 05/05/00
3 //
4 // Class: TMultiGrid2D
5 // Purpose: store all data for a multi grid method
6 //
7 // Author: Gunar Matthies 02.11.1998
8 //
9 // History: 02.11.1998 start of implementation
10 //
11 // =======================================================================
12 #ifdef __2D__
13 
14 #ifndef __MULTIGRID2D__
15 #define __MULTIGRID2D__
16 
17 #include <MGLevel2D.h>
18 
19 // #define MAXN_LEVELS 100
20 
22 {
23  protected:
25  int N_Levels;
26 
29 
32 
34  double *Parameters;
35 
37  TMGLevel2D *MultiGridLevels[MAXN_LEVELS];
38 
40  TFESpace2D *FESpaces[MAXN_LEVELS];
41 
43  double **FunctionVectors[MAXN_LEVELS];
44 
46  double **RhsVectors[MAXN_LEVELS];
47 
49  double **AuxVectors[MAXN_LEVELS];
50 
52  int mg_recursions[MAXN_LEVELS];
53 
54  public:
56  TMultiGrid2D(int n_problems, int n_parameters, double *parameters);
57 
60  { return N_Levels; }
61 
63  void AddLevel(TMGLevel2D *MGLevel);
64 
66  void ReplaceLevel(int i,TMGLevel2D *MGLevel);
67 
70  { return MultiGridLevels[i]; }
71 
73  void RestrictToAllGrids();
74 
76  void SetDirichletNodes(int i);
77 
79  void Cycle(int i, double &res);
80 
82  void SetRecursion(int levels);
83 };
84 
85 #endif
86 
87 #endif // #ifdef __2D__
double * Parameters
Definition: MultiGrid2D.h:34
void RestrictToAllGrids()
Definition: MultiGrid2D.C:70
Definition: FESpace2D.h:28
TMultiGrid2D(int n_problems, int n_parameters, double *parameters)
Definition: MultiGrid2D.C:31
void Cycle(int i, double &res)
Definition: MultiGrid2D.C:259
Definition: MGLevel2D.h:18
Definition: MultiGrid2D.h:21
TMGLevel2D * GetLevel(int i)
Definition: MultiGrid2D.h:69
int N_Levels
Definition: MultiGrid2D.h:25
double ** FunctionVectors[MAXN_LEVELS]
Definition: MultiGrid2D.h:43
TMGLevel2D * MultiGridLevels[MAXN_LEVELS]
Definition: MultiGrid2D.h:37
void ReplaceLevel(int i, TMGLevel2D *MGLevel)
Definition: MultiGrid2D.C:54
void SetDirichletNodes(int i)
Definition: MultiGrid2D.C:637
void SetRecursion(int levels)
Definition: MultiGrid2D.C:658
double ** RhsVectors[MAXN_LEVELS]
Definition: MultiGrid2D.h:46
void AddLevel(TMGLevel2D *MGLevel)
Definition: MultiGrid2D.C:44
int GetN_Levels()
Definition: MultiGrid2D.h:59
int mg_recursions[MAXN_LEVELS]
Definition: MultiGrid2D.h:52
double ** AuxVectors[MAXN_LEVELS]
Definition: MultiGrid2D.h:49
int N_Problems
Definition: MultiGrid2D.h:28
int N_Parameters
Definition: MultiGrid2D.h:31
TFESpace2D * FESpaces[MAXN_LEVELS]
Definition: MultiGrid2D.h:40