00001 00005 class DistrErrorNorms 00006 00007 { 00008 private: 00009 00010 static bool sameGrid (GridFE& ga, GridFE& gb); 00011 static bool sameGrid (GridLattice& ga, GridLattice& gb); 00012 00013 static real H1Norm_help 00014 ( 00015 GridPartAdm& gp_adm, 00016 FieldFE& pa, 00017 FieldFE& pb, 00018 NumItgPoints itg_pt_tp, 00019 int relative_order 00020 ); 00021 00022 public: 00023 00024 00025 00026 static real H1Norm 00027 ( 00028 GridPartAdm& gp_adm, 00029 FieldFE& pa, 00030 FieldFE& pb, 00031 NumItgPoints itg_pt_tp = GAUSS_POINTS, 00032 int relative_order = 0 00033 ); 00034 static real H1Norm 00035 ( 00036 GridPartAdm& gp_adm, 00037 const FieldFunc& fp, 00038 FieldFE& pb, 00039 real t = DUMMY, 00040 NumItgPoints itg_pt_tp = GAUSS_POINTS, 00041 int relative_order = 0 00042 ); 00043 00044 static void Lnorm 00045 ( 00046 GridPartAdm& gp_adm, 00047 Field& pa, 00048 FieldWithPtValues& pb, 00049 GridFE& pb_grid, 00050 bool same_grid, 00051 real time, 00052 real& norm_L1, 00053 real& norm_L2, 00054 real& norm_Linf, 00055 NumItgPoints itg_pt_tp = GAUSS_POINTS, 00056 int relative_order = 0, 00057 00058 FEM* solver = NULL, 00059 real* norm_energy = NULL 00060 ); 00061 00062 00063 static void Lnorm 00064 (GridPartAdm& gp_adm, 00065 const FieldFunc& fa, FieldFE& pb, real t, real& norm_L1, real& norm_L2, 00066 real& norm_Linf, NumItgPoints itg_pt_tp = GAUSS_POINTS, 00067 int relative_order = 0, FEM* solver = NULL, real* norm_energy = NULL); 00068 00069 00070 static void Lnorm 00071 (GridPartAdm& gp_adm, 00072 const FieldFunc& fa, FieldFE& pb, real t, real& norm_L1, real& norm_L2, 00073 real& norm_Linf, bool isoparametric, NumItgPoints itg_pt_tp = GAUSS_POINTS, 00074 int relative_order = 0, FEM* solver = NULL, real* norm_energy = NULL); 00075 00076 static void Lnorm 00077 (GridPartAdm& gp_adm, 00078 fxtFieldFunc fa, FieldFE& pb, real t, real& norm_L1, real& norm_L2, 00079 real& norm_Linf, NumItgPoints itg_pt_tp = GAUSS_POINTS, 00080 int relative_order = 0, FEM* solver = NULL, real* norm_energy = NULL) 00081 { Lnorm(gp_adm, 00082 FieldFunc(fa), pb, t, norm_L1, norm_L2, norm_Linf, itg_pt_tp, 00083 relative_order, solver, norm_energy); } 00084 00085 static real L2Norm (GridPartAdm& gp_adm, FieldFE& pa, FieldFE& pb); 00086 static void Lnorm 00087 (GridPartAdm& gp_adm, 00088 FieldFE& pa, FieldFE& pb, real& norm_L1, real& norm_L2, real& norm_Linf); 00089 static real L2Norm (GridPartAdm& gp_adm, 00090 const FieldFunc& fa, FieldFE& pb, real t = DUMMY); 00091 static real L2Norm (GridPartAdm& gp_adm, 00092 fxtFieldFunc fa, FieldFE& pb, real t = DUMMY) 00093 { return L2Norm(gp_adm, FieldFunc(fa), pb, t); } 00094 00095 static void discreteLnorm 00096 ( 00097 GridPartAdm& gp_adm, 00098 FieldFE& pa, 00099 FieldFE& pb, 00100 real& norm_l1, 00101 real& norm_l2, 00102 real& norm_linf 00103 ); 00104 00105 static void discreteLnorm 00106 ( 00107 GridPartAdm& gp_adm, 00108 FieldPiWisConst& pa, 00109 FieldFE& pb, 00110 real& norm_l1, 00111 real& norm_l2, 00112 real& norm_linf 00113 ); 00114 00115 static void discreteLnorm 00116 ( 00117 GridPartAdm& gp_adm, 00118 FieldPiWisConst& pa, 00119 FieldPiWisConst& pb, 00120 real& norm_l1, 00121 real& norm_l2, 00122 real& norm_linf 00123 ); 00124 00125 static void discreteLnorm 00126 ( 00127 GridPartAdm& gp_adm, 00128 const FieldFunc& fa, 00129 FieldFE& pb, 00130 real time, 00131 real& norm_l1, 00132 real& norm_l2, 00133 real& norm_linf 00134 ); 00135 00136 static void discreteLnorm 00137 ( 00138 GridPartAdm& gp_adm, 00139 const FieldFunc& fa, 00140 FieldFE& pb, 00141 real time, 00142 real& norm_l1, 00143 real& norm_l2, 00144 real& norm_linf, 00145 bool isoparametric 00146 ); 00147 00148 static void discreteLnorm 00149 ( 00150 GridPartAdm& gp_adm, 00151 const FieldFunc& fa, 00152 FieldPiWisConst& pb, 00153 real time, 00154 real& norm_l1, 00155 real& norm_l2, 00156 real& norm_linf 00157 ); 00158 00159 00160 00161 static void Lnorm 00162 ( 00163 GridPartAdm& gp_adm, 00164 Fields& pa, 00165 FieldsWithPtValues& pb, 00166 GridFE& pb_grid, 00167 bool same_grid, 00168 real time, 00169 real& norm_L1, 00170 real& norm_L2, 00171 real& norm_Linf, 00172 NumItgPoints itg_pt_tp = GAUSS_POINTS, 00173 int relative_order = 0 00174 ); 00175 00176 static void Lnorm 00177 ( 00178 GridPartAdm& gp_adm, 00179 const FieldsFunc& fa, 00180 FieldsFE& pb, 00181 real t, 00182 real& norm_L1, 00183 real& norm_L2, 00184 real& norm_Linf, 00185 bool isoparametric, 00186 NumItgPoints itg_pt_tp = GAUSS_POINTS, 00187 int relative_order = 0, 00188 FEM* solver = NULL, 00189 real* norm_energy = NULL 00190 ); 00191 00192 static void discreteLnorm 00193 ( 00194 GridPartAdm& gp_adm, 00195 FieldsFE& pa, 00196 FieldsFE& pb, 00197 real& norm_l1, 00198 real& norm_l2, 00199 real& norm_linf 00200 ); 00201 00202 static void discreteLnorm 00203 ( 00204 GridPartAdm& gp_adm, 00205 FieldsFunc& pa, 00206 FieldsFE& pb, 00207 real time, 00208 real& norm_l1, 00209 real& norm_l2, 00210 real& norm_linf, 00211 bool isoparametric 00212 ); 00213 00214 00215 static void discreteLnorm 00216 ( 00217 GridPartAdm& gp_adm, 00218 FieldsPiWisConst& pa, 00219 FieldsFE& pb, 00220 real& norm_l1, 00221 real& norm_l2, 00222 real& norm_linf 00223 ); 00224 00225 static void discreteLorm 00226 ( 00227 GridPartAdm& gp_adm, 00228 FieldsPiWisConst& pa, 00229 FieldsPiWisConst& pb, 00230 real& norm_l1, 00231 real& norm_l2, 00232 real& norm_linf 00233 ); 00234 00235 static void discreteLnorm 00236 ( 00237 GridPartAdm& gp_adm, 00238 FieldsFunc& fa, 00239 FieldsFE& pb, 00240 real time, 00241 real& norm_l1, 00242 real& norm_l2, 00243 real& norm_linf 00244 ); 00245 00246 static void discreteLnorm 00247 ( 00248 GridPartAdm& gp_adm, 00249 FieldsFunc& fa, 00250 FieldsPiWisConst& pb, 00251 real time, 00252 real& norm_l1, 00253 real& norm_l2, 00254 real& norm_linf 00255 ); 00256 00257 static real H1SemiNorm 00258 00259 ( 00260 GridPartAdm& gp_adm, 00261 FieldFunc& fp, 00262 FieldFE& pb, 00263 real t = DUMMY, 00264 NumItgPoints itg_pt_tp = GAUSS_POINTS, 00265 int relative_order = 0 00266 ); 00267 00268 static real H1SemiNorm 00269 ( 00270 GridPartAdm& gp_adm, 00271 FieldsFunc& fp, 00272 FieldsFE& pb, 00273 real t = DUMMY, 00274 NumItgPoints itg_pt_tp = GAUSS_POINTS, 00275 int relative_order = 0 00276 ); 00277 00278 static void HdivNorm 00279 ( 00280 GridPartAdm& gp_adm, 00281 FieldsFunc& fa, 00282 FieldsFE& pb, 00283 real& Hdiv_norm, 00284 real& L2_part, 00285 real& div_part, 00286 real& inf_error, 00287 real t, 00288 bool isoparametric, 00289 bool print_info = false, 00290 NumItgPoints itg_pt_tp = GAUSS_POINTS, 00291 int relative_order = 0, 00292 FEM* solver = NULL, 00293 real* norm_energy = NULL 00294 ); 00295 00296 }; 00297 00298