Rheolef
7.1
an efficient C++ finite element environment
burgers_diffusion_operators.icc
The diffusive Burgers equation – operators
field
lh
(
Float
epsilon
,
Float
t,
const
test
& v) {
#ifdef NEUMANN
return
field
(v.get_vf_space(), 0);
#else // NEUMANN
size_t
d
= v.get_vf_space().get_geo().dimension();
size_t
k = v.get_vf_space().degree();
Float
beta
= (k+1)*(k+
d
)/
Float
(
d
);
return
epsilon
*
integrate
(
"boundary"
,
beta
*
penalty
()*
g
(
epsilon
,t)*v
-
g
(
epsilon
,t)*
dot
(
grad_h
(v),
normal
()));
#endif // NEUMANN
}
field
gh
(
Float
epsilon
,
Float
t,
const
field
& uh,
const
test
& v) {
return
-
integrate
(
dot
(
compose
(
f
,uh),
grad_h
(v)))
+
integrate
(
"internal_sides"
,
compose
(
phi
,
normal
(), inner(uh), outer(uh))*jump(v))
+
integrate
(
"boundary"
,
compose
(
phi
,
normal
(), uh,
g
(
epsilon
,t))*v);
}
g
u_exact g
Definition:
burgers_diffusion_exact.h:33
gh
field gh(Float epsilon, Float t, const field &uh, const test &v)
Definition:
burgers_diffusion_operators.icc:37
field
see the field page for the full documentation
rheolef::normal
details::field_expr_v2_nonlinear_terminal_function< details::normal_pseudo_function< Float > > normal()
normal: see the expression page for the full documentation
Definition:
field_expr_terminal.h:439
phi
Definition:
phi.h:25
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
rheolef::details::compose
class rheolef::details::field_expr_v2_nonlinear_node_unary compose
lh
field lh(Float epsilon, Float t, const test &v)
Definition:
burgers_diffusion_operators.icc:25
test
see the test page for the full documentation
Float
see the Float page for the full documentation
mkgeo_ball.d
d
Definition:
mkgeo_ball.sh:154
rheolef::penalty
details::field_expr_v2_nonlinear_terminal_function< details::penalty_pseudo_function< Float > > penalty()
penalty(): see the expression page for the full documentation
Definition:
field_expr_terminal.h:626
rheolef::grad_h
std::enable_if< details::is_field_convertible< Expr >::value,details::field_expr_v2_nonlinear_terminal_field< typename Expr::scalar_type,typename Expr::memory_type,details::differentiate_option::gradient >>::type grad_h(const Expr &expr)
grad_h(uh): see the expression page for the full documentation
Definition:
field_expr_terminal.h:949
epsilon
Float epsilon
Definition:
transmission_error.cc:25
f
Definition:
cavity_dg.h:29
rheolef::details::dot
rheolef::details::is_vec dot
rk::beta
Float beta[][pmax+1]
Definition:
runge_kutta_semiimplicit.icc:60