rheolef  6.6
neumann-laplace-check.cc
Go to the documentation of this file.
1 #include "rheolef.h"
2 using namespace rheolef;
3 using namespace std;
4 size_t N;
5 Float u_ex (const point& x) { return - 1./12 + (x[0]*(1-x[0]) + x[1]*(1-x[1]) + x[2]*(1-x[2]))/(2.*N); }
6 int main(int argc, char**argv) {
7  environment rheolef (argc, argv);
8  Float error_linf_expected = (argc > 1) ? atof(argv[1]) : 1e+38;
9  field uh; din >> uh;
10  const space& Xh = uh.get_space();
11  N = Xh.get_geo().dimension();
12  field pi_h_u = interpolate(Xh, u_ex);
13  field eh = pi_h_u - uh;
14  trial u (Xh); test v (Xh);
15  form m = integrate (u*v);
16  form a = integrate (dot(grad(u),grad(v)));
17  derr << "error_l2 " << sqrt(m(eh,eh)) << endl
18  << "error_h1 " << sqrt(a(eh,eh)) << endl
19  << "error_linf " << eh.max_abs() << endl;
20  return (eh.max_abs() <= error_linf_expected) ? 0 : 1;
21 }
field - piecewise polynomial finite element field
Definition: field.h:225
size_t N
Float u_ex(const point &x)
point - vertex of a mesh
Definition: point.h:22
field_vf_expr< field_vf_expr_grad< test_basic< T, M, VfTag > >> grad(const test_basic< T, M, VfTag > &x)
Definition: operators2.h:74
STL namespace.
irheostream, orheostream - large data streams
Definition: compiler.h:7
static field_basic< T, sequential > interpolate(const space_basic< T, sequential > &Vh, const field_basic< T, sequential > &uh)
int main(int argc, char **argv)
space – piecewise polynomial finite element space
Definition: space.h:229
double Float
Definition: compiler.h:177
field_nonlinear_expr< field_nonlinear_expr_uf< details::sqrt_,field_expr_terminal_field< T, M > > > sqrt(const field_basic< T, M > &x)
idiststream din(cin)
T dot(const vec< T, M > &x, const int &y)
odiststream derr(cerr)
Definition: diststream.h:340
form - representation of a finite element bilinear form
Definition: form.h:98
Float u(const point &x)
T max_abs() const
Definition: field.h:598
field_basic< T, M > integrate(const geo_basic< T, M > &domain, const test_basic< T, M, details::vf_tag_01 > &expr, const quadrature_option_type &qopt=quadrature_option_type())
integrate - integrate a function or an expression
Definition: integrate.h:90