stokes_dirichlet_dg.icc
Go to the documentation of this file.
void stokes_dirichlet_dg (const space& Xh, const space& Qh,
form& a, form& b, form& c, form& mp, field& lh, field& kh,
integrate_option iopt = integrate_option())
{
size_t k = Xh.degree();
size_t d = Xh.get_geo().dimension();
Float beta = (k+1)*(k+d)/Float(d);
trial u (Xh), p (Qh);
test v (Xh), q (Qh);
a = integrate (2*ddot(Dh(u),Dh(v)), iopt)
+ integrate ("sides", beta*penalty()*dot(jump(u),jump(v))
- 2*dot(jump(u),average(Dh(v)*normal()))
- 2*dot(jump(v),average(Dh(u)*normal())), iopt);
lh = integrate (dot(f(),v), iopt)
+ integrate ("boundary", beta*penalty()*dot(g(),v)
- 2*dot(g(),Dh(v)*normal()), iopt);
b = integrate (dot(u,grad_h(q)), iopt)
+ integrate ("internal_sides", - dot(average(u),normal())*jump(q), iopt);
kh = integrate ("boundary", dot(g(),normal())*q, iopt);
c = integrate ("internal_sides", h_local()*jump(p)*jump(q), iopt);
mp = integrate (p*q, iopt);
}
g
u_exact g
Definition: burgers_diffusion_exact.h:33
lh
field lh(Float epsilon, Float t, const test &v)
Definition: burgers_diffusion_operators.icc:25
Float
see the Float page for the full documentation
field
see the field page for the full documentation
form
see the form page for the full documentation
space
see the space page for the full documentation
test
see the test page for the full documentation
trial
see the test page for the full documentation
mkgeo_ball.b
int b
Definition: mkgeo_ball.sh:152
mkgeo_ball.f
int f
Definition: mkgeo_ball.sh:221
mkgeo_ball.c
int c
Definition: mkgeo_ball.sh:153
mkgeo_ball.d
int d
Definition: mkgeo_ball.sh:154
rheolef::details::dot
rheolef::details::is_vec dot
rheolef::h_local
details::field_expr_v2_nonlinear_terminal_function< details::h_local_pseudo_function< Float > > h_local()
h_local: see the expression page for the full documentation
Definition: field_expr_terminal.h:527
rheolef::Dh
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 Dh(const Expr &expr)
Dh(uh): see the expression page for the full documentation.
Definition: field_expr_terminal.h:1010
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
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::ddot
T ddot(const tensor_basic< T > &a, const tensor_basic< T > &b)
ddot(x,y): see the expression page for the full documentation
Definition: tensor.cc:278
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::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
rk::beta
Float beta[][pmax+1]
Definition: runge_kutta_semiimplicit.icc:60
stokes_dirichlet_dg
void stokes_dirichlet_dg(const space &Xh, const space &Qh, form &a, form &b, form &c, form &mp, field &lh, field &kh, integrate_option iopt=integrate_option())
Definition: stokes_dirichlet_dg.icc:25
a
Definition: diffusion_isotropic.h:25
p
Definition: sphere.icc:25
u
Definition: leveque.h:25
u
Float u(const point &x)
Definition: transmission_error.cc:26