13 #ifndef __NSE_MGLEVEL__
14 #define __NSE_MGLEVEL__
18 #include <SquareMatrix2D.h>
21 #include <SquareMatrix3D.h>
147 { u1 =
U1; u2 =
U2; p =
P; }
150 void GetRhs(
double* &f1,
double* &f2,
double* &f3)
155 void GetSolution(
double* &u1,
double* &u2,
double* &u3,
double* &p)
156 { u1 =
U1; u2 =
U2; u3 =
U3; p =
P; }
159 void GetRhs(
double* &f1,
double* &f2,
double* &f3,
double* &f4)
200 virtual void Defect(
double *u1,
double *f1,
double *d1,
double &res);
203 void Update(
double *u1,
double *v1);
215 void Reset(
double *v1);
244 virtual void CellVanka(
double *u1,
double *rhs1,
double *aux,
245 int N_Parameters,
double *Parameters,
int smoother,
int N_Levels);
248 virtual void NodalVanka(
double *u1,
double *rhs1,
double *aux,
249 int N_Parameters,
double *Parameters,
int smoother,
int N_Levels);
252 virtual void SolveExact(
double *u1,
double *rhs1);
258 virtual void BraessSarazin(
double *u1,
double *rhs1,
double *aux,
259 int N_Parameters,
double *Parameters,
int N_Levels);
263 int N_Parameters,
double *Parameter);
TFESpace3D * PSpace
Definition: NSE_MGLevel.h:46
int N_Active
Definition: NSE_MGLevel.h:53
double * U1
Definition: NSE_MGLevel.h:88
TNSE_MGLevel(int level, double *f1, double *u1, int n_aux, double *al, int VelocitySpace, int PressureSpace, TCollection *coll)
Definition: NSE_MGLevel.C:34
int GetN_PDOF()
Definition: NSE_MGLevel.h:180
int GetN_UDOF()
Definition: NSE_MGLevel.h:176
virtual void NodalVanka(double *u1, double *rhs1, double *aux, int N_Parameters, double *Parameters, int smoother, int N_Levels)
Definition: NSE_MGLevel.C:267
TFESpace3D * GetPSpace()
Definition: NSE_MGLevel.h:233
TFESpace2D * GetPSpace()
Definition: NSE_MGLevel.h:223
double ** Aux
Definition: NSE_MGLevel.h:105
virtual void SolveExact(double *u1, double *rhs1)
Definition: NSE_MGLevel.C:274
void GetRhsVector(double *&f1)
Definition: NSE_MGLevel.h:168
int GetVelocitySpace()
Definition: NSE_MGLevel.h:184
virtual void CorrectNodes(double *u1)
Definition: NSE_MGLevel.C:105
int Level
Definition: NSE_MGLevel.h:28
int HangingNodeBound
Definition: NSE_MGLevel.h:56
double * P
Definition: NSE_MGLevel.h:99
Definition: FESpace2D.h:28
Definition: FESpace3D.h:22
double * U2
Definition: NSE_MGLevel.h:91
int * downwind
Definition: NSE_MGLevel.h:120
int N_Aux
Definition: NSE_MGLevel.h:102
void GetSolution(double *&u1, double *&u2, double *&u3, double *&p)
Definition: NSE_MGLevel.h:155
int * velo_velo_local_coupling
Definition: NSE_MGLevel.h:123
int * divergence_local_coupling
Definition: NSE_MGLevel.h:129
double * Rhs3
Definition: NSE_MGLevel.h:81
store cells in an array, used by cell iterators
Definition: Collection.h:18
double * Additional
Definition: NSE_MGLevel.h:108
int PressureSpace
Definition: NSE_MGLevel.h:71
double ** GetAuxVectors()
Definition: NSE_MGLevel.h:172
TCollection * VankaColl
Definition: NSE_MGLevel.h:117
int GetType()
Definition: NSE_MGLevel.h:269
TFESpace2D * PSpace
Definition: NSE_MGLevel.h:38
int GetHangingNodeBound()
Definition: NSE_MGLevel.h:192
int N_UDOF
Definition: NSE_MGLevel.h:62
void GetRhs(double *&f1, double *&f2, double *&f3)
Definition: NSE_MGLevel.h:150
void GetRhs(double *&f1, double *&f2, double *&f3, double *&f4)
Definition: NSE_MGLevel.h:159
TFESpace3D * GetUSpace()
Definition: NSE_MGLevel.h:229
TFESpace3D * USpace
Definition: NSE_MGLevel.h:43
int GetPressureSpace()
Definition: NSE_MGLevel.h:188
virtual double StepLengthControl(double *u1, double *u1old, double *def1, int N_Parameters, double *Parameter)
Definition: NSE_MGLevel.C:289
double * Rhs1
Definition: NSE_MGLevel.h:74
virtual void Defect(double *u1, double *f1, double *d1, double &res)
Definition: NSE_MGLevel.C:90
void Reset(double *v1)
Definition: NSE_MGLevel.C:254
int N_PDOF
Definition: NSE_MGLevel.h:65
~TNSE_MGLevel()
Definition: NSE_MGLevel.C:63
double beta
Definition: NSE_MGLevel.h:114
double * GetAuxVector(int i)
Definition: NSE_MGLevel.C:73
virtual void PrintAll()
Definition: NSE_MGLevel.C:296
double alpha
Definition: NSE_MGLevel.h:111
void SetHangingNodes(double *u1)
Definition: NSE_MGLevel.C:125
int Type
Definition: NSE_MGLevel.h:31
int N_DOF
Definition: NSE_MGLevel.h:59
void GetSolution(double *&u1, double *&u2, double *&p)
Definition: NSE_MGLevel.h:146
virtual void SolveExactUMFPACK(double *u1, double *rhs1, int &umfpack_flag)
Definition: NSE_MGLevel.C:279
virtual void CellVanka(double *u1, double *rhs1, double *aux, int N_Parameters, double *Parameters, int smoother, int N_Levels)
Definition: NSE_MGLevel.C:260
int N_Dirichlet
Definition: NSE_MGLevel.h:50
void Update(double *u1, double *v1)
Definition: NSE_MGLevel.C:95
double * Rhs2
Definition: NSE_MGLevel.h:77
int VelocitySpace
Definition: NSE_MGLevel.h:68
TFESpace2D * GetUSpace()
Definition: NSE_MGLevel.h:219
void CorrectDefect(double *v1)
Definition: NSE_MGLevel.C:176
double * RhsP
Definition: NSE_MGLevel.h:85
Definition: NSE_MGLevel.h:24
int * gradient_local_coupling
Definition: NSE_MGLevel.h:126
virtual void BraessSarazin(double *u1, double *rhs1, double *aux, int N_Parameters, double *Parameters, int N_Levels)
Definition: NSE_MGLevel.C:284
double * U3
Definition: NSE_MGLevel.h:95
TFESpace2D * USpace
Definition: NSE_MGLevel.h:35
void GetSolutionVector(double *&u1)
Definition: NSE_MGLevel.h:164
int GetN_Dirichlet()
Definition: NSE_MGLevel.h:196