Rheolef  7.1
an efficient C++ finite element environment
harten.h

The Burgers problem: the Harten exact solution

#include "harten0.h"
struct harten {
Float operator() (const point& x) const {
Float x0 = x[0]-a*t+c;
Float shift = -2*floor((x0+1)/2);
Float xs = x0 + shift;
check_macro (xs >= -1 && xs <= 1, "invalid xs="<<xs);
return a + b*h0 (point(xs));
}
harten (Float t1=0, Float a1=1, Float b1=0.5, Float c1=0):
h0(b1*t1), t(t1), a(a1), b(b1), c(c1) {}
Float M() const { Float pi = acos(-1.0); return sqr(pi)*b; }
Float min() const { return a-b; }
Float max() const { return a+b; }
protected:
Float t, a, b, c;
};
using u_init = harten;
using g = harten;
harten::min
Float min() const
Definition: harten.h:37
harten0.h
The Burgers problem: the Harten exact solution at t=0.
harten::M
Float M() const
Definition: harten.h:36
check_macro
check_macro(expr1.have_homogeneous_space(Xh1), "dual(expr1,expr2); expr1 should have homogeneous space. HINT: use dual(interpolate(Xh, expr1),expr2)")
harten::c
Float c
Definition: harten.h:41
harten::a
Float a
Definition: harten.h:41
harten::max
Float max() const
Definition: harten.h:38
harten::harten
harten(Float t1=0, Float a1=1, Float b1=0.5, Float c1=0)
Definition: harten.h:34
harten::b
Float b
Definition: harten.h:41
harten::h0
harten0 h0
Definition: harten.h:40
harten::t
Float t
Definition: harten.h:41
a
Definition: diffusion_isotropic.h:25
Float
see the Float page for the full documentation
u_exact
Definition: interpolate_RTk_polynom.icc:125
point
see the point page for the full documentation
harten
Definition: harten.h:26
g
Definition: cavity_dg.h:25
harten::operator()
Float operator()(const point &x) const
Definition: harten.h:27
harten0
Definition: harten0.h:26