ParMooN
 All Classes Functions Variables Friends Pages
NSE2D_ParamRout.h
1 #ifndef __NSE2D_PARAMROUT__
2 #define __NSE2D_PARAMROUT__
3 #include <NSE2D_FixPo.h>
4 
5 // ======================================================================
6 // setting for error calculation for all types
7 // ======================================================================
8 MultiIndex2D NSAllDerivatives[3] = { D00, D10, D01 };
9 MultiIndex2D NSErrorEstiamtorU_Derivatives[8] = { D10, D01, D00, D20, D02,
10  D10, D01, D00 };
11 MultiIndex2D NSErrorEstiamtorU_DerivativesEstimator[5] = { D10, D01, D00, D20, D02};
12 MultiIndex2D NSErrorEstiamtorP_Derivatives[3] = { D10, D01, D00 };
13 MultiIndex2D NSErrorEstiamtorP_DerivativesEstimator[2] = { D10, D01 };
14 
15 // ========================================================================
16 // parameter routines
17 // ========================================================================
18 
19 // ========================================================================
20 // parameters: u1old, u2old
21 // ========================================================================
22 int NSN_FESpacesVelo = 1;
23 int NSN_FctVelo = 2;
24 int NSN_ParamFctVelo = 1;
25 int NSN_FEValuesVelo = 2;
26 int NSN_ParamsVelo = 2;
27 int NSFEFctIndexVelo[2] = { 0, 1 };
28 MultiIndex2D NSFEMultiIndexVelo[2] = { D00, D00 };
29 ParamFct *NSFctVelo[1] = { NSParamsVelo };
30 int NSBeginParamVelo[1] = { 0 };
31 
32 // ========================================================================
33 // parameters: u1old, u2old, gradient(u1), gradient(u2)
34 // ========================================================================
35 void NSParamsVelo_GradVelo(double *in, double *out);
36 
37 int NSN_FESpacesVelo_GradVelo = 1;
38 int NSN_FctVelo_GradVelo = 2;
39 int NSN_ParamFctVelo_GradVelo = 1;
40 int NSN_FEValuesVelo_GradVelo = 6;
41 int NSN_ParamsVelo_GradVelo = 6;
42 int NSFEFctIndexVelo_GradVelo[6] = { 0, 1, 0, 1, 0, 1 };
43 MultiIndex2D NSFEMultiIndexVelo_GradVelo[6] = { D00, D00, D10, D10, D01, D01 };
44 ParamFct *NSFctVelo_GradVelo[1] = { NSParamsVelo_GradVelo };
45 int NSBeginParamVelo_GradVelo[1] = { 0 };
46 
47 // ======================================================================
48 // auxiliary problem
49 // ======================================================================
50 void NSAuxProblem(double Mult, double *coeff,
51  double *param, double hK,
52  double **OrigValues, int *N_BaseFuncts,
53  double ***LocMatrices, double **LocRhs);
54 
55 
56 int NSAuxProblemN_Terms = 3;
57 MultiIndex2D NSAuxProblemDerivatives[3] = { D10, D01, D00};
58 int NSAuxProblemSpaceNumbers[3] = { 0, 0, 0};
59 int NSAuxProblemN_Matrices = 1;
60 int NSAuxProblemRowSpace[1] = { 0 };
61 int NSAuxProblemColumnSpace[1] = { 0 };
62 int NSAuxProblemN_Rhs = 2;
63 int NSAuxProblemRhsSpace[2] = { 0, 0 };
64 
65 void NSParamsVeloExact(double *in, double *out);
66 ParamFct *NSFctVeloExact[1] = { NSParamsVeloExact };
67 
68 // ======================================================================
69 // auxiliary problem for differential filter
70 // ======================================================================
71 void Filter_Galerkin(double Mult, double *coeff,
72  double *param, double hK,
73  double **OrigValues, int *N_BaseFuncts,
74  double ***LocMatrices, double **LocRhs);
75 // ======================================================================
76 // declarations for auxiliary problem for differential filter
77 // one matrix
78 // two rhs
79 // ======================================================================
80 
81 int Filter_N_Terms = 3;
82 MultiIndex2D Filter_Derivatives[3] = { D10, D01, D00};
83 int Filter_SpaceNumbers[3] = { 0, 0, 0};
84 int Filter_N_Matrices = 1;
85 int Filter_RowSpace[1] = { 0 };
86 int Filter_ColumnSpace[1] = { 0 };
87 int Filter_N_Rhs = 2;
88 int Filter_RhsSpace[2] = { 0, 0 };
89 
90 // ========================================================================
91 // parameters: separated pressure
92 // ========================================================================
93 void NSParamsPressSep(double *in, double *out);
94 
95 int NSN_FESpacesPressSep = 1;
96 int NSN_FctPressSep = 1;
97 int NSN_ParamFctPressSep = 1;
98 int NSN_FEValuesPressSep = 2;
99 int NSN_ParamsPressSep = 2;
100 int NSFEFctIndexPressSep[2] = { 0, 0 };
101 MultiIndex2D NSFEMultiIndexPressSep[2] = { D10, D01 };
102 ParamFct *NSFctPressSep[1] = { NSParamsPressSep };
103 int NSBeginParamPressSep[1] = { 0 };
104 
105 // ========================================================================
106 // parameters: u1old, u2old
107 // ========================================================================
108 void NSParamsVeloAxialSymm3D(double *in, double *out);
109 
110 int NSN_FESpacesVeloAxialSymm3D = 1;
111 int NSN_FctVeloAxialSymm3D = 2;
112 int NSN_ParamFctVeloAxialSymm3D = 1;
113 int NSN_FEValuesVeloAxialSymm3D = 2;
114 int NSN_ParamsVeloAxialSymm3D = 3;
115 int NSFEFctIndexVeloAxialSymm3D[2] = { 0, 1 };
116 MultiIndex2D NSFEMultiIndexVeloAxialSymm3D[2] = { D00, D00 };
117 ParamFct *NSFctVeloAxialSymm3D[1] = { NSParamsVeloAxialSymm3D };
118 int NSBeginParamVeloAxialSymm3D[1] = { 0 };
119 
120 // ========================================================================
121 // parameters: u1old, u2old, gradient(u1), gradient(u2)
122 // ========================================================================
123 void NSParamsVelo_GradVeloAxialSymm3D(double *in, double *out);
124 
125 int NSN_FESpacesVelo_GradVeloAxialSymm3D = 1;
126 int NSN_FctVelo_GradVeloAxialSymm3D = 2;
127 int NSN_ParamFctVelo_GradVeloAxialSymm3D = 1;
128 int NSN_FEValuesVelo_GradVeloAxialSymm3D = 6;
129 int NSN_ParamsVelo_GradVeloAxialSymm3D = 7;
130 int NSFEFctIndexVelo_GradVeloAxialSymm3D[6] = { 0, 1, 0, 1, 0, 1 };
131 MultiIndex2D NSFEMultiIndexVelo_GradVeloAxialSymm3D[6] = { D00, D00, D10, D10, D01, D01 };
132 ParamFct *NSFctVelo_GradVeloAxialSymm3D[1] = { NSParamsVelo_GradVeloAxialSymm3D };
133 int NSBeginParamVelo_GradVeloAxialSymm3D[1] = { 0 };
134 
135 // ========================================================================
136 // parameters: u1old, u2old, gradient(u1), gradient(u2)
137 // ========================================================================
138 void NSParamsVelo_Press(double *in, double *out);
139 
140 int NSN_FESpacesVelo_Press = 2;
141 int NSN_FctVelo_Press = 3;
142 int NSN_ParamFctVelo_Press = 1;
143 int NSN_FEValuesVelo_Press = 4;
144 int NSN_ParamsVelo_Press = 4;
145 int NSFEFctIndexVelo_Press[4] = { 0, 1, 2, 2 };
146 MultiIndex2D NSFEMultiIndexVelo_Press[6] = { D00, D00, D10, D10};
147 ParamFct *NSFctVelo_Press[1] = { NSParamsVelo_Press};
148 int NSBeginParamVelo_Press[1] = { 0 };
149 
150 
151 // ========================================================================
152 // parameters: u1old, u2old, gradient(u1), gradient(u2), tau1, tau2, tau3, gradient(tau1), gradient(tau2), gradient(tau3)
153 // ========================================================================
154 void NSParamsVelo_GradVelo_CST(double *in, double *out);
155 
156 int NSN_FESpacesVelo_GradVelo_CST = 3;
157 int NSN_FctVelo_GradVelo_CST = 6;
158 int NSN_ParamFctVelo_GradVelo_CST = 1;
159 int NSN_FEValuesVelo_GradVelo_CST = 15;
160 int NSN_ParamsVelo_GradVelo_CST = 15;
161 int NSFEFctIndexVelo_GradVelo_CST[15] = { 0, 1, 0, 1, 0, 1, 3, 4, 5, 3, 4, 5, 3, 4, 5 };
162 MultiIndex2D NSFEMultiIndexVelo_GradVelo_CST[15] = { D00, D00, D10, D10, D01, D01, D00, D00, D00, D10, D10, D10, D01, D01, D01 };
163 ParamFct *NSFctVelo_GradVelo_CST[1] = { NSParamsVelo_GradVelo_CST };
164 int NSBeginParamVelo_GradVelo_CST[1] = { 0 };
165 
166 // ========================================================================
167 // parameters: u1old, u2old, gradient(u1), gradient(u2), tau1, tau2, tau3, D1, D2, D3, p
168 // ========================================================================
169 void NSParamsVelo_GradVelo_DEVSS(double *in, double *out);
170 
171 int NSN_FESpacesVelo_GradVelo_DEVSS = 4;
172 int NSN_FctVelo_GradVelo_DEVSS = 9;
173 int NSN_ParamFctVelo_GradVelo_DEVSS = 1;
174 int NSN_FEValuesVelo_GradVelo_DEVSS = 12;
175 int NSN_ParamsVelo_GradVelo_DEVSS = 12;
176 int NSFEFctIndexVelo_GradVelo_DEVSS[12] = { 0, 1, 0, 1, 0, 1, 3, 4, 5, 6, 7, 8};
177 MultiIndex2D NSFEMultiIndexVelo_GradVelo_DEVSS[12] = { D00, D00, D10, D10, D01, D01, D00, D00, D00, D00, D00, D00};
178 ParamFct *NSFctVelo_GradVelo_DEVSS[1] = { NSParamsVelo_GradVelo_DEVSS };
179 int NSBeginParamVelo_GradVelo_DEVSS[1] = { 0 };
180 
181 // ========================================================================
182 // parameters: tau1old, tau2old, tau3old, gradient(tau1), gradient(tau2), gradient(tau3)
183 // ========================================================================
184 void NSParams_CST(double *in, double *out);
185 int NSN_FESpaces_CST = 1;
186 int NSN_Fct_CST = 3;
187 int NSN_ParamFct_CST = 1;
188 int NSN_FEValues_CST = 9;
189 int NSN_ParamsVelo_CST = 9;
190 int NSFEFctIndex_CST[9] = { 0, 1, 2, 0, 1, 2, 0, 1, 2 };
191 MultiIndex2D NSFEMultiIndex_CST[9] = { D00, D00, D00, D10, D10, D10, D01, D01, D01 };
192 ParamFct *NSFct_CST[1] = { NSParams_CST };
193 int NSBeginParam_CST[1] = { 0 };
194 
195 // ========================================================================
196 // parameters: u1old, u2old, temperature
197 // ========================================================================
198 /*
199 void NSParamsVeloTemp(double *in, double *out);
200 
201 int NSN_FESpacesVeloTemp = 3;
202 int NSN_FctVeloTemp = 3;
203 int NSN_ParamFctVeloTemp = 1;
204 int NSN_FEValuesVeloTemp = 3;
205 int NSN_ParamsVeloTemp = 3;
206 int NSFEFctIndexVeloTemp[3] = { 0, 1, 2 };
207 MultiIndex2D NSFEMultiIndexVeloTemp[3] = { D00, D00, D00 };
208 ParamFct *NSFctVeloTemp[1] = { NSParamsVeloTemp };
209 int NSBeginParamVeloTemp[1] = { 0 };
210 */
211 
212 #endif // __NSE2D_PARAMROUT__