ParMooN
 All Classes Functions Variables Friends Pages
Database.h
1 // =======================================================================
2 // @(#)Database.h 1.23 06/27/00
3 //
4 // Class: TDatabase
5 // Purpose: database of needed refinement, mapping and
6 // shape descriptors as well as iterators
7 // parameter database
8 //
9 // Author: Volker Behns 24.07.97
10 //
11 // =======================================================================
12 #ifdef _MPI
13 # include "mpi.h"
14 #endif
15 
16 #ifdef _HYBRID
17  #include <omp.h>
18 #endif
19 
20 #ifndef __DATABASE__
21 #define __DATABASE__
22 
23 #include <Iterator.h>
24 #include <RefDesc.h>
25 #include <Constants.h>
26 
27 struct TParaDB
28 {
29  int VERSION;
30  // indicate what kind of problem is solved (T means time dependent)
31  // 0: not set
32  // 1: CD
33  // 2: TCD
34  // 3: Stokes
35  // 4: TStokes
36  // 5: NSE
37  // 6: TNSE
38  int PROBLEM_TYPE;
39 
40  //======================================================================
42  //======================================================================
43  char *GEOFILE;
44  char *BNDFILE;
45  char *GEOFILE_INTL;
46  char *BNDFILE_INTL;
47  char *MAPFILE;
48  char *OUTFILE;
49  char *PODFILE;
50 
51  int SAVESOL;
52 
53  char *BASENAME;
54  char *VTKBASENAME;
55  char *PSBASENAME;
56  char *GRAPEBASENAME;
57  char *GNUBASENAME;
58  char *READGRAPEBASENAME;
59  char *GMVBASENAME;
60  char *MATLABBASENAME;
61  char *OUTPUTDIR;
62  char *SAVE_DATA_FILENAME;
63  char *READ_DATA_FILENAME;
64  char *MATLAB_MATRIX;
65  char *SMESHFILE;
66 
67  char *POD_FILENAME;
68  char *SNAP_FILENAME;
69 
70  //======================================================================
72  //======================================================================
74  int SOLVER_TYPE;
75  int WRITE_PS;
76  int WRITE_GRAPE;
77  int WRITE_GNU;
78  int WRITE_GMV;
79  int WRITE_AMIRA;
80  int WRITE_VTK;
81  int WRITE_MATLAB;
82  int WRITE_MATLAB_MATRIX;
83  int SAVE_DATA;
84  int READ_DATA;
85  int READ_GRAPE_FILE;
86  int MEASURE_ERRORS;
87  int ESTIMATE_ERRORS;
88  int COMPUTE_VORTICITY_DIVERGENCE;
89  int MESH_TYPE;
90  int USE_PRM;
91 
92  int timeprofiling; //(time profiling)
93 
94  //======================================================================
96  //======================================================================
98  int TEST_ORDER;
99 
100  int VELOCITY_SPACE;
101  int PRESSURE_SPACE;
102  int PRESSURE_SEPARATION;
103 
104  int EXAMPLE; // used (and explained) in derived classes of Example2D
105  //======================================================================
107  //======================================================================
108 
110 
111  int LEVELS;
112  int UNIFORM_STEPS;
113  double DRIFT_X;
114  double DRIFT_Y;
115  double DRIFT_Z;
116  int NONLINEARIT_TYPE_NEWTON;
117  int REFINEMENT;
118  int GRID_TYPE;
119  int GRID_TYPE_1;
120  int GRID_TYPE_2;
121  double CHANNEL_GRID_STRETCH;
122  int MESHGEN_ALLOW_EDGE_REF;
123  int MESHGEN_REF_QUALITY;
124 
125  //======================================================================
127  //======================================================================
129  int ERROR_CONTROL;
130  int REFINE_STRATEGY;
131  int MAX_CELL_LEVEL;
132  double REFTOL;
133  double COARSETOL;
134  double MIN_FRACTION_TO_CHANGE;
135  double DECREASE_REFTOL_FACTOR;
136  double INCREASE_COARSETOL_FACTOR;
137  double FRACTION_OF_ERROR;
138  int CONVERT_QUAD_TO_TRI;
139  int N_CELL_LAYERS;
140 
141  //======================================================================
143  //======================================================================
144  // general
145  int DISCTYPE;
146  int USE_ISOPARAMETRIC;
147  int CELL_MEASURE;
148  // parameter for non-conforming elements
149  int NC_TYPE;
150 
151  // DISCTYPE for internal space, PBE
152  int INTL_DISCTYPE;
153 
156  double UPWIND_FLUX_DAMP;
157  int UPWIND_APPLICATION;
158 
159  // Shishkin meshes
160  int SHISHKIN_MESH;
161  double SHISHKIN_DIAM;
162 
164  int WEAK_BC;
165  double FACE_SIGMA;
166  double WEAK_BC_SIGMA;
167  double TAU;
168  double TAU2;
169  double TAU3;
170 
173  double DELTA0;
174  double DELTA1;
175  double SDFEM_POWER0;
176  int SDFEM_NORM_B;
177  double ADJOINT_FACTOR_4_OMEGA_EQ_0;
178  int CIP_TYPE;
181  int SOLD_PARAMETER_TYPE;
182  double SOLD_CONST;
183  double SOLD_POWER;
184  double SOLD_S;
185  double SOLD_U0;
186  int SOLD_PARAMETER_SCALING;
187  double SOLD_PARAMETER_SCALING_FACTOR;
188 
189  //======================================================================
191  //======================================================================
193  int NORMAL_ORIENTATION_TRIA[3];
194  int NORMAL_ORIENTATION_TETRA[4];
195  int NORMAL_ORIENTATION_HEXA[6];
196 
197  //======================================================================
199  //======================================================================
201  int LP_STREAMLINE;
202  int LP_DIVERGENCE;
203  int LP_PRESSURE;
204  int LP_CROSSWIND;
205  int LP_COEFF_TYPE;
206 
207  double LP_FULL_GRADIENT_COEFF;
208  double LP_STREAMLINE_COEFF;
209  double LP_DIVERGENCE_COEFF;
210  double LP_PRESSURE_COEFF;
211 
212  double LP_FULL_GRADIENT_EXPONENT;
213  double LP_STREAMLINE_EXPONENT;
214  double LP_DIVERGENCE_EXPONENT;
215  double LP_PRESSURE_EXPONENT;
216 
217  int LP_ORDER_DIFFERENCE;
218  int LP_FULL_GRADIENT_ORDER_DIFFERENCE;
219  int LP_STREAMLINE_ORDER_DIFFERENCE;
220  int LP_DIVERGENCE_ORDER_DIFFERENCE;
221  int LP_PRESSURE_ORDER_DIFFERENCE;
222 
223  int LP_CROSSWIND_COEFF_TYPE;
224  double LP_CROSSWIND_COEFF;
225  double LP_CROSSWIND_EXPONENT;
226 
227  //======================================================================
229  //======================================================================
231  int SOLD_ADJOINT;
232  int N_STAGES_ADJOINT;
233  int SC_NONLIN_ITE_ADJOINT;
234  int OPTIMIZATION_ITE_TYPE_ADJOINT;
235  int BFGS_VECTORS_ADJOINT;
236  int PENALTY_ADJOINT;
237  double RELATIVE_DECREASE_ADJOINT;
238  double PENALTY_VALUE_AT_ZERO_ADJOINT;
239  double PENALTY_SMALLEST_PARAM_FAC_ADJOINT;
240  double PENALTY_LARGEST_PARAM_FAC_ADJOINT;
241  double WEIGHT_RESIDUAL_L1_ADJOINT;
242  double WEIGHT_RESIDUAL_L2_ADJOINT;
243  double WEIGHT_GRADIENT_L1_ADJOINT;
244  double WEIGHT_GRADIENT_L2_ADJOINT;
245  double WEIGHT_STREAM_DER_L1_ADJOINT;
246  double WEIGHT_STREAM_DER_ORTHO_L1_ADJOINT;
247  double WEIGHT_STREAM_DER_ORTHO_L1_SQRT_ADJOINT;
248  double REG_POINT_STREAM_DER_ORTHO_L1_SQRT_ADJOINT;
249  double MIN_VAL_ADJOINT;
250  double MAX_VAL_ADJOINT;
251  double MIN_MAX_EXPONENT_ONE_ADJOINT;
252  double MIN_MAX_EXPONENT_TWO_ADJOINT;
253  double MIN_MAX_FACTOR_ONE_ADJOINT;
254  double MIN_MAX_FACTOR_TWO_ADJOINT;
255  double WEIGHT_RESIDUAL_LP_ADJOINT;
256  double WEIGHT_RESIDUAL_EXP_LP_ADJOINT;
257  double WEIGHT_RESIDUAL_CW_ADJOINT;
258  double RESIDUAL_LP_ADJOINT;
259  int MIN_MAX_ADJOINT;
260  int INITIAL_STEEPEST_DESCENT_ADJOINT;
261 
262 
265 
267  double REACTOR_P0;
268  double REACTOR_P1;
269  double REACTOR_P2;
270  double REACTOR_P3;
271  double REACTOR_P4;
272  double REACTOR_P5;
273  double REACTOR_P6;
274  double REACTOR_P7;
275  double REACTOR_P8;
276  double REACTOR_P9;
277  double REACTOR_P10;
278  double REACTOR_P11;
279  double REACTOR_P12;
280  double REACTOR_P13;
281  double REACTOR_P14;
282  double REACTOR_P15;
283  double REACTOR_P16;
284  double REACTOR_P17;
285  double REACTOR_P18;
286  double REACTOR_P19;
287  double REACTOR_P20;
288  double REACTOR_P21;
289  double REACTOR_P22;
290  double REACTOR_P23;
291  double REACTOR_P24;
292  double REACTOR_P25;
293  double REACTOR_P26;
294  double REACTOR_P27;
295  double REACTOR_P28;
296  double REACTOR_P29;
297  double REACTOR_P30;
298 
301  int FEM_FCT_PRELIMITING;
302 
303  int FEM_FCT_GROUP_FEM;
304  int GROUP_FEM;
307 
308  //======================================================================
310  //======================================================================
311 
313  double RE_NR;
314  double RA_NR;
315  double ROSSBY_NR;
316  double START_RE_NR;
317  double RE_NR_INCREMENT;
318  int FLOW_PROBLEM_TYPE;
319  int NSE_NONLINEAR_FORM;
320  int NSTYPE;
321  int LAPLACETYPE;
322  int DEFECT_CORRECTION_TYPE;
323  double OSEEN_ZERO_ORDER_COEFF;
324 
325  //======================================================================
327  //======================================================================
328  int DARCYTYPE;
329  double SIGMA_PERM;
330  //======================================================================
331 
332  double FR_NR;
333  double WB_NR;
334  double PR_NR;
335  double PE_NR;
336  double BI_NR;
337  double WEI_NR;
338  int Axial3D;
339  int Axial3DAxis;
340 
343  double FILTER_WIDTH_POWER;
344  double GAUSSIAN_GAMMA;
345  int CONVOLUTE_SOLUTION;
346 
349  int TURBULENT_VISCOSITY_TENSOR;
350  double TURBULENT_VISCOSITY_CONSTANT;
351  double TURBULENT_VISCOSITY_POWER;
352  double TURBULENT_VISCOSITY_SIGMA;
353 
356  int VMS_COARSE_MG_SMAGO;
357 
358  // constants in AdaptProjectionSpace
359  double VMS_ADAPT_LOWER;
360  double VMS_ADAPT_MIDDLE;
361  double VMS_ADAPT_UPPER;
362  int VMS_ADAPT_STEPS;
363  int VMS_ADAPT_COMP;
364 
365  double ARTIFICIAL_VISCOSITY_CONSTANT;
366  double ARTIFICIAL_VISCOSITY_POWER;
367  int VMM_COARSE_LEVEL;
368  int VMM_COARSE_SPACE_ORDER;
369  int RFB_SUBMESH_LAYERS;
370 
371  //======================================================================
374  //======================================================================
376  double FRICTION_POWER;
377  int FRICTION_TYPE;
378  double FRICTION_U0;
379  double PENETRATION_CONSTANT;
380  double PENETRATION_POWER;
381 
382  //======================================================================
384  //======================================================================
386  double DIV_DIV_STAB_C1;
387  double DIV_DIV_STAB_C2;
388 
389  //======================================================================
390  // ******** parameters for scalar system *********//
391  //======================================================================
392  // parameters for nonlinear iteration
393  int SC_NONLIN_ITE_TYPE_SCALAR;
394  int SC_NONLIN_MAXIT_SCALAR;
395  double SC_NONLIN_RES_NORM_MIN_SCALAR;
396  double SC_NONLIN_DAMP_FACTOR_SCALAR;
397 
398  // parameters for linear iteration
399  int SC_SOLVER_SCALAR;
400  int SC_PRECONDITIONER_SCALAR;
401  int SC_LIN_MAXIT_SCALAR;
402  double SC_LIN_RED_FACTOR_SCALAR;
403  double SC_LIN_RES_NORM_MIN_SCALAR;
404  int SC_FLEXIBLE_KRYLOV_SPACE_SOLVER;
405 
406  int SC_LIN_MAXIT_SCALAR_SOLD;
407  double SC_LIN_RED_FACTOR_SCALAR_SOLD;
408  double SC_LIN_RES_NORM_MIN_SCALAR_SOLD;
409 
410  // parameters which are used in multigrid for scalar problems
411  int SC_MG_TYPE_SCALAR;
412  int SC_MG_CYCLE_SCALAR;
413  int SC_SMOOTHER_SCALAR;
414  int SC_PRE_SMOOTH_SCALAR;
415  int SC_POST_SMOOTH_SCALAR;
416  double SC_SMOOTH_DAMP_FACTOR_SCALAR;
417  double SC_SMOOTH_DAMP_FACTOR_FINE_SCALAR;
418  double SC_SMOOTH_DAMP_FACTOR_COARSE_SCALAR;
419  int SC_COARSE_SMOOTHER_SCALAR;
420  int SC_COARSE_MAXIT_SCALAR;
421  double SC_COARSE_RED_FACTOR_SCALAR;
422  double SC_GMG_DAMP_FACTOR_SCALAR;
423  double SC_GMG_DAMP_FACTOR_FINE_SCALAR;
424  int SC_FIRST_SOLUTION_LEVEL_SCALAR;
425  int SC_COARSEST_LEVEL_SCALAR;
426 
427  int SC_STEP_LENGTH_CONTROL_FINE_SCALAR;
428  int SC_STEP_LENGTH_CONTROL_ALL_SCALAR;
429 
430  //======================================================================
431  // ******** parameters for saddle point system *********//
432  //======================================================================
433  // parameters for nonlinear iteration
434  int SC_NONLIN_ITE_TYPE_SADDLE;
435  int SC_NONLIN_MAXIT_SADDLE;
436  double SC_NONLIN_RES_NORM_MIN_SADDLE;
437  double SC_NONLIN_DAMP_FACTOR_SADDLE;
438  int SC_NONLIN_RES_NORM_MIN_SCALE_SADDLE;
439 
440  // parameters for linear iteration
441  int SC_SOLVER_SADDLE;
442  int SC_PRECONDITIONER_SADDLE;
443  int SC_LIN_MAXIT_SADDLE;
444  double SC_LIN_RED_FACTOR_SADDLE;
445  double SC_LIN_RES_NORM_MIN_SADDLE;
446 
447  // parameters which are used in multigrid for saddle point problems
448  int SC_MG_TYPE_SADDLE;
449  int SC_MG_CYCLE_SADDLE;
450  int SC_SMOOTHER_SADDLE;
451  int SC_PRE_SMOOTH_SADDLE;
452  int SC_POST_SMOOTH_SADDLE;
453  double SC_SMOOTH_DAMP_FACTOR_SADDLE;
454  double SC_SMOOTH_DAMP_FACTOR_FINE_SADDLE;
455  double SC_SMOOTH_DAMP_FACTOR_COARSE_SADDLE;
456  int SC_COARSE_SMOOTHER_SADDLE;
457  int SC_COARSE_MAXIT_SADDLE;
458  double SC_COARSE_RED_FACTOR_SADDLE;
459  double SC_GMG_DAMP_FACTOR_SADDLE;
460  double SC_GMG_DAMP_FACTOR_FINE_SADDLE;
461 
462  int SC_FIRST_SOLUTION_LEVEL_SADDLE;
463  int SC_COARSEST_LEVEL_SADDLE;
464 
465  int SC_STEP_LENGTH_CONTROL_FINE_SADDLE;
466  int SC_STEP_LENGTH_CONTROL_ALL_SADDLE;
467  int SC_LARGEST_DIRECT_SOLVE;
468  int SC_DOWNWIND_TYPE;
469 
470  //======================================================================
472  //======================================================================
473 
474  // coarsen context
475  double CC_ALPHA;
476  double CC_BETA;
477  int CC_MINCLUSTER;
478  int CC_MAXCLUSTER;
479  int CC_MAXDISTANCE;
480  int CC_MAXCONNECTIVITY;
481  int CC_DEPTHTARGET;
482  int CC_COARSENTARGET;
483  double CC_COARSENRATE;
484  int CC_MAJOR;
485  int CC_DEPENDENCY;
486  double CC_RESCALE;
487  int CC_VERBOSE;
488 
489  // solver context
490  int SC_SYSTEM_TYPE;
491  int SC_AMG_PREC_IT;
492  double SC_AMG_PREC_RED_FACTOR;
493  int SC_EX_MAXIT;
494  int SC_GMRES_RESTART;
495  int SC_LCD_START_VECTOR;
496  double SC_ILU_BETA;
497  double SC_SOR_OMEGA;
498  double SC_SMOOTHER_RED_FACTOR;
499  double SC_OMEGA_COARSE_0;
500  double SC_OMEGA_P_0;
501  double SC_ILUT_TOL;
502  int SC_ILUT_ABSOLUTE_FILLIN;
503  double SC_ILUT_RELATIVE_FILLIN;
504  int SC_ILUT_SORT;
505  int SC_SCHUR_INV_OF_A;
506  int SC_SCHUR_INV_OF_A_MAXIT;
507  double SC_SCHUR_ITERATION_DAMP;
508  int SC_SCHUR_ITERATION_MAXIT;
509  int SC_SCHUR_STEP_LENGTH_CONTROL;
510  int SC_MIXED_BCGS_CGS_SWITCH_TOL;
511  double SC_DIV_FACTOR;
512  double SC_NONLIN_DIV_FACTOR;
513  int SC_SMOOTHING_STEPS;
514  int SC_N1_PARAM;
515  int SC_N2_PARAM;
516  int SC_MINIT;
517  double SC_VAS_LAZ_DELTA;
518  int SC_ROW_EQUILIBRATION;
519  int SC_VERBOSE;
520  int SC_VERBOSE_AMG;
521 
522  int SC_BRAESS_SARAZIN_MATRIX;
523  double SC_BRAESS_SARAZIN_ALPHA;
524 
525  double CHAR_L0;
526  double D_VISCOSITY;
527  double SURF_TENSION;
528  double IMPACT_ANGLE;
529  double Area;
530  //======================================================================
532  //======================================================================
533  double P0;
534  double P1;
535  double P2;
536  double P3;
537  double P4;
538  double P5;
539  double P6;
540  double P7;
541  double P8;
542  double P9;
543  double P10;
544  double P11;
545  double P12;
546  double P13;
547  double P14;
548  double P15;
549  //======================================================================
551  //======================================================================
552 
553  int TENSOR_TYPE; // conformation stress tensor or deformation tensor in DEVSS
554 
555 
556  //======================================================================
558  //======================================================================
559  bool INTERFACE_FLOW; // free surface or Interface flow or not
560  int FS_MAGNETLAW; // 0 = Langevin, 1 = Vislovich
561  double FS_L; // characteristic length
562  double FS_U; // characteristic velocity
563  double FS_T; // characteristic time: T = L/U
564 
565  double FS_ETA; // dynamic viscosity
566  double FS_RHO; // fluid density
567  double FS_ALPHA; // coefficient of surface tension
568  double FS_G; // acceleration due to gravity
569 
570  double FS_MS; // saturation magnetisation
571  double FS_CHI0; // initial susceptibility
572 
573  double FS_HM; // mean field strength
574  double FS_DELTA_H; // amplitude for field oscillations
575  double FS_F; // oscillation frequency
576 
577  double FS_H0; // characteristic field strength
578  double FS_H1; // field inside for plane interface
579  double FS_H2; // field outside for plane interface
580 
581  double FS_LH; // layer height
582  double FS_GAMMA; // Langevin parameter
583  double FS_HT; // parameter for Vislovich approximation
584 
585  double FS_WE; // Weber number = Re*Ca
586 
587  char *FS_INNAME; // file name for reading surface position
588  char *FS_OUTNAME; // file name for writing surface position
589 
590  int FS_WRITE; // != 0 => write free surface
591  int FS_READ; // != 0 => read free surface
592 
593  double HEAT_TANGENTIAL_STRESS_FACTOR; // C_1/\sigma_sa
594  double HEAT_SOLID_SURFACE_FACTOR; // eps = (1/PE_NR)HEAT_SOLID_SURFACE_FACTOR
595  double EQ_CONTACT_ANGLE; // equilibrium contact angle
596  double AD_CONTACT_ANGLE; // advancing contact angle
597  double RE_CONTACT_ANGLE; // receding contact angle
598  double DY_CONTACT_ANGLE; // dynamic contact angle
599  int CONTACT_ANGLE_TYPE; // type of contact angle
600 
601  //======================================================================
603  //======================================================================
605 
606  //======================================================================
608  //======================================================================
610  double CYLINDER_22000_YPLUS_FRONT;
611  double CYLINDER_22000_YPLUS_BACK;
612 
613  //======================================================================
615  //======================================================================
617  int BULK_PB_DISC;
618  int BULK_PB_DISC_STAB;
619  int BULK_PB_DISC_FCT_GROUP;
620  int BULK_COUPLING;
621  int BULK_GROWTH_RATE;
622  int BULK_REACTION_MASS_LUMPING;
623  int BULK_METHODS_OF_MOMENTS;
624  int BULK_MOM_DISC;
625  int BULK_SOLD_PARAMETER_TYPE;
626  int N_CELL_LAYERS_PSD;
627  int N_CELL_LAYERS_PSD_2;
628  int OUTPUT_NODE_LAYER_PSD;
629  double BULK_REACTION_C_CUT;
630 
631  double BULK_l_infty;
632  double BULK_u_infty;
633  double BULK_c_infty;
634  double BULK_c_C_infty_sat;
635  double BULK_c_C_infty;
636  double BULK_f_infty;
637 
638  double BULK_density;
639  double BULK_dynamic_viscosity;
640 
641  double BULK_C_g;
642  double BULK_C_nuc;
643  double BULK_C_sat;
644  double BULK_C_2;
645  double BULK_D_A;
646  double BULK_D_P_0;
647  double BULK_D_P_MAX;
648  double BULK_k_g;
649  double BULK_k_r;
650  double BULK_k_nuc;
651  double BULK_D_P_MIN;
652 
653  //======================================================================
655  //======================================================================
656  double SSMUM_MP_X;
657  double SSMUM_MP_Y;
658  double SSMUM_INNER_RADIUS;
659  double SSMUM_OUTER_RADIUS;
660  double SSMUM_ROT_PER_SECOND;
661  double SSMUM_ANGLE;
662  int SSMUM_MAX_CELLS_LAYERS;
663  int SSMUM_INTERPOLATION;
664 
665  //======================================================================
667  //======================================================================
669  int WINDTUNNEL_CONFIGURATION;
670  int WINDTUNNEL_INTERPOLATION;
671  int WINDTUNNEL_STEADY;
672  int WINDTUNNEL_SPATIAL;
673  double WINDTUNNEL_BROWNIAN ;
674  int WINDTUNNEL_POL_ORDER;
675  int WINDTUNNEL_SHEAR_FACTOR_TYPE;
676  double WINDTUNNEL_SHEAR_FACTOR;
677  int WINDTUNNEL_QUAD_METHOD;
678  int WINDTUNNEL_MEASURE_MASS;
679  int WINDTUNNEL_LAYER_NUMBER_X;
680  int WINDTUNNEL_DIM_Y;
681  int WINDTUNNEL_DIM_Z;
682  int WINDTUNNEL_DIM_R;
683  //double WINDTUNNEL_Y[WINDTUNNEL_DIM_Y_CONST];
684  //double WINDTUNNEL_Z[WINDTUNNEL_DIM_Z_CONST];
685  double WINDTUNNEL_BOUND_VAL[WINDTUNNEL_DIM_Y_CONST][WINDTUNNEL_DIM_Z_CONST][2];
686  double WINDTUNNEL_BOUND_KOEFF[WINDTUNNEL_DIM_Y_CONST][WINDTUNNEL_DIM_Z_CONST];
687  double WINDTUNNEL_DROP_VELO[WINDTUNNEL_LAYER_NUMBER_X_CONST][WINDTUNNEL_DIM_Y_CONST][WINDTUNNEL_DIM_Z_CONST];
688  double WINDTUNNEL_BOUND_VAL_DROPS[WINDTUNNEL_DIM_Y_CONST][WINDTUNNEL_DIM_Z_CONST][WINDTUNNEL_DIM_R_CONST][2];
689  double WINDTUNNEL_ENVIR_COND;
690  double WINDTUNNEL_SUPERSAT;
691  double WINDTUNNEL_U_INFTY;
692  double WINDTUNNEL_L_INFTY;
693  double WINDTUNNEL_R_MIN;
694  double WINDTUNNEL_R_INFTY;
695  double WINDTUNNEL_R_INFTY_EXPERIMENT;
696  double WINDTUNNEL_F_INFTY;
697  double WINDTUNNEL_kinematic_viscosity;
698  double WINDTUNNEL_dynamic_viscosity;
699  double WINDTUNNEL_density;
700  //double WINDTUNNEL_BOUND_KOEFF[WINDTUNNEL_DIM_Y_CONST][WINDTUNNEL_DIM_Z_CONST];
701 
702  //======================================================================
704  //======================================================================
706  int UREA_PB_DISC;
707  int UREA_MODEL;
708  int UREA_PB_DISC_STAB;
709  int UREA_SOLD_PARAMETER_TYPE;
710  int UREA_PIPE;
711  int UREA_CONC_MAXIT;
712  double UREA_inflow_time;
713 
714  double UREA_l_infty;
715  double UREA_u_infty;
716  double UREA_c_infty;
717  double UREA_temp_infty;
718  double UREA_nu;
719  double UREA_rho;
720  double UREA_c_p;
721  double UREA_lambda;
722  double UREA_D_P_0;
723  double UREA_D_P_MAX;
724  double UREA_k_v;
725  double UREA_f_infty;
726  double UREA_m_mol;
727  double UREA_D_J;
728  double UREA_rho_d;
729  double UREA_k_g;
730  double UREA_delta_h_cryst;
731  double UREA_g;
732  double UREA_rho_sat_1;
733  double UREA_rho_sat_2;
734  double UREA_alfa_nuc;
735  double UREA_beta_nuc;
736  double UREA_INFLOW_SCALE;
737  double UREA_CONC_TOL;
738 
739  double UREA_AGGR_SPATIAL;
740  double UREA_AGGR_BROWNIAN;
741  double UREA_AGGR_POL_ORDER;
742  double UREA_AGGR_SHEAR_FACTOR_TYPE;
743  double UREA_AGGR_SHEAR_FACTOR;
744  double UREA_AGGR_BROWNIAN_TEMP;
745  double UREA_AGGR_BROWNIAN_SCAL;
746  double UREA_PIPE_RADIUS;
747  int PB_DISC_TYPE;
748  int PB_TIME_DISC;
749 
750  //======================================================================
752  //======================================================================
753 
755  double KDP_D_P_0_2;
756  double KDP_D_P_MAX_2;
757  double KDP_l_infty;
758  double KDP_u_infty;
759  double KDP_c_infty;
760  double KDP_temp_infty;
761  double KDP_nu;
762  double KDP_rho;
763  double KDP_rho_water;
764  double KDP_c_p;
765  double KDP_lambda;
766  double KDP_D_P_0;
767  double KDP_D_P_MAX;
768  double KDP_f_infty;
769  double KDP_m_mol;
770  double KDP_D_J;
771  double KDP_rho_d;
772  double KDP_k_g_1;
773  double KDP_k_g_2;
774  double KDP_k_b;
775  double KDP_delta_h_cryst;
776  double KDP_g_1;
777  double KDP_g_2;
778  double KDP_b;
779  double KDP_w_sat_1;
780  double KDP_w_sat_2;
781  double KDP_w_sat_3;
782  double KDP_w_sat_1_Ma;
783  double KDP_w_sat_2_Ma;
784  double KDP_w_sat_3_Ma;
785  double KDP_INFLOW_SCALE;
786  double KDP_CONC_TOL;
787  double KDP_INTERNAL_NUC_A;
788  double KDP_INTERNAL_NUC_B;
789 
790  int KDP_CONC_MAXIT;
791  double KDP_inflow_time;
792 
793  //======================================================================
795  //======================================================================
796  int StoDa_interfaceType; //Beavers-Joseph-Saffman or u.t=0
797  double StoDa_alpha; // from Beavers-Joseph-Saffman condition on interface
798  int StoDa_problemType; // Neumann--Neumann, Robin--Robin, ...
799  int StoDa_updatingStrategy; // update of the etas
800  double StoDa_theta_f; //damping in Stokes (flow) part
801  double StoDa_theta_p; //damping in Darcy (porous) part
802  double StoDa_gamma_f; // parameter for Robin condition on interface
803  double StoDa_gamma_p; // parameter for Robin condition on interface
804  double StoDa_weakGamma; // parameter for enforcing weak boundary conditions
805  double StoDa_solutionStrategy; // iterative (0), one big matrix (2), both (1)
806  int StoDa_algorithm; // Gauss--Seidel, Jacobi, ...
807  int StoDa_StokesFirst; // for Gauss--Seidel type method.
808  int StoDa_nIterations; // maximum number of iterations
809  // convergence criteria:
810  // interface error e = ( ||uS.n-uD.n||^2_L2 + ||nTn+pD||^2_L2 )^{1/2}
811  double StoDa_relDiff_interfaceError; // (e_k - e_{k+1})/e_k < this number
812  // E_k^2 = ( a1 * (||uS_{h,k}-uS_{h,k+1})/uS_{h,k} )^2
813  // +( a2 * (||pS_{h,k}-pS_{h,k+1})/pS_{h,k} )^2
814  // +( a3 * (||pD_{h,k}-pD_{h,k+1})/pD_{h,k} )^2
815  // a1,a2,a3 are the following
816  double StoDa_relDiff_factor1;
817  double StoDa_relDiff_factor2;
818  double StoDa_relDiff_factor3;
819  double StoDa_relDiff_solution; // E_k < this number
820  double StoDa_bigResidual; // residual of big System < this number
821  int StoDa_periodicBoundary; // true if there is a periodic boundary
822  // a prescribed pressure drop at the periodic boundary (to have a flow at all)
823  double StoDa_periodicBoundaryPressureDrop;
824 
825 
826  //======================================================================
830  //======================================================================
832  int INTERNAL_PROJECT_PRESSURE;
833  int INTERNAL_PRESSURE_SPACE;
834  int INTERNAL_SLIP_WITH_FRICTION;
835  int INTERNAL_SLIP_WITH_FRICTION_IDENTITY;
836  int INPUT_QUAD_RULE;
837  int INTERNAL_QUAD_HEXA;
838  int INTERNAL_QUAD_TETRA;
839  int INTERNAL_QUAD_QUAD;
840  int INTERNAL_QUAD_TRIA;
841  int INTERNAL_QUAD_RULE;
842  int INTERNAL_LOCAL_DOF;
843  int INTERNAL_PERIODIC_IDENTITY;
844  int INTERNAL_PROBLEM_IDENTITY;
845  int INTERNAL_LEVEL;
846  int INTERNAL_CONVECTION_EQ_VELOFIELD;
847  int INTERNAL_STEADY_STATE_MATRICES_OR_RHS;
848  int INTERNAL_AMG_SOLVES;
849  double INTERNAL_AMG_PREPARE_TIME;
850  int INTERNAL_GMRES_INFO;
851  int INTERNAL_POLYNOMIAL_DEGREE;
852  int INTERNAL_MESH_CELL_TYPE;
853  double INTERNAL_BULK_MEAN;
854  double INTERNAL_BULK_SIMULATION;
855  double INTERNAL_VERTEX_X[8];
856  double INTERNAL_VERTEX_Y[8];
857  double INTERNAL_VERTEX_Z[8];
858  double INTERNAL_HK_CONVECTION;
859  int INTERNAL_MEAN_COMPUTATION;
860  int INTERNAL_MOMENT;
861  int INTERNAL_LINEAR_SCHEME;
862  int INTERNAL_SOLD_ACTIVE;
863  int INTERNAL_UMFPACK_FLAG;
864  int INTERNAL_SORT_AMG;
865  int INTERNAL_FESPACE_CONSTRUCT;
866  int INTERNAL_DO_NOT_RESPECT_DIRICHLET_BC;
867 
868  double INTERNAL_COERCIVITY;
869  double *INTERNAL_P1_Array;
870  double *INTERNAL_WEIGHT_Array;
871  int *INTERNAL_INDICATOR_Array;
872  int INTERNAL_FACE_INTEGRALS;
873  int INTERNAL_NO_ESTIMATE_DIRICHLET_CELLS;
874  int INTERNAL_WRONG_NEUMANN_CHECKED;
875  double INTERNAL_BFGS_RESTART_ADJOINT;
876  int INTERNAL_ARRAY_LENGTH;
877  int INTERNAL_CELL;
878  int INTERNAL_OUTFLOW_BOUNDARY[10];
879  double INTERNAL_WEIGHT_SUPG_ADJOINT;
880  double INTERNAL_WEIGHT_SOLD_ADJOINT;
881  int INTERNAL_NEW_MATRICES_B;
882  int INTERNAL_FULL_MATRIX_STRUCTURE;
883  int INTERNAL_DISC_FLAG;
884  int INTERNAL_START_PARAM;
885 
886  // parameter for tetgen
887  double TETGEN_QUALITY;
888  double TETGEN_VOLUMEN;
889  int TETGEN_STEINER;
890 
891  //======================================================================
893  //======================================================================
894  int Par_P0; //out rank
895  int Par_P1; // 1 - root takes part in computation; 0 - not
896  int Par_P2; // mesh partition type: 1 - dual; 0 - nodal
897  int Par_P3; // 1 - use halocells; 0 - dont
898  int Par_P4; // 1-redistribution of masters 0-otherwise
899  int Par_P5;
900  int Par_P6;
901  int Par_P7;
902  int Par_P8;
903  int Par_P9;
904  int MapperType;
905  int DSType;
906  double Par_P10;
907  double Par_P11;
908  double Par_P12;
909  double Par_P13;
910  double Par_P14;
911  double Par_P15;
912  double Par_P16;
913  double Par_P17;
914  double Par_P18;
915  double Par_P19;
916  double Par_P20;
917 
918  //======================================================================
920  //======================================================================
922  int DO_ROM;
923  int DO_ROM_P;
924  int RANK_OF_BASIS;
925  int RANK_OF_BASIS_P;
926  int POD_INNER_PRODUCT;
927  int POD_INNER_PRODUCT_P;
928  int BUILD_PODFILE;
929  int POD_FLUCT_FIELD;
930  int POD_FLUCT_FIELD_P;
931  int P_ROM_METHOD;
932 
933  //======================================================================
935  //======================================================================
937 
938  //======================================================================
940  //======================================================================
941  int PBE_P0;
942  int PBE_P1;
943  int PBE_P2;
944  int PBE_P3;
945  int PBE_P4;
946  int PBE_P5;
947  int PBE_P6;
948  int PBE_P7;
949  int PBE_P8;
950  int PBE_P9;
951 
952  //======================================================================
954  //======================================================================
955  double DG_P0;
956  double DG_P1;
957  double DG_P2;
958  double DG_P3;
959  double DG_P4;
960  double DG_P5;
961  double DG_P6;
962  double DG_P7;
963  double DG_P8;
964  double DG_P9;
965 
966  //======================================================================
968  //======================================================================
969 
971 
972  int DEPENDENT_BASIS;
973  int DEPENDENT_BASIS_Q1;
974  int DEPENDENT_BASIS_Q2;
975 
976  #ifdef _MPI
977 
978  MPI_Comm Comm;
979  #endif
980 };
981 
982 typedef struct TParaDB TParamDB;
983 
984 struct TTimDB
985 {
986  double CURRENTTIME;
987  double CURRENTTIMESTEPLENGTH;
988  double TIMESTEPLENGTH;
989  double INTERNAL_STARTTIME;
990  double MIN_TIMESTEPLENGTH;
991  double MAX_TIMESTEPLENGTH;
992  double TIMESTEPLENGTH_TOL;
993  int TIMESTEPLENGTH_CONTROL;
994  int TIMESTEPLENGTH_CONTROLLER; // mlh
995  double TIMESTEPLENGTH_PARA_KK_I;
996  double TIMESTEPLENGTH_PARA_KK_P;
997  double TIMESTEPLENGTH_PARA_KK_E;
998  double TIMESTEPLENGTH_PARA_KK_R;
999  double TIMESTEPLENGTH_PARA_KK_D;
1000  double TIMESTEPLENGTH_PARA_FAC;
1001  double TIMESTEPLENGTH_PARA_FAC_MAX;
1002  double TIMESTEPLENGTH_PARA_FAC_MIN;
1003  double TIMESTEPLENGTH_PARA_TOL;
1004  double TIMESTEPLENGTH_PARA_ATOL;
1005  double TIMESTEPLENGTH_PARA_RTOL;
1006  int FIRST_SSC_STEP;
1007  int RESET_CURRENTTIME;
1008  double RESET_CURRENTTIME_STARTTIME;
1009  double STEADY_STATE_TOL;
1010  double SCALE_DIVERGENCE_CONSTRAINT;
1011 
1012  int CONTROL;
1013  double CONTROL_ALPHA;
1014  double CONTROL_BETA;
1015  double CONTROL_GAMMA;
1016  double CONTROL_SAFTY;
1017  double CONTROL_MAXSCALE;
1018  double CONTROL_MINSCALE;
1019 
1020  // control parameter
1021  double THETA1;
1022  double THETA2;
1023  double THETA3;
1024  double THETA4;
1025 
1026  int TIME_DISC;
1027  int TIME_DISC2;
1028 
1029  // start and end time
1030  double STARTTIME;
1031  double ENDTIME;
1032  double EXTRAPOLATE_WEIGHT;
1033  double EXTRAPOLATE_STEPS;
1034  int EXTRAPOLATE_PRESSURE;
1035  // between time steps
1036  int EXTRAPOLATE_VELOCITY;
1037 
1038  // parameter for individual use
1039  double T0;
1040  double T1;
1041  double T2;
1042  double T3;
1043  double T4;
1044  double T5;
1045  double T6;
1046  double T7;
1047  double T8;
1048  double T9;
1049 
1050  // write only every n-th time step
1051  int STEPS_PER_IMAGE;
1052  int STEPS_PER_SNAP;
1053 
1054  // parameters for Rosenbrock methods
1055  int RB_TYPE;
1056  int RB_TYPE2;
1057  int RB_SSC;
1058  double RB_SSC_TOL;
1059  double RB_SSC_ALPHA;
1060  double RB_SSC_ALPHA_MAX;
1061  double RB_SSC_ALPHA_MIN;
1062  double RB_SSC_MAX_ERROR;
1063 
1064  int RB_APPROX_J;
1065  int RB_APPROX_C;
1066  int RB_APPROX_STEPS;
1067 
1068  double RB_GAMMA_I;
1069  double RB_GAMMA_II;
1070  double RB_ALPHA_I;
1071  double RB_SIGMA_I;
1072  double RB_A_IJ[10];
1073  double RB_C_IJ[10];
1074  double RB_S_IJ[10];
1075  double RB_M_I;
1076  double RB_MS_I;
1077 
1078  // parameters for higher order Galerkin-type methods
1079  int INTERNAL_SYSTEMSIZE;
1080  double *INTERNAL_ALPHA;
1081  double *INTERNAL_BETA;
1082  double *VALUE_AT_ONE;
1083  double *VAL_AT_QUAD_POINTS;
1084  double *DER_AT_QUAD_POINTS;
1085  double *CORR_AT_QUAD_POINTS;
1086  double *DER_CORR_AT_QUAD_POINTS;
1087  double *DER_AT_START;
1088  double *DER_AT_ONE;
1089  double *DER_COR_AT_ONE;
1090  double NORMW;
1091  double *ZETA;
1092  double *WEIGHTS;
1093  int N_QUADPOINTS;
1094  int N_DEGREES;
1095  double *ALPHA0;
1096  double *BETA0;
1097  double *GAMMA0;
1098  double *CORRECTION;
1099  double *POINTS;
1100 
1101  double RK_A[5][5];
1102  double RK_c[5];
1103  double RK_b[5];
1104  double RK_e[5];
1105  int RK_ord; // Ordnung des RK-Verfahrens mlh
1106  int RK_ord_e; // Ordnung des eingebetteten RK-Verfahrens mlh
1107 
1108  //dG time steppings
1109  int DG_TimeDisc;
1110  int DG_Order;
1111 
1112 };
1113 
1114 typedef struct TTimDB TTimeDB;
1115 
1119 {
1120  public:
1123 
1126 
1128  static TMapper **MapperDB;
1129 
1132 
1135 
1137  static TTimeDB *TimeDB;
1138 
1139  public:
1140  // Constructors
1142  TDatabase();
1143 
1144  // Methods
1145 #ifdef __MORTAR__
1146 
1147  void AddMortar0(int Mortar_Ni, int N);
1149  void AddMortar1(int Mortar_Ni, int N);
1150 #endif
1151 
1152  // set default parameters
1153 
1154  static void SetDefaultParameters();
1155 
1156  static void WriteParamDB(char *ExecutedFile);
1157 
1158  static void WriteTimeDB();
1159 
1160  static void CheckParameterConsistencyNSE();
1161 };
1162 #endif
int WEAK_BC
Definition: Database.h:164
int OMPNUMTHREADS
Definition: Database.h:109
double CYLINDER_22000_YPLUS_SIDES
Definition: Database.h:609
int PROJECTION_METHOD
Definition: Database.h:936
double SSMUM_MP_X
Definition: Database.h:656
Definition: Mapper.h:28
int ADAPTIVE_REFINEMENT_CRITERION
Definition: Database.h:128
static void SetDefaultParameters()
Definition: Database.C:324
int WRITE_SNAPSHOTS
Definition: Database.h:921
Definition: Database.h:984
Definition: Database.h:27
static TMapper ** MapperDB
Definition: Database.h:1128
int UPWIND_ORDER
Definition: Database.h:155
int UREA_REACTION_DISC
Definition: Database.h:705
double P0
Definition: Database.h:533
static TTimeDB * TimeDB
Definition: Database.h:1137
double RE_NR
Definition: Database.h:313
double REACTOR_P0
Definition: Database.h:267
Definition: RefDesc.h:70
static TIterator ** IteratorDB
Definition: Database.h:1131
int TURBULENT_VISCOSITY_TYPE
Definition: Database.h:348
int CHANNEL_STATISTICS2_WITH_MODEL
Definition: Database.h:604
int KDP_MODEL
Definition: Database.h:754
double FILTER_WIDTH_CONSTANT
Definition: Database.h:342
int MOVING_BOUNDARY
Definition: Database.h:970
int DARCYTYPE
Definition: Database.h:328
static TShapeDesc ** ShapeDB
Definition: Database.h:1122
int BULK_REACTION_DISC
Definition: Database.h:616
Definition: ShapeDesc.h:29
int NORMAL_ORIENTATION_QUAD[4]
Definition: Database.h:192
MPI_Comm Comm
Definition: Database.h:978
int INTERNAL_PROBLEM_LINEAR
Definition: Database.h:831
int DIV_DIV_STAB_TYPE
Definition: Database.h:385
int Par_P0
Definition: Database.h:894
void AddMortar0(int Mortar_Ni, int N)
Definition: Database.C:307
TDatabase()
Definition: Database.C:122
int SOLVE_ADJOINT_PROBLEM
Definition: Database.h:230
int DISCTYPE
Definition: Database.h:145
int PBE_P0
Definition: Database.h:941
double CC_ALPHA
Definition: Database.h:475
double FRICTION_CONSTANT
Definition: Database.h:375
int VMS_LARGE_VELOCITY_SPACE
Definition: Database.h:355
double WINDTUNNEL_SHIFT
Definition: Database.h:668
static void WriteParamDB(char *ExecutedFile)
Definition: Database.C:1283
int FEM_FCT_LINEAR_TYPE
Definition: Database.h:300
int WENO_TYPE
Definition: Database.h:306
int ANSATZ_ORDER
Definition: Database.h:97
static TRefDesc ** RefDescDB
Definition: Database.h:1125
int SUPERCONVERGENCE_ORDER
Definition: Database.h:264
char * GEOFILE
Definition: Database.h:43
int TENSOR_TYPE
Definition: Database.h:553
Definition: Database.h:1118
int StoDa_interfaceType
Definition: Database.h:796
void AddMortar1(int Mortar_Ni, int N)
Definition: Database.C:315
int LP_FULL_GRADIENT
Definition: Database.h:200
int PRECOND_LS
Definition: Database.h:73
int SOLD_TYPE
Definition: Database.h:180
double DG_P0
Definition: Database.h:955
static TParamDB * ParamDB
Definition: Database.h:1134
bool INTERFACE_FLOW
Definition: Database.h:559
int SDFEM_TYPE
Definition: Database.h:172
Definition: Iterator.h:25