ParMooN
 All Classes Functions Variables Friends Pages
TNSE3D_Newton.h
1 // ======================================================================
2 // TNSE3D_Newton.h
3 //
4 // common declaration for all time dependent Navier-Stokes problems
5 // ======================================================================
6 
7 #ifndef __TNSE3D_NEWTON__
8 #define __TNSE3D_NEWTON__
9 
10 // ======================================================================
11 // declaration for all Navier-Stokes problems of type 3
12 // all four A blocks,
13 // B1, B2 (divergence blocks),
14 // ======================================================================
15 
16 static int TimeNSType3NewtonN_Terms = 5;
17 static MultiIndex3D TimeNSType3NewtonDerivatives[5] = { D100, D010, D001, D000, D000 };
18 static int TimeNSType3NewtonSpaceNumbers[5] = { 0, 0, 0, 0, 1 };
19 static int TimeNSType3NewtonN_Matrices = 15;
20 static int TimeNSType3NewtonRowSpace[15] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
21  1, 1, 1 };
22 static int TimeNSType3NewtonColumnSpace[15] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
23  0, 0, 0 };
24 static int TimeNSType3NewtonN_Rhs = 3;
25 static int TimeNSType3NewtonRhsSpace[3] = { 0, 0, 0 };
26 
27 void TimeNSType3GalerkinNewton3D(double Mult, double *coeff,
28  double *param, double hK,
29  double **OrigValues, int *N_BaseFuncts,
30  double ***LocMatrices, double **LocRhs);
31 
32 void TimeNSType3UpwindNewton3D(double Mult, double *coeff,
33  double *param, double hK,
34  double **OrigValues, int *N_BaseFuncts,
35  double ***LocMatrices, double **LocRhs);
36 
37 void TimeNSType4VMS_ProjectionNewtonDD3D(double Mult, double *coeff,
38  double *param, double hK,
39  double **OrigValues, int *N_BaseFuncts,
40  double ***LocMatrices, double **LocRhs);
41 
42 void TimeNSType4SmagorinskyNewtonDD3D(double Mult, double *coeff,
43  double *param, double hK,
44  double **OrigValues, int *N_BaseFuncts,
45  double ***LocMatrices, double **LocRhs);
46 
47 // ======================================================================
48 // declaration for all Navier-Stokes problems of type 3
49 // WITHOUT right hand sides
50 // ======================================================================
51 
52 static int TimeNSType3_4NLNewtonN_Terms = 4;
53 static MultiIndex3D TimeNSType3_4NLNewtonDerivatives[4] = { D100, D010, D001, D000 };
54 static int TimeNSType3_4NLNewtonSpaceNumbers[4] = { 0, 0, 0, 0 };
55 static int TimeNSType3_4NLNewtonN_Matrices = 3;
56 static int TimeNSType3_4NLNewtonRowSpace[9] = { 0, 0, 0, 0, 0, 0, 0, 0 ,0 };
57 static int TimeNSType3_4NLNewtonColumnSpace[9] = { 0, 0, 0, 0, 0, 0, 0, 0 ,0 };
58 static int TimeNSType3_4NLNewtonN_Rhs = 0;
59 static int *TimeNSType3_4NLNewtonRhsSpace = NULL;
60 
61 void TimeNSType3_4NLGalerkinNewton3D(double Mult, double *coeff,
62  double *param, double hK,
63  double **OrigValues, int *N_BaseFuncts,
64  double ***LocMatrices, double **LocRhs);
65 
66 void TimeNSType3_4NLUpwindNewton3D(double Mult, double *coeff,
67  double *param, double hK,
68  double **OrigValues, int *N_BaseFuncts,
69  double ***LocMatrices, double **LocRhs);
70 
71 void TimeNSType3_4NLSmagorinskyNewtonDD3D(double Mult, double *coeff,
72  double *param, double hK,
73  double **OrigValues, int *N_BaseFuncts,
74  double ***LocMatrices, double **LocRhs);
75 
76 void TimeNSType3_4NLVMS_ProjectionNewtonDD3D(double Mult, double *coeff,
77  double *param, double hK,
78  double **OrigValues, int *N_BaseFuncts,
79  double ***LocMatrices, double **LocRhs);
80 
81 // ======================================================================
82 // Assembling routine for right-hand sides only
83 // ======================================================================
84 
85 // ======================================================================
86 // declaration for all Navier-Stokes problems
87 // ONLY right hand sides
88 // ======================================================================
89 
90 static int TimeNSRHSNewtonN_Terms = 1;
91 static MultiIndex3D TimeNSRHSNewtonDerivatives[1] = { D000 };
92 static int TimeNSRHSNewtonSpaceNumbers[1] = { 0 };
93 static int TimeNSRHSNewtonN_Matrices = 0;
94 static int *TimeNSRHSNewtonRowSpace = NULL;
95 static int *TimeNSRHSNewtonColumnSpace = NULL;
96 static int TimeNSRHSNewtonN_Rhs = 6;
97 static int TimeNSRHSNewtonRhsSpace[6] = { 0, 0, 0, 0, 0, 0 };
98 
99 // ======================================================================
100 // right-hand side ONLY
101 // ======================================================================
102 void TimeNSRHSNewton3D(double Mult, double *coeff,
103  double *param, double hK,
104  double **OrigValues, int *N_BaseFuncts,
105  double ***LocMatrices, double **LocRhs);
106 
107 
108 void TimeNSRHSNewtonNL3D(double Mult, double *coeff,
109  double *param, double hK,
110  double **OrigValues, int *N_BaseFuncts,
111  double ***LocMatrices, double **LocRhs);
112 
113 
114 #endif