ParMooN
 All Classes Functions Variables Friends Pages
TCD2D.h
1 // ======================================================================
2 // TCD2D.h
3 //
4 // common declaration for time dependent convection diffusion problems
5 // ======================================================================
6 
7 #ifndef __TIMECONVDIFF2D__
8 #define __TIMECONVDIFF2D__
9 
10 #include <Enumerations.h>
11 #include <FESpace2D.h>
12 #include <ConvDiff2D.h>
13 // ======================================================================
14 // definitions for assembling the mass matrix and rhs
15 // ======================================================================
16 
17 
18 
19 // ======================================================================
20 // definitions for assembling the matrices for VMM
21 // ======================================================================
22 /*
23 // number of fe functions
24 int N_Terms_Matrices_VMM = 4;
25 
26 // derivatives needed for fe functions
27 // D10 = derivative w.r.t. x
28 // D01 = derivative w.r.t. y
29 // D00 = function itself
30 MultiIndex2D Derivatives_Matrices_VMM[4] = { D10, D01, D10, D01};
31 
32 // fe spaces where the functions belong to
33 // 0 - fine space
34 // 1 - coarse space
35 int SpacesNumbers_Matrices_VMM[4] = { 0, 0, 1, 1};
36 
37 // number of matrices to assemble (M, B, C)
38 int N_Matrices_Matrices_VMM = 3;
39 
40 // fe element space which determines the number of rows in
41 // the matrices
42 // M - coarse space
43 // B - fine space
44 // C - coarse space
45 int RowSpace_Matrices_VMM[3] = { 1, 0, 1 };
46 
47 
48 // fe element space which determines the number of columns in
49 // the matrices
50 // M - coarse space
51 // B - coarse space
52 // C - fine space
53 int ColumnSpace_Matrices_VMM[3] = { 1, 1, 0 };
54 
55 // number of right hand sides
56 int N_Rhs_Matrices_VMM = 0;
57 
58 // fe space which determines the length of the rhs vector
59 int *RhsSpace_Matrices_VMM = NULL;
60 
61 // routine to assemble the matrices and the rhs
62 void MatricesAssemble_VMM(double Mult, double *coeff, double *param,
63  double hK,
64  double **OrigValues, int *N_BaseFuncts,
65  double ***LocMatrices, double **LocRhs);
66 
67 // ======================================================================
68 // definitions for assembling the matrices for VMM on different grids
69 // as in the paper by Kaya and Layton (2002)
70 // ======================================================================
71 
72 // number of fe functions
73 int N_Terms_Matrices_VMM_KL02 = 2;
74 
75 // derivatives needed for fe functions
76 // D10 = derivative w.r.t. x
77 // D01 = derivative w.r.t. y
78 // D00 = function itself
79 MultiIndex2D Derivatives_Matrices_VMM_KL02[2] = { D10, D01};
80 
81 // fe spaces where the functions belong to
82 // 0 - fine space
83 // 1 - coarse space
84 int SpacesNumbers_Matrices_VMM_KL02[2] = { 0, 0};
85 
86 // number of matrices to assemble (M, B, C)
87 int N_Matrices_Matrices_VMM_KL02 = 5;
88 
89 // fe element space which determines the number of rows in
90 // the matrices
91 // M - coarse space
92 // B1 - fine space
93 // B2 - fine space
94 // C1 - coarse space
95 // C2 - coarse space
96 int RowSpace_Matrices_VMM_KL02[5] = { 1, 0, 0, 1, 1};
97 
98 
99 // fe element space which determines the number of columns in
100 // the matrices
101 // M - coarse space
102 // B1 - coarse space
103 // B2 - coarse space
104 // C1 - fine space
105 // C2 - fine space
106 int ColumnSpace_Matrices_VMM_KL02[5] = { 1, 1, 1, 0, 0 };
107 
108 // number of right hand sides
109 int N_Rhs_Matrices_VMM_KL02 = 0;
110 
111 // fe space which determines the length of the rhs vector
112 int *RhsSpace_Matrices_VMM_KL02 = NULL;
113 
114 // routine to assemble the matrices and the rhs
115 void MatricesAssemble_VMM_KL02(double Mult, double *coeff, double *param,
116  double hK,
117  double **OrigValues, int *N_BaseFuncts,
118  double ***LocMatrices, double **LocRhs);
119 
120 
121 // ======================================================================
122 // definitions for assembling the mass matrix for bulk problem
123 // ======================================================================
124 
125 int N_Terms_MatrixM_Bulk = 1;
126 MultiIndex2D Derivatives_MatrixM_Bulk[1] = { D00 };
127 int SpacesNumbers_MatrixM_Bulk[1] = { 0 };
128 int N_Matrices_MatrixM_Bulk = 1;
129 int RowSpace_MatrixM_Bulk[1] = { 0 };
130 int ColumnSpace_MatrixM_Bulk[1] = { 0 };
131 int N_Rhs_MatrixM_Bulk = 0;
132 int *RhsSpace_MatrixM_Bulk = NULL;
133 
134 void MatrixMAssemble_Bulk(double Mult, double *coeff, double *param,
135  double hK,
136  double **OrigValues, int *N_BaseFuncts,
137  double ***LocMatrices, double **LocRhs);
138 
139 // ======================================================================
140 // definitions for assembling the matrices A for bulk problem
141 // ======================================================================
142 
143 int N_Terms_MatricesA_SUPG_Bulk = 3;
144 MultiIndex2D Derivatives_MatricesA_SUPG_Bulk[3] = { D10, D01, D00 };
145 int SpacesNumbers_MatricesA_SUPG_Bulk[3] = { 0, 0, 0 };
146 int N_Matrices_MatricesA_SUPG_Bulk = 2;
147 int RowSpace_MatricesA_SUPG_Bulk[2] = { 0, 0 };
148 int ColumnSpace_MatricesA_SUPG_Bulk[2] = { 0, 0 };
149 int N_Rhs_MatricesA_SUPG_Bulk = 0;
150 int *RhsSpace_MatricesA_SUPG_Bulk = NULL;
151 
152 void MatricesA_Assemble_SUPG_Bulk(double Mult, double *coeff, double *param,
153  double hK,
154  double **OrigValues, int *N_BaseFuncts,
155  double ***LocMatrices, double **LocRhs);
156 
157 int N_Matrices_MatricesA_Galerkin_Bulk = 1;
158 int RowSpace_MatricesA_Galerkin_Bulk[1] = { 0 };
159 int ColumnSpace_MatricesA_Galerkin_Bulk[1] = { 0 };
160 
161 void MatricesA_Assemble_Bulk(double Mult, double *coeff, double *param,
162  double hK,
163  double **OrigValues, int *N_BaseFuncts,
164  double ***LocMatrices, double **LocRhs);
165 
166 void MatricesA_Assemble_Galerkin_Bulk(double Mult, double *coeff, double *param,
167  double hK,
168  double **OrigValues, int *N_BaseFuncts,
169  double ***LocMatrices, double **LocRhs);
170 
171 void MatricesA_Assemble_Galerkin_MOM(double Mult, double *coeff, double *param,
172  double hK,
173  double **OrigValues, int *N_BaseFuncts,
174  double ***LocMatrices, double **LocRhs);
175 
176 
177 // ======================================================================
178 // definitions for assembling the rhs for bulk problem
179 // ======================================================================
180 
181 int N_Terms_Rhs_SUPG_Bulk = 3;
182 MultiIndex2D Derivatives_Rhs_SUPG_Bulk[3] = { D10, D01, D00 };
183 int SpacesNumbers_Rhs_SUPG_Bulk[3] = { 0, 0, 0 };
184 int N_Matrices_Rhs_SUPG_Bulk = 0;
185 int *RowSpace_Rhs_SUPG_Bulk = NULL;
186 int *ColumnSpace_Rhs_SUPG_Bulk = NULL;
187 int N_Rhs_Rhs_SUPG_Bulk = 1;
188 int RhsSpace_Rhs_SUPG_Bulk[1] = { 0 };
189 
190 void Rhs_Assemble_SUPG_Bulk(double Mult, double *coeff, double *param,
191  double hK,
192  double **OrigValues, int *N_BaseFuncts,
193  double ***LocMatrices, double **LocRhs);
194 
195 int N_Terms_Rhs_Galerkin_Bulk = 1;
196 MultiIndex2D Derivatives_Rhs_Galerkin_Bulk[1] = { D00 };
197 int SpacesNumbers_Rhs_Galerkin_Bulk[1] = { 0 };
198 
199 void Rhs_Assemble_Bulk(double Mult, double *coeff, double *param,
200  double hK,
201  double **OrigValues, int *N_BaseFuncts,
202  double ***LocMatrices, double **LocRhs);
203 */
204 // ======================================================================
205 // definitions for assembling the matrix M, A and rhs for moving mesh
206 // ======================================================================
207 
208 
209 // int N_Terms_MatricesAKRhs_SUPG = 5;
210 // MultiIndex2D Derivatives_MatricesAKRhs_SUPG[5] = { D10, D01, D00, D20, D02 };
211 // int SpacesNumbers_MatricesAKRhs_SUPG[5] = { 0, 0, 0, 0, 0 };
212 // int N_Matrices_MatricesAKRhs_SUPG = 2;
213 // int RowSpace_MatricesAKRhs_SUPG[2] = { 0, 0 };
214 // int ColumnSpace_MatricesAKRhs_SUPG[2] = { 0, 0 };
215 // int N_Rhs_MatricesAKRhs_SUPG = 1;
216 // int RhsSpace_MatricesAKRhs_SUPG[1] = { 0 };
217 //
218 // int N_Matrices_MatricesAKRhs_SOLD = 3;
219 // int RowSpace_MatricesAKRhs_SOLD[3] = { 0, 0, 0 };
220 // int ColumnSpace_MatricesAKRhs_SOLD[3] = { 0, 0, 0 };
221 //
222 // void MatricesAKRhsAssemble_SUPG(double Mult, double *coeff, double *param,
223 // double hK,
224 // double **OrigValues, int *N_BaseFuncts,
225 // double ***LocMatrices, double **LocRhs);
226 
227 
228 
229 // ======================================================================
230 // parameter routine settings
231 // SOLD methods
232 // ======================================================================
233 /*
234 void TimeCDParamsSOLD(double *in, double *out);
235 
236 int TimeCDParamsSOLDN_FESpaces = 1;
237 int TimeCDParamsSOLDN_Fct = 2;
238 int TimeCDParamsSOLDN_ParamFct = 1;
239 int TimeCDParamsSOLDN_FEValues = 10;
240 int TimeCDParamsSOLDN_Params = 10;
241 int TimeCDParamsSOLDFEFctIndex[10] = { 0, 0, 0, 0, 0, 1, 1, 1, 1, 1};
242 MultiIndex2D TimeCDParamsSOLDFEMultiIndex[10] = { D00, D10, D01, D20, D02,
243  D00, D10, D01, D20, D02};
244 
245 ParamFct *TimeCDParamsSOLDFct[1] = { TimeCDParamsSOLD };
246 int TimeCDParamsSOLDBeginParam[1] = { 0 };
247 
248 // ======================================================================
249 // parameters for bulk problem
250 // ======================================================================
251 
252 void TimeCDParamsBulk(double *in, double *out);
253 
254 int TimeCDParamsBulkN_FESpaces = 2;
255 int TimeCDParamsBulkN_Fct = 3;
256 int TimeCDParamsBulkN_ParamFct = 1;
257 int TimeCDParamsBulkN_FEValues = 3;
258 int TimeCDParamsBulkN_Params = 3;
259 int TimeCDParamsBulkFEFctIndex[3] = { 0, 1, 2 };
260 MultiIndex2D TimeCDParamsBulkFEMultiIndex[3] = { D00, D00, D00 };
261 ParamFct *TimeCDParamsBulkFct[1] = { TimeCDParamsBulk };
262 int TimeCDParamsBulkBeginParam[1] = { 0 };
263 
264 void TimeCDParamsBulk_SOLD(double *in, double *out);
265 
266 int TimeCDParamsBulk_SOLDN_FESpaces = 3;
267 int TimeCDParamsBulk_SOLDN_Fct = 5;
268 int TimeCDParamsBulk_SOLDN_ParamFct = 1;
269 int TimeCDParamsBulk_SOLDN_FEValues = 10;
270 int TimeCDParamsBulk_SOLDN_Params = 13;
271 int TimeCDParamsBulk_SOLDFEFctIndex[10] = { 0, 1, 2, 3, 4, 3, 3, 5, 5, 5 };
272 MultiIndex2D TimeCDParamsBulk_SOLDFEMultiIndex[10] = { D00, D00, D00, D00, D00, D10, D01, D00,
273  D10, D01};
274 ParamFct *TimeCDParamsBulk_SOLDFct[1] = { TimeCDParamsBulk_SOLD };
275 int TimeCDParamsBulk_SOLDBeginParam[1] = { 0 };
276 
277 void TimeCDParamsBulk_Cc(double *in, double *out);
278 
279 int TimeCDParamsBulk_CcN_FESpaces = 5; // C_a, C_b, velo, C_c, integral_c_C
280 int TimeCDParamsBulk_CcN_Fct = 6; // C_a, C_b, u_1, u_2, C_c, integral_c_C
281 int TimeCDParamsBulk_CcN_ParamFct = 1; // number of ParamRout
282 int TimeCDParamsBulk_CcN_FEValues = 6; // C_a, C_b, u_1, u_2, C_c, integral_c_C
283 int TimeCDParamsBulk_CcN_Params = 6;
284 int TimeCDParamsBulk_CcFEFctIndex[6] = { 0, 1, 2, 3, 4, 5 };
285 MultiIndex2D TimeCDParamsBulk_CcFEMultiIndex[6] = { D00, D00, D00, D00, D00, D00 };
286 ParamFct *TimeCDParamsBulk_CcFct[1] = { TimeCDParamsBulk_Cc };
287 int TimeCDParamsBulk_CcBeginParam[1] = { 0 };
288 
289 void TimeCDParamsBulk_SOLD_Cc(double *in, double *out);
290 
291 int TimeCDParamsBulk_SOLD_CcN_FESpaces = 5; // C_a, C_b, velo, C_c, integral_c_C
292 int TimeCDParamsBulk_SOLD_CcN_Fct = 9; // C_a, C_b, u_1, u_2, C_c, integral_c_C
293  // C_c_old, C_a_old, C_b_old
294 int TimeCDParamsBulk_SOLD_CcN_ParamFct = 1; // number of ParamRout
295 int TimeCDParamsBulk_SOLD_CcN_FEValues = 13; // C_a, C_b, u_1, u_2, C_c, integral_c_C
296 int TimeCDParamsBulk_SOLD_CcN_Params = 13;
297 int TimeCDParamsBulk_SOLD_CcFEFctIndex[13] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 6, 6, 4, 4 };
298 MultiIndex2D TimeCDParamsBulk_SOLD_CcFEMultiIndex[13] = { D00, D00, D00, D00, D00, D00,
299  D00, D00, D00, D10, D01, D10, D01};
300 ParamFct *TimeCDParamsBulk_SOLD_CcFct[1] = { TimeCDParamsBulk_SOLD_Cc };
301 int TimeCDParamsBulk_SOLD_CcBeginParam[1] = { 0 };
302 
303 void TimeCDParamsBulk_mom(double *in, double *out);
304 
305 int TimeCDParamsBulk_momN_FESpaces = 3; // vel, c_C, mom_{k-1}
306 int TimeCDParamsBulk_momN_Fct = 4; // u_1, u_2, c_C, mom_{k-1}
307 int TimeCDParamsBulk_momN_ParamFct = 1; // number of ParamRout
308 int TimeCDParamsBulk_momN_FEValues = 4; // u_1, u_2, c_C, mom_{k-1}
309 int TimeCDParamsBulk_momN_Params = 4;
310 int TimeCDParamsBulk_momFEFctIndex[4] = { 0, 1, 2, 3};
311 MultiIndex2D TimeCDParamsBulk_momFEMultiIndex[4] = { D00, D00, D00, D00};
312 ParamFct *TimeCDParamsBulk_momFct[1] = { TimeCDParamsBulk_mom };
313 int TimeCDParamsBulk_momBeginParam[1] = { 0 };
314 
315 void TimeCDParamsBulk_SOLD_mom(double *in, double *out);
316 
317 int TimeCDParamsBulk_SOLD_momN_FESpaces = 3; // velo, C_c
318 int TimeCDParamsBulk_SOLD_momN_Fct = 4; // u_1, u_2, C_c, C_c_old
319 int TimeCDParamsBulk_SOLD_momN_ParamFct = 1; // number of ParamRout
320 int TimeCDParamsBulk_SOLD_momN_FEValues = 4; // u_1, u_2, C_c, C_c_old
321 int TimeCDParamsBulk_SOLD_momN_Params = 10;
322 int TimeCDParamsBulk_SOLD_momFEFctIndex[4] = { 0, 1, 2, 3 };
323 MultiIndex2D TimeCDParamsBulk_SOLD_momFEMultiIndex[4] = { D00, D00, D00, D00};
324 ParamFct *TimeCDParamsBulk_SOLD_momFct[1] = { TimeCDParamsBulk_SOLD_mom };
325 int TimeCDParamsBulk_SOLD_momBeginParam[1] = { 0 };
326 
327 
328 void JumpTermsForIMEX_P1(TFESpace2D *fespace,
329  TFEFunction2D *u,
330  BoundCondFunct2D *BoundaryConditions,
331  double *sold_param);
332 
333 // ======================================================================
334 //
335 // definitions for assembling the mass matrix for urea synthesis
336 //
337 // ======================================================================
338 
339 int N_Terms_MatrixM_Urea = 1;
340 MultiIndex2D Derivatives_MatrixM_Urea[1] = { D00 };
341 int SpacesNumbers_MatrixM_Urea[1] = { 0 };
342 int N_Matrices_MatrixM_Urea = 1;
343 int RowSpace_MatrixM_Urea[1] = { 0 };
344 int ColumnSpace_MatrixM_Urea[1]= { 0 };
345 int N_Rhs_MatrixM_Urea = 0;
346 int *RhsSpace_MatrixM_Urea = NULL;
347 
348 // ======================================================================
349 // definitions for assembling the matrices A for urea problem
350 // ======================================================================
351 
352 int N_Terms_MatricesA_SUPG_Urea = 3;
353 MultiIndex2D Derivatives_MatricesA_SUPG_Urea[3] = { D10, D01, D00 };
354 int SpacesNumbers_MatricesA_SUPG_Urea[3] = { 0, 0, 0 };
355 int N_Matrices_MatricesA_SUPG_Urea = 2;
356 int RowSpace_MatricesA_SUPG_Urea[2] = { 0, 0 };
357 int ColumnSpace_MatricesA_SUPG_Urea[2] = { 0, 0 };
358 int N_Rhs_MatricesA_SUPG_Urea = 0;
359 int *RhsSpace_MatricesA_SUPG_Urea = NULL;
360 
361 int N_Matrices_MatricesA_Galerkin_Urea = 1;
362 int RowSpace_MatricesA_Galerkin_Urea[1] = { 0 };
363 int ColumnSpace_MatricesA_Galerkin_Urea[1] = { 0 };
364 
365 // ======================================================================
366 // definitions for assembling the rhs for bulk problem
367 // ======================================================================
368 
369 int N_Terms_Rhs_SUPG_Urea = 3;
370 MultiIndex2D Derivatives_Rhs_SUPG_Urea[3] = { D10, D01, D00 };
371 int SpacesNumbers_Rhs_SUPG_Urea[3] = { 0, 0, 0 };
372 int N_Matrices_Rhs_SUPG_Urea = 0;
373 int *RowSpace_Rhs_SUPG_Urea = NULL;
374 int *ColumnSpace_Rhs_SUPG_Urea = NULL;
375 int N_Rhs_Rhs_SUPG_Urea = 1;
376 int RhsSpace_Rhs_SUPG_Urea[1] = { 0 };
377 // assembling routine same as in BULK
378 
379 int N_Terms_Rhs_Galerkin_Urea = 1;
380 MultiIndex2D Derivatives_Rhs_Galerkin_Urea[1] = { D00 };
381 int SpacesNumbers_Rhs_Galerkin_Urea[1] = { 0 };
382 // assembling routine same as in BULK
383 
384 
385 void TimeCDParamsUrea(double *in, double *out);
386 
387 int TimeCDParamsUreaN_FESpaces = 1;
388 int TimeCDParamsUreaN_Fct = 2;
389 int TimeCDParamsUreaN_ParamFct = 1;
390 int TimeCDParamsUreaN_FEValues = 2;
391 int TimeCDParamsUreaN_Params = 2;
392 int TimeCDParamsUreaFEFctIndex[2] = { 0, 1};
393 MultiIndex2D TimeCDParamsUreaFEMultiIndex[2] = { D00, D00 };
394 ParamFct *TimeCDParamsUreaFct[1] = { TimeCDParamsUrea };
395 int TimeCDParamsUreaBeginParam[1] = { 0 };
396 
397 void TimeCDParamsUrea_conc(double *in, double *out);
398 
399 int TimeCDParamsUrea_concN_FESpaces = 4; // conc, velocity, temp, integral_conce
400 int TimeCDParamsUrea_concN_Fct = 5; // u_1, u_2, conc, temp, integral_conce
401 int TimeCDParamsUrea_concN_ParamFct = 1; // number of ParamRout
402 int TimeCDParamsUrea_concN_FEValues = 5; // u_1, u_2, conc, temp integral_c_C
403 int TimeCDParamsUrea_concN_Params = 5;
404 int TimeCDParamsUrea_concFEFctIndex[5] = { 0, 1, 2, 3, 4 };
405 MultiIndex2D TimeCDParamsUrea_concFEMultiIndex[5] = { D00, D00, D00, D00, D00 };
406 ParamFct *TimeCDParamsUrea_concFct[1] = { TimeCDParamsUrea_conc };
407 int TimeCDParamsUrea_concBeginParam[1] = { 0 };
408 
409 void TimeCDParamsUrea_temp(double *in, double *out);
410 
411 int TimeCDParamsUrea_tempN_FESpaces = 4; // conc, velocity, temp, integral_conce
412 int TimeCDParamsUrea_tempN_Fct = 5; // u_1, u_2,, conc, temp, integral_conce
413 int TimeCDParamsUrea_tempN_ParamFct = 1; // number of ParamRout
414 int TimeCDParamsUrea_tempN_FEValues = 5; // u_1, u_2, , conc, temp integral_c_C
415 int TimeCDParamsUrea_tempN_Params = 5;
416 int TimeCDParamsUrea_tempFEFctIndex[5] = { 0, 1, 2, 3, 4};
417 MultiIndex2D TimeCDParamsUrea_tempFEMultiIndex[5] = { D00, D00, D00, D00, D00};
418 ParamFct *TimeCDParamsUrea_tempFct[1] = { TimeCDParamsUrea_temp };
419 int TimeCDParamsUrea_tempBeginParam[1] = { 0 };
420 
421 void TimeCDParamsUrea_conc2(double *in, double *out);
422 
423 int TimeCDParamsUrea_concN_FESpaces2 = 4; // conc, velocity, temp, integral_conce
424 int TimeCDParamsUrea_concN_Fct2 = 6; // u_1, u_2, u_3, conc, temp, integral_conce
425 int TimeCDParamsUrea_concN_ParamFct2 = 1; // number of ParamRout
426 int TimeCDParamsUrea_concN_FEValues2 = 6; // u_1, u_2, u_3, conc, temp integral_c_C
427 int TimeCDParamsUrea_concN_Params2 = 6;
428 int TimeCDParamsUrea_concFEFctIndex2[6] = { 0, 1, 2, 3, 4, 5};
429 MultiIndex2D TimeCDParamsUrea_concFEMultiIndex2[6] = { D00, D00, D00, D00, D00, D00};
430 ParamFct *TimeCDParamsUrea_concFct2[1] = { TimeCDParamsUrea_conc2 };
431 int TimeCDParamsUrea_concBeginParam2[1] = { 0 };
432 
433 void TimeCDParamsUrea_temp2(double *in, double *out);
434 
435 int TimeCDParamsUrea_tempN_FESpaces2 = 4; // conc, velocity, temp, integral_conce
436 int TimeCDParamsUrea_tempN_Fct2 = 6; // u_1, u_2, conc, temp, integral_conce
437 int TimeCDParamsUrea_tempN_ParamFct2 = 1; // number of ParamRout
438 int TimeCDParamsUrea_tempN_FEValues2 = 6; // u_1, u_2, conc, temp integral_c_C
439 int TimeCDParamsUrea_tempN_Params2 = 6;
440 int TimeCDParamsUrea_tempFEFctIndex2[6] = { 0, 1, 2, 3, 4, 5};
441 MultiIndex2D TimeCDParamsUrea_tempFEMultiIndex2[6] = { D00, D00, D00, D00, D00, D00};
442 ParamFct *TimeCDParamsUrea_tempFct2[1] = { TimeCDParamsUrea_temp2 };
443 int TimeCDParamsUrea_tempBeginParam2[1] = { 0 };
444 
445 
446 void TimeCDParamsUrea_conc_mat(double *in, double *out);
447 
448 int TimeCDParamsUrea_conc_matN_FESpaces = 1; // velocity
449 int TimeCDParamsUrea_conc_matN_Fct = 2; // u_1, u_2
450 int TimeCDParamsUrea_conc_matN_ParamFct = 1; // number of ParamRout
451 int TimeCDParamsUrea_conc_matN_FEValues = 2; // u_1, u_2
452 int TimeCDParamsUrea_conc_matN_Params = 2;
453 int TimeCDParamsUrea_conc_matFEFctIndex[2] = { 0, 1};
454 MultiIndex2D TimeCDParamsUrea_conc_matFEMultiIndex[2] = { D00, D00};
455 ParamFct *TimeCDParamsUrea_conc_matFct[1] = { TimeCDParamsUrea_conc_mat };
456 int TimeCDParamsUrea_conc_matBeginParam[1] = { 0 };
457 */
458 
459 
460 #endif