Rheolef  7.1
an efficient C++ finite element environment
transmission_error.cc
Go to the documentation of this file.
1 #include "rheolef.h"
22 using namespace rheolef;
23 using namespace std;
24 size_t d;
26 Float u (const point& x) {
27  Float x0 = (d <= 2) ? x[0] : x[1];
28  if (x0 < Float(0.5))
29  return x0*((1+3*epsilon)/(2*(1+epsilon)) - x0)/(2*epsilon);
30  else
31  return (1-x0)*(x0 + (1-epsilon)/(2*(1+epsilon)))/2;
32 }
33 int main(int argc, char**argv) {
34  environment rheolef (argc, argv);
35  Float error_linf_expected = (argc > 1) ? atof(argv[1]) : 1e+38;
36  field uh;
37  din >> catchmark("epsilon") >> epsilon
38  >> catchmark("u") >> uh;
39  d = uh.get_geo().dimension();
40  space Xh = uh.get_space();
41  field pi_h_u = interpolate(Xh, u);
42  field eh = pi_h_u - uh;
43  trial u (Xh); test v (Xh);
44  form m = integrate (u*v);
45  derr << "error_linf " << eh.max_abs() << endl
46  << "error_l2 " << sqrt(m(eh,eh)) << endl;
47  return (eh.max_abs() < error_linf_expected) ? 0 : 1;
48 }
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:402