Convection-diffusion equation by the method of characteristics – error analysis
int main (
int argc,
char **argv) {
Float tol = (argc > 1) ? atof(argv[1]) : 1e-10;
derr <<
"# t\terror_l2\terror_linf" << endl;
for (
Float t = 0, t_prec = 0;
din >> get (t, phi_h); t_prec = t) {
const space& Xh = phi_h.get_space();
size_t d = Xh.get_geo().dimension();
err_l2_l2 += sqr(err_l2)*(t - t_prec);
err_linf_linf = max(err_linf_linf, err_linf);
derr << t <<
"\t" << err_l2 <<
"\t" << err_linf << endl;
}
derr <<
"# error_l2_l2 = " << sqrt(err_l2_l2) << endl;
derr <<
"# error_linf_linf = " << err_linf_linf << endl;
return (err_linf_linf <= tol) ? 0 : 1;
}