transmission_error.cc
Go to the documentation of this file.
#include "rheolef.h"
using namespace rheolef;
using namespace std;
size_t d;
Float epsilon;
Float u (const point& x) {
Float x0 = (d <= 2) ? x[0] : x[1];
if (x0 < Float(0.5))
return x0*((1+3*epsilon)/(2*(1+epsilon)) - x0)/(2*epsilon);
else
return (1-x0)*(x0 + (1-epsilon)/(2*(1+epsilon)))/2;
}
int main(int argc, char**argv) {
environment rheolef (argc, argv);
Float error_linf_expected = (argc > 1) ? atof(argv[1]) : 1e+38;
field uh;
din >> catchmark("epsilon") >> epsilon
>> catchmark("u") >> uh;
d = uh.get_geo().dimension();
space Xh = uh.get_space();
field pi_h_u = interpolate(Xh, u);
field eh = pi_h_u - uh;
trial u (Xh); test v (Xh);
form m = integrate (u*v);
derr << "error_linf " << eh.max_abs() << endl
<< "error_l2 " << sqrt(m(eh,eh)) << endl;
return (eh.max_abs() < error_linf_expected) ? 0 : 1;
}
d
size_t d
Definition: transmission_error.cc:24
form
see the form page for the full documentation
rheolef::catchmark
see the catchmark page for the full documentation
Definition: catchmark.h:67
field
see the field page for the full documentation
rheolef::integrate
std::enable_if< details::is_field_expr_v2_nonlinear_arg< Expr >::value &&! is_undeterminated< Result >::value, Result >::type integrate(const geo_basic< T, M > &omega, const Expr &expr, const integrate_option &iopt, Result dummy=Result())
see the integrate page for the full documentation
Definition: integrate.h:202
space
see the space page for the full documentation
rheolef.h
rheolef - reference manual
main
int main(int argc, char **argv)
Definition: transmission_error.cc:33
rheolef::interpolate
field_basic< T, M > interpolate(const space_basic< T, M > &V2h, const field_basic< T, M > &u1h)
see the interpolate page for the full documentation
Definition: interpolate.cc:233
eh
field_basic< T, M > eh
Definition: form_field_expr.h:58
rheolef::din
idiststream din
see the diststream page for the full documentation
Definition: diststream.h:427
rheolef::environment
see the environment page for the full documentation
Definition: environment.h:115
mkgeo_sector.m
m
Definition: mkgeo_sector.sh:118
rheolef
This file is part of Rheolef.
Definition: compiler_eigen.h:37
test
see the test page for the full documentation
u
Definition: leveque.h:25
rheolef::derr
odiststream derr(cerr)
see the diststream page for the full documentation
Definition: diststream.h:436
Float
see the Float page for the full documentation
point
see the point page for the full documentation
u
Float u(const point &x)
Definition: transmission_error.cc:26
trial
see the test page for the full documentation
rheolef::Float
double Float
see the Float page for the full documentation
Definition: Float.h:143
epsilon
Float epsilon
Definition: transmission_error.cc:25
rheolef::std
Definition: vec_expr_v2.h:391