Rheolef  7.2
an efficient C++ finite element environment
burgers_diffusion_operators.icc
Go to the documentation of this file.
1
25field lh (Float epsilon, Float t, const test& v) {
26#ifdef NEUMANN
27 return field (v.get_vf_space(), 0);
28#else // NEUMANN
29 size_t d = v.get_vf_space().get_geo().dimension();
30 size_t k = v.get_vf_space().degree();
31 Float beta = (k+1)*(k+d)/Float(d);
32 return epsilon*integrate ("boundary",
33 beta*penalty()*g(epsilon,t)*v
34 - g(epsilon,t)*dot(grad_h(v),normal()));
35#endif // NEUMANN
36}
37field gh (Float epsilon, Float t, const field& uh, const test& v) {
38 return - integrate (dot(compose(f,uh),grad_h(v)))
39 + integrate ("internal_sides",
40 compose (phi, normal(), inner(uh), outer(uh))*jump(v))
41 + integrate ("boundary",
42 compose (phi, normal(), uh, g(epsilon,t))*v);
43}
u_exact g
field lh(Float epsilon, Float t, const test &v)
field gh(Float epsilon, Float t, const field &uh, const test &v)
see the Float page for the full documentation
see the field page for the full documentation
see the test page for the full documentation
class rheolef::details::field_expr_v2_nonlinear_node_unary compose
rheolef::details::is_vec dot
std::enable_if< details::has_field_rdof_interface< Expr >::value, details::field_expr_v2_nonlinear_terminal_field< typenameExpr::scalar_type, typenameExpr::memory_type, details::differentiate_option::gradient > >::type grad_h(const Expr &expr)
grad_h(uh): see the expression page for the full documentation
details::field_expr_v2_nonlinear_terminal_function< details::normal_pseudo_function< Float > > normal()
normal: see the expression page for the full documentation
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:211
details::field_expr_v2_nonlinear_terminal_function< details::penalty_pseudo_function< Float > > penalty()
penalty(): see the expression page for the full documentation
Float beta[][pmax+1]
Definition: cavity_dg.h:29
Definition: phi.h:25
Float epsilon