ParMooN
 All Classes Functions Variables Friends Pages
SystemNSE2D.h
1 
11 #ifndef __SYSTEMNSE2D__
12 #define __SYSTEMNSE2D__
13 
14 #include <SquareMatrix2D.h>
15 #include <AssembleMat2D.h>
16 
19 {
20  protected:
21 
23  int N_U, N_P, N_Active, N_DirichletDof;
24 
26  double *Sol, *Rhs, *RHSs[3];
27 
28 
31 
34 
36  int Disctype;
37 
39  int NSEType;
40 
42  CoeffFct2D *LinCoeffs[1];
43 
45  TAuxParam2D *NSEaux, *NSEaux_error;
46 
48  DefectProc *Defect;
49 
51  int Solver;
52 
55 
58 
60  TStructure2D *structureB, *structureBT;
61 
63  TSquareMatrix2D *SqmatrixA11, *SqmatrixA12, *SqmatrixA21, *SqmatrixA22, *SQMATRICES[9];
64  TSquareMatrix **sqmatrices;
65 
67  TMatrix2D *MatrixB1, *MatrixB2, *MatrixB1T, *MatrixB2T, *MATRICES[8];
68  TMatrix **matrices;
69 
71  BoundCondFunct2D *BoundaryConditions[2];
72 
74  BoundValueFunct2D *BoundaryValues[2];
75 
77  TDiscreteForm2D *DiscreteFormARhs, *DiscreteFormNL, *DiscreteFormRhs;
78 
80  TAssembleMat2D *AMatRhsAssemble, *AMatAssembleNonLinear;
81 
82 
84 #ifdef __PRIVATE__
85 
87 
89  TStructure2D *structure_G, *structure_tilde_G;
90 
93 
95  TMatrix2D *Matrices_tilde_G11, *Matrices_tilde_G22, *Matrices_G11, *Matrices_G22;
96 #endif
97 
98  private:
99  void UpdateUpwind();
100 
101  void UpdateLPS();
102  public:
104  TSystemNSE2D(TFESpace2D *velocity_fespace, TFESpace2D *presssure_fespace, TFEVectFunct2D *Velocity,
105  TFEFunction2D *p, double *sol, double *rhs, int disctype, int nsetype, int solver
106 #ifdef __PRIVATE__
107  ,TFESpace2D *Projection_space, TFESpace2D *Stress_FeSpace, TFESpace2D *Deformation_FeSpace
108 #endif
109  );
110 
112  ~TSystemNSE2D();
113 
116  void Init(CoeffFct2D *lincoeffs, BoundCondFunct2D *BoundCond, BoundValueFunct2D *U1BoundValue, BoundValueFunct2D *U2BoundValue,
117  TAuxParam2D *aux, TAuxParam2D *auxerror) ;
118 
119 
121  void Assemble(double *sol, double *rhs);
122 
124  void AssembleNonLinear(double *sol, double *rhs);
125 
127  void AssembleRhsOnly(double *sol, double *rhs);
128 
130  void GetResidual(double *sol, double *rhs, double *res);
131 
133  void Solve(double *sol, double *rhs);
134 
136  void MeasureErrors(DoubleFunct2D *ExactU1, DoubleFunct2D *ExactU2, DoubleFunct2D *ExactP,
137  double *u_error, double *p_error);
138 };
139 
140 #endif
TStructure2D * structure_G
Definition: SystemNSE2D.h:89
TSystemNSE2D(TFESpace2D *velocity_fespace, TFESpace2D *presssure_fespace, TFEVectFunct2D *Velocity, TFEFunction2D *p, double *sol, double *rhs, int disctype, int nsetype, int solver#ifdef __PRIVATE__, TFESpace2D *Projection_space, TFESpace2D *Stress_FeSpace, TFESpace2D *Deformation_FeSpace#endif)
source file for TSystemNSE2D
Definition: SystemNSE2D.C:30
int N_Matrices
Definition: SystemNSE2D.h:54
void Init(CoeffFct2D *lincoeffs, BoundCondFunct2D *BoundCond, BoundValueFunct2D *U1BoundValue, BoundValueFunct2D *U2BoundValue, TAuxParam2D *aux, TAuxParam2D *auxerror)
Definition: SystemNSE2D.C:190
Definition: SquareMatrix2D.h:20
Definition: Structure2D.h:23
int Disctype
Definition: SystemNSE2D.h:36
TSquareMatrix2D * SqmatrixA11
Definition: SystemNSE2D.h:63
TMatrix2D * Matrices_tilde_G11
Definition: SystemNSE2D.h:95
Definition: Matrix.h:21
TFEFunction2D * FeFct[5]
Definition: SystemNSE2D.h:33
TAuxParam2D * NSEaux
Definition: SystemNSE2D.h:45
Definition: AuxParam2D.h:22
stores the information of a 2D NSE system matrix
Definition: SystemNSE2D.h:18
base class for assembling matrices
Definition: AssembleMat2D.h:27
Definition: FESpace2D.h:28
TSquareMatrix2D * MatricesL
Definition: SystemNSE2D.h:92
void Assemble(double *sol, double *rhs)
Definition: SystemNSE2D.C:502
int NSEType
Definition: SystemNSE2D.h:39
~TSystemNSE2D()
Definition: SystemNSE2D.C:180
TMatrix2D * MatrixB1
Definition: SystemNSE2D.h:67
BoundValueFunct2D * BoundaryValues[2]
Definition: SystemNSE2D.h:74
Definition: SquareMatrix.h:20
TAssembleMat2D * AMatRhsAssemble
Definition: SystemNSE2D.h:80
Definition: FEVectFunct2D.h:23
void GetResidual(double *sol, double *rhs, double *res)
Definition: SystemNSE2D.C:727
TSquareStructure2D * sqstructureA
Definition: SystemNSE2D.h:57
Definition: DiscreteForm2D.h:21
Definition: Matrix2D.h:20
double * Sol
Definition: SystemNSE2D.h:26
void AssembleRhsOnly(double *sol, double *rhs)
Definition: SystemNSE2D.C:676
int N_U
Definition: SystemNSE2D.h:23
void AssembleNonLinear(double *sol, double *rhs)
Definition: SystemNSE2D.C:605
TDiscreteForm2D * DiscreteFormARhs
Definition: SystemNSE2D.h:77
TStructure2D * structureB
Definition: SystemNSE2D.h:60
TFESpace2D * FeSpaces[5]
Definition: SystemNSE2D.h:30
CoeffFct2D * LinCoeffs[1]
Definition: SystemNSE2D.h:42
Definition: SquareStructure2D.h:20
int Solver
Definition: SystemNSE2D.h:51
BoundCondFunct2D * BoundaryConditions[2]
Definition: SystemNSE2D.h:71
Definition: FEFunction2D.h:24
TSquareStructure2D * sqstructureL
Definition: SystemNSE2D.h:86
void MeasureErrors(DoubleFunct2D *ExactU1, DoubleFunct2D *ExactU2, DoubleFunct2D *ExactP, double *u_error, double *p_error)
Definition: SystemNSE2D.C:817
void Solve(double *sol, double *rhs)
Definition: SystemNSE2D.C:772
DefectProc * Defect
Definition: SystemNSE2D.h:48