ParMooN
 All Classes Functions Variables Friends Pages
NSE3D_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, B3 (divergence blocks)
8 // ======================================================================
9 
10 int NSType1N_Terms = 5;
11 MultiIndex3D NSType1Derivatives[5] = { D100, D010, D001, D000, D000 };
12 int NSType1SpaceNumbers[5] = { 0, 0, 0, 0, 1 };
13 int NSType1N_Matrices = 4;
14 int NSType1RowSpace[4] = { 0, 1, 1, 1 };
15 int NSType1ColumnSpace[4] = { 0, 0, 0, 0 };
16 int NSType1N_Rhs = 3;
17 int NSType1RhsSpace[3] = { 0, 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 = 4;
26 MultiIndex3D NSType1NLDerivatives[4] = { D100, D010, D001, D000 };
27 int NSType1NLSpaceNumbers[4] = { 0, 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 = 3;
35 int NSType1NLSDFEMRhsSpace[3] = {0, 0, 0};
36 
37 // ======================================================================
38 // VMSProjection
39 // ======================================================================
40 int NSType1VMSProjectionN_Terms = 6;
41 MultiIndex3D NSType1VMSProjectionDerivatives[6] = { D100, D010, D001, D000, D000, D000 };
42 int NSType1VMSProjectionSpaceNumbers[6] = { 0, 0, 0, 0, 1, 2 };
43 int NSType1VMSProjectionN_Matrices = 11;
44 int NSType1VMSProjectionRowSpace[11] = { 0, 2, 1, 1, 1,
45  0, 0, 0, 2, 2, 2};
46 int NSType1VMSProjectionColumnSpace[11] = { 0, 2, 0, 0, 0,
47  2, 2, 2, 0, 0, 0};
48 
49 int NSType1_2NLVMSProjectionN_Terms = 5;
50 MultiIndex3D NSType1_2NLVMSProjectionDerivatives[5] = { D100, D010, D001, D000, D000 };
51 int NSType1_2NLVMSProjectionSpaceNumbers[5] = { 0, 0, 0, 0, 1 };
52 int NSType1_2NLVMSProjectionN_Matrices = 4;
53 int NSType1_2NLVMSProjectionRowSpace[4] = { 0, 0, 0, 0};
54 int NSType1_2NLVMSProjectionColumnSpace[4] = { 0, 1, 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, B3 (divergence blocks),
62 // B1T, B2T, B3T (gradient blocks)
63 // ======================================================================
64 
65 int NSType2N_Terms = 5;
66 MultiIndex3D NSType2Derivatives[5] = { D100, D010, D001, D000, D000 };
67 int NSType2SpaceNumbers[5] = { 0, 0, 0, 0, 1 };
68 int NSType2N_Matrices = 7;
69 int NSType2RowSpace[7] = { 0, 1, 1, 1, 0, 0, 0 };
70 int NSType2ColumnSpace[7] = { 0, 0, 0, 0, 1, 1, 1};
71 int NSType2N_Rhs = 3;
72 int NSType2RhsSpace[3] = { 0, 0, 0 };
73 
74 // ======================================================================
75 // declaration for all Navier-Stokes problems of type 2
76 // one A block,
77 // WITH B1, B2, B3, B1T, B2T, B3T
78 // WITH right hand sides
79 // ======================================================================
80 
81 int NSType2SDN_Terms = 8;
82 MultiIndex3D NSType2SDDerivatives[8] = { D100, D010, D001, D000,
83  D100, D010, D001, D000};
84 int NSType2SDSpaceNumbers[8] = { 0, 0, 0, 0, 1, 1, 1, 1 };
85 int NSType2SDN_Matrices = 7;
86 int NSType2SDRowSpace[7] = { 0, 1, 1, 1, 0, 0, 0 };
87 int NSType2SDColumnSpace[7] = { 0, 0, 0, 0, 1, 1, 1 };
88 int NSType2SDN_Rhs = 3;
89 int NSType2SDRhsSpace[3] = { 0, 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 = 4;
99 MultiIndex3D NSType2NLDerivatives[4] = { D100, D010, D001, D000 };
100 int NSType2NLSpaceNumbers[4] = { 0, 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, B3T (gradient blocks)
112 // WITH right hand sides
113 // ======================================================================
114 
115 int NSType2NLSDN_Terms = 8;
116 MultiIndex3D NSType2NLSDDerivatives[8] = { D100, D010, D001, D000,
117  D100, D010, D001, D000 };
118 int NSType2NLSDSpaceNumbers[8] = { 0, 0, 0, 0, 1, 1, 1, 1 };
119 int NSType2NLSDN_Matrices = 4;
120 int NSType2NLSDRowSpace[4] = { 0, 0, 0, 0 };
121 int NSType2NLSDColumnSpace[4] = { 0, 1, 1, 1 };
122 int NSType2NLSDN_Rhs = 3;
123 int NSType2NLSDRhsSpace[3] = { 0, 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 = 5;
134 MultiIndex3D NSType3Derivatives[5] = { D100, D010, D001, D000, D000 };
135 int NSType3SpaceNumbers[5] = { 0, 0, 0, 0, 1 };
136 int NSType3N_Matrices = 12;
137 int NSType3RowSpace[12] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1 };
138 int NSType3ColumnSpace[12] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
139 int NSType3N_Rhs = 3;
140 int NSType3RhsSpace[3] = { 0, 0, 0 };
141 
142 // ======================================================================
143 // declaration for all Navier-Stokes problems of type 3
144 // main diagonal blocks A11, A22, A33
145 // WITHOUT right hand sides
146 // ======================================================================
147 
148 int NSType3NLN_Terms = 4;
149 MultiIndex3D NSType3NLDerivatives[4] = { D100, D010, D001, D000 };
150 int NSType3NLSpaceNumbers[4] = { 0, 0, 0, 0 };
151 int NSType3NLN_Matrices = 3;
152 int NSType3NLRowSpace[3] = { 0, 0, 0 };
153 int NSType3NLColumnSpace[3] = { 0, 0, 0 };
154 int NSType3NLN_Rhs = 0;
155 int *NSType3NLRhsSpace = NULL;
156 
157 int NSType3_4NLNewtonN_Matrices = 9;
158 int NSType3_4NLNewtonRowSpace[9] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 };
159 int NSType3_4NLNewtonColumnSpace[9] = { 0, 0, 0, 0, 0, 0, 0, 0, 0};
160 int NSType3_4NLNewtonN_Rhs = 3;
161 int NSType3_4NLNewtonRhsSpace[3] = { 0, 0, 0 };
162 
163 // ======================================================================
164 // declaration for all Navier-Stokes problems of type 3
165 // all blocks Aij
166 // WITHOUT right hand sides
167 // ======================================================================
168 
169 int NSType3NLSmagorinskyN_Terms = 4;
170 MultiIndex3D NSType3NLSmagorinskyDerivatives[4] = { D100, D010, D001, D000 };
171 int NSType3NLSmagorinskySpaceNumbers[4] = { 0, 0, 0, 0 };
172 int NSType3NLSmagorinskyN_Matrices = 9;
173 int NSType3NLSmagorinskyRowSpace[9] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 };
174 int NSType3NLSmagorinskyColumnSpace[9] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 };
175 int NSType3NLSmagorinskyN_Rhs = 0;
176 int *NSType3NLSmagorinskyRhsSpace = NULL;
177 
178 /**************************** NSTYPE == 4 ******************************/
179 
182 // ======================================================================
183 // declaration for all Navier-Stokes problems of type 4
184 // all nine A blocks,
185 // B1, B2, B3 (divergence blocks),
186 // B1T, B2T, B3T (gradient blocks)
187 // ======================================================================
188 
189 int NSType4N_Terms = 5;
190 MultiIndex3D NSType4Derivatives[5] = { D100, D010, D001, D000, D000 };
191 int NSType4SpaceNumbers[5] = { 0, 0, 0, 0, 1 };
192 int NSType4N_Matrices = 15;
193 int NSType4RowSpace[15] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0 };
194 int NSType4ColumnSpace[15] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1};
195 int NSType4N_Rhs = 3;
196 int NSType4RhsSpace[3] = { 0, 0, 0 };
197 
198 // ======================================================================
199 // declaration for all Navier-Stokes problems of type 4
200 // all four A blocks,
201 // B1, B2 (divergence blocks),
202 // B1T, B2T (gradient blocks)
203 // ======================================================================
204 
205 int NSType4SDN_Terms = 8;
206 MultiIndex3D NSType4SDDerivatives[8] = { D100, D010, D001, D000,
207  D100, D010, D001, D000 };
208 int NSType4SDSpaceNumbers[8] = { 0, 0, 0, 0, 1, 1, 1, 1 };
209 int NSType4SDN_Matrices = 15;
210 int NSType4SDRowSpace[15] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0 };
211 int NSType4SDColumnSpace[15] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1};
212 int NSType4SDN_Rhs = 3;
213 int NSType4SDRhsSpace[3] = { 0, 0, 0 };
214 
217 // ======================================================================
218 // declaration for all Navier-Stokes problems of type 4
219 // main diagonal blocks A11, A22
220 // WITHOUT B1T, B2T (gradient blocks)
221 // WITHOUT right hand sides
222 // ======================================================================
223 
224 int NSType4NLN_Terms = 4;
225 MultiIndex3D NSType4NLDerivatives[4] = { D100, D010, D001, D000 };
226 int NSType4NLSpaceNumbers[4] = { 0, 0, 0, 0 };
227 int NSType4NLN_Matrices = 3;
228 int NSType4NLRowSpace[3] = { 0, 0, 0 };
229 int NSType4NLColumnSpace[3] = { 0, 0, 0 };
230 int NSType4NLN_Rhs = 0;
231 int *NSType4NLRhsSpace = NULL;
232 
233 // ======================================================================
234 // declaration for all Navier-Stokes problems of type 4
235 // all blocks Aij
236 // WITH B1T, B2T (gradient blocks)
237 // WITH right hand sides
238 // ======================================================================
239 
240 int NSType4NLSDN_Terms = 8;
241 MultiIndex3D NSType4NLSDDerivatives[8] = { D100, D010, D001, D000,
242  D100, D010, D001, D000 };
243 int NSType4NLSDSpaceNumbers[8] = { 0, 0, 0, 0, 1, 1, 1, 1 };
244 int NSType4NLSDN_Matrices = 6;
245 int NSType4NLSDRowSpace[6] = { 0, 0, 0, 0, 0, 0 };
246 int NSType4NLSDColumnSpace[6] = { 0, 0, 0, 1, 1, 1 };
247 int NSType4NLSDN_Rhs = 3;
248 int NSType4NLSDRhsSpace[3] = { 0, 0, 0 };
249 
250 // ======================================================================
251 // declaration for all Navier-Stokes problems of type 4
252 // all blocks Aij
253 // WITH B1T, B2T (gradient blocks)
254 // WITH right hand sides
255 // ======================================================================
256 
257 int NSType4NLSD_DivDiv_N_Matrices = 12;
258 int NSType4NLSD_DivDiv_RowSpace[12] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
259 int NSType4NLSD_DivDiv_ColumnSpace[12] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1 };
260 
261 // ======================================================================
262 // declaration for all Navier-Stokes problems of type 4
263 // all blocks Aij
264 // without right hand sides
265 // ======================================================================
266 
267 int NSType4NLSmagorinskyN_Terms = 4;
268 MultiIndex3D NSType4NLSmagorinskyDerivatives[4] = { D100, D010, D001, D000 };
269 int NSType4NLSmagorinskySpaceNumbers[4] = { 0, 0, 0, 0 };
270 int NSType4NLSmagorinskyN_Matrices = 9;
271 int NSType4NLSmagorinskyRowSpace[9] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 };
272 int NSType4NLSmagorinskyColumnSpace[9] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 };
273 int NSType4NLSmagorinskyN_Rhs = 0;
274 int *NSType4NLSmagorinskyRhsSpace = NULL;
275 
276 // ======================================================================
277 // declaration for pressure separation
278 // only rhs
279 // ======================================================================
280 
281 int NSPressSepN_Terms = 1;
282 MultiIndex3D NSPressSepDerivatives[1] = { D000 };
283 int NSPressSepSpaceNumbers[1] = { 0 };
284 int NSPressSepN_Matrices = 0;
285 int *NSPressSepRowSpace = NULL;
286 int *NSPressSepColumnSpace = NULL;
287 int NSPressSepN_Rhs = 3;
288 int NSPressSepRhsSpace[3] = { 0, 0, 0 };
289 
290 // ======================================================================
291 // declaration for pressure separation
292 // with auxiliary problem
293 // information for ansatz and test functions
294 // ======================================================================
295 int NSPressSepAuxProbN_Terms = 3;
296 MultiIndex3D NSPressSepAuxProbDerivatives[3] = { D100, D010, D001 };
297 int NSPressSepAuxProbSpaceNumbers[3] = { 0, 0, 0 };
298 int NSPressSepAuxProbN_Matrices = 1;
299 int NSPressSepAuxProbRowSpace[1] = { 0 };
300 int NSPressSepAuxProbColumnSpace[1] = { 0 };
301 int NSPressSepAuxProbN_Rhs = 1;
302 int NSPressSepAuxProbRhsSpace[1] = { 0 };
303 
304 // ======================================================================
305 // declaration for computation of rhs for RFB
306 // only rhs
307 // ======================================================================
308 
309 int NSRFBRhsN_Terms = 1;
310 MultiIndex3D NSRFBRhsDerivatives[1] = { D000 };
311 int NSRFBRhsSpaceNumbers[1] = { 0 };
312 int NSRFBRhsN_Matrices = 0;
313 int *NSRFBRhsRowSpace = NULL;
314 int *NSRFBRhsColumnSpace = NULL;
315 int NSRFBRhsN_Rhs = 3;
316 int NSRFBRhsRhsSpace[3] = { 0, 0, 0 };