00001 // expde: expression templates for partial differential equations. 00002 // Copyright (C) 2001 Christoph Pflaum 00003 // This program is free software; you can redistribute it and/or modify 00004 // it under the terms of the GNU General Public License as published by 00005 // the Free Software Foundation; either version 2 of the License, or 00006 // (at your option) any later version. 00007 // 00008 // This program is distributed in the hope that it will be useful, 00009 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00010 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00011 // GNU General Public License for more details. 00012 // 00013 // SEE Notice1.doc made by 00014 // LAWRENCE LIVERMORE NATIONAL LABORATORY 00015 // 00016 00017 // ------------------------------------------------------------ 00018 // 00019 // First parameter file: parameter.h 00020 // 00021 // ------------------------------------------------------------ 00022 00023 #ifndef PARAMETER_H_ 00024 #define PARAMETER_H_ 00025 00026 #ifdef COMP_GNUOLD 00027 00028 #else 00029 using std::cout; 00030 using std::endl; 00031 #endif 00032 00033 00034 // For largest problems we need long long 00035 // to index the grid points 00036 #define long_int long long 00037 // #define long_int int 00038 00039 // Some compilers need these definitions 00040 //#define bool char 00041 //#define true 1 00042 //#define false 0 00043 00044 00045 // Choose one: MG restriction operator 00046 // coefficients stored or not 00047 // Similar implementation for prolongation operators is missing 00048 #define mg_coefficients false 00049 // #define mg_coefficients true 00050 00051 00052 // maximale number of levels: 00053 //---------------------------- 00054 #define Max_number_levels 20 00055 00056 00057 // developer version with error messages (slow) oder 00058 // working version without error messages (fast) 00059 //---------------------------- 00060 //#define developer_version true 00061 #define developer_version false 00062 00063 00064 // multilevel variable? yes-no 00065 //------------------------------ 00066 // no multilevel variable 00067 // #define Parameter_MG_Variable 0 00068 // with multilevel variable 00069 #define Parameter_MG_Variable ebene 00070 00071 00072 // size of hash tables 00073 //-------------------------------- 00074 // start size of hash table 0 00075 #define hashtable0_lenght 300000 00076 00077 // factor for size of hash tables 00078 #define Factor_hashtable0_lenght 2 00079 #define Factor_hashtable1_lenght 2 00080 #define Factor_hashtable2_lenght 2 00081 #define Factor_hashtable3_lenght 2 00082 #define Factor_hashtable4_lenght 1 00083 00084 #define Factor_hashtable_indices_lenght 2 00085 00086 00087 // tolerance in domain.h 00088 //----------------------------- 00089 #define domain_eps 0.000000001 00090 00091 // parameters for boundary labels: 00092 //------------------------------------ 00093 // a) shift in test of point is marked 00094 #define shift_eps 0.001 00095 // b) epsilon for v(p) > 0.0 00096 #define eps_boundary_var 0.001 00097 00098 // factor for minimal and maximal distance to the boundary 00099 //--------------------------------------------------------- 00100 #define factor_boundary_dis 0.3 00101 00102 // offset for surrounded square 00103 //----------------------------------- 00104 #define standard_offset_square 0.5132455 00105 #define standard_stretch_square 1.00143 00106 // #define standard_stretch_square 1.0 00107 00108 // standard parameter for parallelization 00109 //---------------------------------------- 00110 #define standard_r_parallel 2 00111 00112 // #define standard_offset_square 0 00113 // #define standard_stretch_square 1.0 00114 00115 // for boundary labels 00116 //--------------------- 00117 #define TypLabel int // type of storage 00118 #define Max_label_number 30 // maximal number of boundary labels 00119 00120 00121 // for finding bug in Tetraeder construction 00122 //------------------------------------------- 00123 #define Print_wrong_Tet false 00124 //#define Print_wrong_Tet true 00125 00126 // to make the bounding cube a bit larger in sca_dom.cc 00127 //----------------------------------------------------- 00128 #define Bounding_cube_enlargement 1.1 00129 00130 00131 // Print status of grid generator 00132 //----------------------------------------------------- 00133 #define print_status_of_grid_generator false 00134 //#define print_status_of_grid_generator true 00135 00136 // For grid generator 00137 //----------------------------------------------------- 00138 //#define pre_check_box_grid_generation false 00139 #define pre_check_box_grid_generation true 00140 00141 00142 00143 // Tell about round off problems in subdivision of boundary cells 00144 // such problems can only appear in the parallel version 00145 //---------------------------------------------------------------- 00146 #define tell_round_off_problem false 00147 //#define tell_round_off_problem true 00148 #define eps_round_off_problem 0.000000000000000001 00149 00150 // Set periodic data structure for 00151 // periodic boundary conditions 00152 // #define PERIODIC true 00153 #endif 00154