ParMooN
 All Classes Functions Variables Friends Pages
NSE2D_Param.h
1 #include <Enumerations.h>
2 
3 /**************************** NSTYPE == 1 ******************************/
4 // ======================================================================
5 // declaration for all Navier-Stokes problems of type 1
6 // one A block,
7 // B1, B2 (divergence blocks)
8 // ======================================================================
9 
10 int NSType1N_Terms = 4;
11 MultiIndex2D NSType1Derivatives[4] = { D10, D01, D00, D00 };
12 int NSType1SpaceNumbers[4] = { 0, 0, 0, 1 };
13 int NSType1N_Matrices = 3;
14 int NSType1RowSpace[3] = { 0, 1, 1 };
15 int NSType1ColumnSpace[3] = { 0, 0, 0 };
16 int NSType1N_Rhs = 2;
17 int NSType1RhsSpace[2] = { 0, 0 };
18 
19 // ======================================================================
20 // declaration for all Navier-Stokes problems of type 1
21 // one nonlinear A block
22 // WITHOUT right hand sides
23 // ======================================================================
24 
25 int NSType1NLN_Terms = 3;
26 MultiIndex2D NSType1NLDerivatives[3] = { D10, D01, D00 };
27 int NSType1NLSpaceNumbers[3] = { 0, 0, 0 };
28 int NSType1NLN_Matrices = 1;
29 int NSType1NLRowSpace[1] = { 0 };
30 int NSType1NLColumnSpace[1] = { 0 };
31 int NSType1NLN_Rhs = 0;
32 int *NSType1NLRhsSpace = NULL;
33 
34 int NSType1NLSDFEMN_Rhs = 2;
35 int NSType1NLSDFEMRhsSpace[2] = {0, 0};
36 
37 // ======================================================================
38 // VMSProjection
39 // ======================================================================
40 int NSType1VMSProjectionN_Terms = 5;
41 MultiIndex2D NSType1VMSProjectionDerivatives[5] = { D10, D01, D00, D00, D00 };
42 int NSType1VMSProjectionSpaceNumbers[5] = { 0, 0, 0, 1, 2 };
43 int NSType1VMSProjectionN_Matrices = 8;
44 int NSType1VMSProjectionRowSpace[8] = { 0, 2, 1, 1,
45  0, 0, 2, 2};
46 int NSType1VMSProjectionColumnSpace[8] = { 0, 2, 0, 0,
47  2, 2, 0, 0};
48 
49 int NSType1_2NLVMSProjectionN_Terms = 4;
50 MultiIndex2D NSType1_2NLVMSProjectionDerivatives[4] = { D10, D01, D00, D00 };
51 int NSType1_2NLVMSProjectionSpaceNumbers[4] = { 0, 0, 0, 1 };
52 int NSType1_2NLVMSProjectionN_Matrices = 3;
53 int NSType1_2NLVMSProjectionRowSpace[3] = { 0, 0, 0};
54 int NSType1_2NLVMSProjectionColumnSpace[3] = { 0, 1, 1};
55 
56 /**************************** NSTYPE == 2 ******************************/
57 
58 // ======================================================================
59 // declaration for all Navier-Stokes problems of type 2
60 // one A block,
61 // B1, B2 (divergence blocks),
62 // B1T, B2T (gradient blocks)
63 // ======================================================================
64 
65 int NSType2N_Terms = 4;
66 MultiIndex2D NSType2Derivatives[4] = { D10, D01, D00, D00 };
67 int NSType2SpaceNumbers[4] = { 0, 0, 0, 1 };
68 int NSType2N_Matrices = 5;
69 int NSType2RowSpace[5] = { 0, 1, 1, 0, 0 };
70 int NSType2ColumnSpace[5] = { 0, 0, 0, 1, 1 };
71 int NSType2N_Rhs = 2;
72 int NSType2RhsSpace[2] = { 0, 0 };
73 
74 // ======================================================================
75 // declaration for all Navier-Stokes problems of type 2
76 // one A block,
77 // WITH B1, B2 B1T, B2T
78 // WITH right hand sides
79 // ======================================================================
80 
81 int NSType2SDN_Terms = 8;
82 MultiIndex2D NSType2SDDerivatives[8] = { D10, D01, D00, D20, D02,
83  D10, D01, D00 };
84 int NSType2SDSpaceNumbers[8] = { 0, 0, 0, 0, 0, 1, 1, 1 };
85 int NSType2SDN_Matrices = 5;
86 int NSType2SDRowSpace[5] = { 0, 1, 1, 0, 0 };
87 int NSType2SDColumnSpace[5] = { 0, 0, 0, 1, 1 };
88 int NSType2SDN_Rhs = 2;
89 int NSType2SDRhsSpace[2] = { 0, 0 };
90 
91 // ======================================================================
92 // declaration for all Navier-Stokes problems of type 2
93 // one A block,
94 // WITHOUT B1T, B2T (gradient blocks)
95 // WITHOUT right hand sides
96 // ======================================================================
97 
98 int NSType2NLN_Terms = 3;
99 MultiIndex2D NSType2NLDerivatives[3] = { D10, D01, D00 };
100 int NSType2NLSpaceNumbers[3] = { 0, 0, 0 };
101 int NSType2NLN_Matrices = 1;
102 int NSType2NLRowSpace[1] = { 0 };
103 int NSType2NLColumnSpace[1] = { 0 };
104 int NSType2NLN_Rhs = 0;
105 int *NSType2NLRhsSpace = NULL;
106 
107 
108 // ======================================================================
109 // declaration for all Navier-Stokes problems of type 2
110 // one A block,
111 // WITH B1T, B2T (gradient blocks)
112 // WITH right hand sides
113 // ======================================================================
114 
115 int NSType2NLSDN_Terms = 8;
116 MultiIndex2D NSType2NLSDDerivatives[8] = { D10, D01, D00, D20, D02,
117  D10, D01, D00 };
118 int NSType2NLSDSpaceNumbers[8] = { 0, 0, 0, 0, 0, 1, 1, 1 };
119 int NSType2NLSDN_Matrices = 3;
120 int NSType2NLSDRowSpace[3] = { 0, 0, 0 };
121 int NSType2NLSDColumnSpace[3] = { 0, 1, 1 };
122 int NSType2NLSDN_Rhs = 2;
123 int NSType2NLSDRhsSpace[2] = { 0, 0 };
124 
125 /**************************** NSTYPE == 3 ******************************/
126 
127 // ======================================================================
128 // declaration for all Navier-Stokes problems of type 3
129 // all four A blocks,
130 // B1, B2 (divergence blocks),
131 // ======================================================================
132 
133 int NSType3N_Terms = 4;
134 MultiIndex2D NSType3Derivatives[4] = { D10, D01, D00, D00 };
135 int NSType3SpaceNumbers[4] = { 0, 0, 0, 1 };
136 int NSType3N_Matrices = 6;
137 int NSType3RowSpace[6] = { 0, 0, 0, 0, 1, 1 };
138 int NSType3ColumnSpace[6] = { 0, 0, 0, 0, 0, 0 };
139 int NSType3N_Rhs = 2;
140 int NSType3RhsSpace[2] = { 0, 0 };
141 
142 // ======================================================================
143 // declaration for all Navier-Stokes problems of type 3
144 // main diagonal blocks A11, A22
145 // WITHOUT right hand sides
146 // ======================================================================
147 
148 int NSType3NLN_Terms = 3;
149 MultiIndex2D NSType3NLDerivatives[3] = { D10, D01, D00 };
150 int NSType3NLSpaceNumbers[3] = { 0, 0, 0 };
151 int NSType3NLN_Matrices = 2;
152 int NSType3NLRowSpace[2] = { 0, 0 };
153 int NSType3NLColumnSpace[2] = { 0, 0 };
154 int NSType3NLN_Rhs = 0;
155 int *NSType3NLRhsSpace = NULL;
156 
157 // ======================================================================
158 // declaration for all Navier-Stokes problems of type 3
159 // all blocks A11, A22
160 // WITHOUT right hand sides
161 // ======================================================================
162 
163 int NSType3NLSmagorinskyN_Terms = 3;
164 MultiIndex2D NSType3NLSmagorinskyDerivatives[3] = { D10, D01, D00 };
165 int NSType3NLSmagorinskySpaceNumbers[3] = { 0, 0, 0 };
166 int NSType3NLSmagorinskyN_Matrices = 4;
167 int NSType3NLSmagorinskyRowSpace[4] = { 0, 0, 0, 0 };
168 int NSType3NLSmagorinskyColumnSpace[4] = { 0, 0, 0, 0 };
169 int NSType3NLSmagorinskyN_Rhs = 0;
170 int *NSType3NLSmagorinskyRhsSpace = NULL;
171 
172 // ======================================================================
173 // declaration for all Navier-Stokes problems of type 3
174 // main diagonal blocks A11, A12, A21, A22
175 // WITH right hand sides
176 // for Newton method
177 // ======================================================================
178 
179 int NSType3NLNewtonN_Matrices = 4;
180 int NSType3NLNewtonRowSpace[4] = { 0, 0, 0, 0 };
181 int NSType3NLNewtonColumnSpace[4] = { 0, 0, 0, 0 };
182 int NSType3NLNewtonN_Rhs = 2;
183 int NSType3NLNewtonRhsSpace[2] = {0, 0};
184 
185 /**************************** NSTYPE == 4 ******************************/
186 
189 // ======================================================================
190 // declaration for all Navier-Stokes problems of type 4
191 // all four A blocks,
192 // B1, B2 (divergence blocks),
193 // B1T, B2T (gradient blocks)
194 // ======================================================================
195 
196 int NSType4N_Terms = 4;
197 MultiIndex2D NSType4Derivatives[4] = { D10, D01, D00, D00 };
198 int NSType4SpaceNumbers[4] = { 0, 0, 0, 1 };
199 int NSType4N_Matrices = 8;
200 int NSType4RowSpace[8] = { 0, 0, 0, 0, 1, 1, 0, 0 };
201 int NSType4ColumnSpace[8] = { 0, 0, 0, 0, 0, 0, 1, 1 };
202 int NSType4N_Rhs = 2;
203 int NSType4RhsSpace[2] = { 0, 0 };
204 
205 // ======================================================================
206 // declaration for all Navier-Stokes problems of type 4
207 // all four A blocks,
208 // B1, B2 (divergence blocks),
209 // B1T, B2T (gradient blocks)
210 // ======================================================================
211 
212 int NSType4SDN_Terms = 8;
213 MultiIndex2D NSType4SDDerivatives[8] = { D10, D01, D00, D20, D02,
214  D10, D01, D00 };
215 int NSType4SDSpaceNumbers[8] = { 0, 0, 0, 0, 0, 1, 1, 1 };
216 int NSType4SDN_Matrices = 8;
217 int NSType4SDRowSpace[8] = { 0, 0, 0, 0, 1, 1, 0, 0 };
218 int NSType4SDColumnSpace[8] = { 0, 0, 0, 0, 0, 0, 1, 1 };
219 int NSType4SDN_Rhs = 2;
220 int NSType4SDRhsSpace[2] = { 0, 0 };
221 
222 // ======================================================================
223 // declaration for all Navier-Stokes problems of type 4
224 // all four A blocks,
225 // B1, B2 (divergence blocks),
226 // B1T, B2T (gradient blocks)
227 // ======================================================================
228 
229 int NSType4EquOrdN_Terms = 8;
230 MultiIndex2D NSType4EquOrdDerivatives[8] = { D10, D01, D00, D20, D02,
231  D10, D01, D00 };
232 int NSType4EquOrdSpaceNumbers[8] = { 0, 0, 0, 0, 0, 1, 1, 1 };
233 int NSType4EquOrdN_Matrices = 9;
234 int NSType4EquOrdRowSpace[9] = { 0, 0, 0, 0, 1, 1, 1, 0, 0 };
235 int NSType4EquOrdColumnSpace[9] = { 0, 0, 0, 0, 1, 0, 0, 1, 1 };
236 int NSType4EquOrdN_Rhs = 3;
237 int NSType4EquOrdRhsSpace[3] = { 0, 0, 1 };
238 
241 // ======================================================================
242 // declaration for all Navier-Stokes problems of type 4
243 // main diagonal blocks A11, A22
244 // WITHOUT B1T, B2T (gradient blocks)
245 // WITHOUT right hand sides
246 // ======================================================================
247 
248 int NSType4NLN_Terms = 3;
249 MultiIndex2D NSType4NLDerivatives[3] = { D10, D01, D00 };
250 int NSType4NLSpaceNumbers[3] = { 0, 0, 0 };
251 int NSType4NLN_Matrices = 2;
252 int NSType4NLRowSpace[2] = { 0, 0 };
253 int NSType4NLColumnSpace[2] = { 0, 0 };
254 int NSType4NLN_Rhs = 0;
255 int *NSType4NLRhsSpace = NULL;
256 
257 // ======================================================================
258 // declaration for all Navier-Stokes problems of type 4
259 // all blocks Aij
260 // WITH B1T, B2T (gradient blocks)
261 // WITH right hand sides
262 // ======================================================================
263 
264 int NSType4NLSDN_Terms = 8;
265 MultiIndex2D NSType4NLSDDerivatives[8] = { D10, D01, D00, D20, D02,
266  D10, D01, D00 };
267 int NSType4NLSDSpaceNumbers[8] = { 0, 0, 0, 0, 0, 1, 1, 1 };
268 int NSType4NLSDN_Matrices = 4;
269 int NSType4NLSDRowSpace[4] = { 0, 0, 0, 0 };
270 int NSType4NLSDColumnSpace[4] = { 0, 0, 1, 1 };
271 int NSType4NLSDN_Rhs = 2;
272 int NSType4NLSDRhsSpace[2] = { 0, 0 };
273 
274 // ======================================================================
275 // declaration for all Navier-Stokes problems of type 4
276 // all blocks Aij
277 // WITH B1T, B2T (gradient blocks)
278 // WITH right hand sides
279 // ======================================================================
280 
281 int NSType4NLEquOrdN_Terms = 8;
282 MultiIndex2D NSType4NLEquOrdDerivatives[8] = { D10, D01, D00, D20, D02,
283  D10, D01, D00 };
284 int NSType4NLEquOrdSpaceNumbers[8] = { 0, 0, 0, 0, 0, 1, 1, 1 };
285 int NSType4NLEquOrdN_Matrices = 8;
286 int NSType4NLEquOrdRowSpace[8] = { 0, 0, 0, 0, 0, 0, 1, 1 };
287 int NSType4NLEquOrdColumnSpace[8] = { 0, 0, 0, 0, 1, 1, 0, 0 };
288 int NSType4NLEquOrdN_Rhs = 2;
289 int NSType4NLEquOrdRhsSpace[2] = { 0, 0 };
290 
291 // ======================================================================
292 // declaration for all Navier-Stokes problems of type 4
293 // all blocks Aij
294 // WITH B1T, B2T (gradient blocks)
295 // WITH right hand sides
296 // ======================================================================
297 
298 int NSType4NLSmagorinskyN_Terms = 3;
299 MultiIndex2D NSType4NLSmagorinskyDerivatives[3] = { D10, D01, D00 };
300 int NSType4NLSmagorinskySpaceNumbers[3] = { 0, 0, 0 };
301 int NSType4NLSmagorinskyN_Matrices = 4;
302 int NSType4NLSmagorinskyRowSpace[4] = { 0, 0, 0, 0 };
303 int NSType4NLSmagorinskyColumnSpace[4] = { 0, 0, 0, 0 };
304 int NSType4NLSmagorinskyN_Rhs = 0;
305 int *NSType4NLSmagorinskyRhsSpace = NULL;
306 
307 
308 // ======================================================================
309 // declaration for all Navier-Stokes problems of type 4
310 // main diagonal blocks A11, A12, A21, A22
311 // WITH right hand sides
312 // for Newton method
313 // ======================================================================
314 
315 int NSType4NLNewtonN_Matrices = 4;
316 int NSType4NLNewtonRowSpace[4] = { 0, 0, 0, 0 };
317 int NSType4NLNewtonColumnSpace[4] = { 0, 0, 0, 0 };
318 int NSType4NLNewtonN_Rhs = 2;
319 int NSType4NLNewtonRhsSpace[2] = {0, 0};
320 // ======================================================================
321 // declaration for all Navier-Stokes problems of type 4
322 // main diagonal blocks A11, A12, A21, A22
323 // WITH right hand sides
324 // for Newton method and sdfem
325 // ======================================================================
326 
327 int NSType4NLSDNewtonN_Matrices = 6;
328 int NSType4NLSDNewtonRowSpace[6] = { 0, 0, 0, 0 , 0, 0};
329 int NSType4NLSDNewtonColumnSpace[6] = { 0, 0, 0, 0, 1, 1};
330 /*
331 // ======================================================================
332 // declarations for auxiliary problem for differential filter
333 // one matrix
334 // two rhs
335 // ======================================================================
336 
337 int Filter_N_Terms = 3;
338 MultiIndex2D Filter_Derivatives[3] = { D10, D01, D00};
339 int Filter_SpaceNumbers[3] = { 0, 0, 0};
340 int Filter_N_Matrices = 1;
341 int Filter_RowSpace[1] = { 0 };
342 int Filter_ColumnSpace[1] = { 0 };
343 int Filter_N_Rhs = 2;
344 int Filter_RhsSpace[2] = { 0, 0 };
345 */
346 // ======================================================================
347 // declaration for pressure separation
348 // only rhs
349 // ======================================================================
350 
351 
352 int NSPressSepN_Terms = 1;
353 MultiIndex2D NSPressSepDerivatives[1] = { D00 };
354 int NSPressSepSpaceNumbers[1] = { 0 };
355 int NSPressSepN_Matrices = 0;
356 int *NSPressSepRowSpace = NULL;
357 int *NSPressSepColumnSpace = NULL;
358 int NSPressSepN_Rhs = 2;
359 int NSPressSepRhsSpace[2] = { 0, 0 };
360 
361 // ======================================================================
362 // declaration for pressure separation
363 // with auxiliary problem
364 // ======================================================================
365 
366 int NSPressSepAuxProbN_Terms = 2;
367 MultiIndex2D NSPressSepAuxProbDerivatives[2] = { D10, D01 };
368 int NSPressSepAuxProbSpaceNumbers[2] = { 0, 0 };
369 int NSPressSepAuxProbN_Matrices = 1;
370 int NSPressSepAuxProbRowSpace[1] = { 0 };
371 int NSPressSepAuxProbColumnSpace[1] = { 0 };
372 int NSPressSepAuxProbN_Rhs = 1;
373 int NSPressSepAuxProbRhsSpace[1] = { 0 };
374 
375 // ======================================================================
376 // declaration for computation of rhs for RFB
377 // only rhs
378 // ======================================================================
379 
380 int NSRFBRhsN_Terms = 1;
381 MultiIndex2D NSRFBRhsDerivatives[1] = { D00 };
382 int NSRFBRhsSpaceNumbers[1] = { 0 };
383 int NSRFBRhsN_Matrices = 0;
384 int *NSRFBRhsRowSpace = NULL;
385 int *NSRFBRhsColumnSpace = NULL;
386 int NSRFBRhsN_Rhs = 2;
387 int NSRFBRhsRhsSpace[2] = { 0, 0 };
388 
389 
390 // ======================================================================
391 // Type 4, VMSProjection, D(u):D(v)
392 // ======================================================================
393 int NSType4VMSProjectionN_Terms = 5;
394 MultiIndex2D NSType4VMSProjectionDerivatives[5] = { D10, D01, D00, D00, D00 };
395 int NSType4VMSProjectionSpaceNumbers[5] = { 0, 0, 0, 1, 3 };
396 int NSType4VMSProjectionN_Matrices = 13;
397 int NSType4VMSProjectionRowSpace[13] = { 0, 0, 0, 0,
398  3, 1, 1, 0, 0, 0, 0, 3, 3};
399 int NSType4VMSProjectionColumnSpace[13] = { 0, 0, 0, 0,
400  3, 0, 0, 1, 1, 3, 3, 0, 0};
401 
402  // ======================================================================
403 // Type 4, VMSProjection, D(u):D(v) and CST
404 // ======================================================================
405 int NSType4VMSProjection_CST_N_Terms = 5;
406 MultiIndex2D NSType4VMSProjection_CST_Derivatives[5] = { D10, D01, D00, D00, D00 };
407 int NSType4VMSProjection_CST_SpaceNumbers[5] = { 0, 0, 0, 1, 4 };
408 int NSType4VMSProjection_CST_N_Matrices = 13;
409 int NSType4VMSProjection_CST_RowSpace[13] = { 0, 0, 0, 0,
410  4, 1, 1, 0, 0, 0, 0, 4, 4};
411 int NSType4VMSProjection_CST_ColumnSpace[13] = { 0, 0, 0, 0,
412  4, 0, 0, 1, 1, 4, 4, 0, 0};
413 
414 // ======================================================================
415 // declaration for computation of rhs for CST
416 // only rhs
417 // ======================================================================
418 
419 int NSCSTRhsN_Terms = 3;
420 MultiIndex2D NSCSTRhsDerivatives[3] = { D10, D01, D00 };
421 int NSCSTRhsSpaceNumbers[3] = { 0,0,0 };
422 int NSCSTRhsN_Matrices = 0;
423 int *NSCSTRhsRowSpace = NULL;
424 int *NSCSTRhsColumnSpace = NULL;
425 int NSCSTRhsN_Rhs = 2;
426 int NSCSTRhsRhsSpace[2] = { 0, 0 };