Hybrid Discontinuous Galerkin methods for incompressible flow ...
Hybrid Discontinuous Galerkin methods for incompressible flow ...
Hybrid Discontinuous Galerkin methods for incompressible flow ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Hybrid</strong> <strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>methods</strong> <strong>for</strong><br />
<strong>incompressible</strong> <strong>flow</strong> problems<br />
Christoph Lehrenfeld, Joachim Schöberl<br />
MathCCES<br />
Computational<br />
Mathematics<br />
in Engineering<br />
DG Workshop Linz, May 31 - June 1, 2010
Contents<br />
◮ The <strong>methods</strong>:<br />
Cockburn, Lazarov,<br />
Gopalakrishnan, 2008<br />
Egger, Schöberl, 2009<br />
HDG<br />
(HIPDG)<br />
(HIPDG)<br />
(HUDG)<br />
(HUDG)<br />
Scalar<br />
convection<br />
diffusion<br />
DG<br />
DG<br />
<strong>for</strong><br />
<strong>for</strong><br />
NSE<br />
NSE<br />
(IPDG)<br />
(UDG) (IPDG)<br />
(UDG)<br />
Cockburn, Kanschat,<br />
Schötzau, 2005<br />
HDG<br />
HDG<br />
<strong>for</strong><br />
<strong>for</strong><br />
NSE<br />
NSE<br />
(HIPDG)<br />
(HUDG) (HIPDG)<br />
(HUDG)<br />
<strong>incompressible</strong><br />
Navier<br />
Stokes<br />
Equations<br />
H(div)-conf.<br />
H(div)-conf.<br />
DG<br />
DG<br />
<strong>for</strong><br />
<strong>for</strong><br />
NSE<br />
NSE<br />
(exactly<br />
(exactly<br />
divfree)<br />
divfree)<br />
(IPDG)<br />
(IPDG)<br />
(UDG)<br />
(UDG)<br />
H(div)-conf.<br />
H(div)-conf.<br />
HDG<br />
HDG<br />
<strong>for</strong><br />
<strong>for</strong><br />
NSE<br />
NSE<br />
(exactly<br />
(exactly<br />
divfree)<br />
divfree)<br />
(HIPDG)<br />
(HIPDG)<br />
(HUDG)<br />
(HUDG)<br />
Schöberl,<br />
Zaglmayr, 2005<br />
Reduced<br />
Reduced<br />
'high order<br />
'high order<br />
divfree'<br />
divfree'<br />
basis<br />
basis<br />
◮ Software, Examples, Conclusion
Contents<br />
◮ The <strong>methods</strong>:<br />
Cockburn, Lazarov,<br />
Gopalakrishnan, 2008<br />
Egger, Schöberl, 2009<br />
HDG<br />
(HIPDG)<br />
(HIPDG)<br />
(HUDG)<br />
(HUDG)<br />
Scalar<br />
convection<br />
diffusion<br />
DG<br />
DG<br />
<strong>for</strong><br />
<strong>for</strong><br />
NSE<br />
NSE<br />
(IPDG)<br />
(UDG) (IPDG)<br />
(UDG)<br />
Cockburn, Kanschat,<br />
Schötzau, 2005<br />
HDG<br />
HDG<br />
<strong>for</strong><br />
<strong>for</strong><br />
NSE<br />
NSE<br />
(HIPDG)<br />
(HUDG) (HIPDG)<br />
(HUDG)<br />
<strong>incompressible</strong><br />
Navier<br />
Stokes<br />
Equations<br />
H(div)-conf.<br />
H(div)-conf.<br />
DG<br />
DG<br />
<strong>for</strong><br />
<strong>for</strong><br />
NSE<br />
NSE<br />
(exactly<br />
(exactly<br />
divfree)<br />
divfree)<br />
(IPDG)<br />
(IPDG)<br />
(UDG)<br />
(UDG)<br />
H(div)-conf.<br />
H(div)-conf.<br />
HDG<br />
HDG<br />
<strong>for</strong><br />
<strong>for</strong><br />
NSE<br />
NSE<br />
(exactly<br />
(exactly<br />
divfree)<br />
divfree)<br />
(HIPDG)<br />
(HIPDG)<br />
(HUDG)<br />
(HUDG)<br />
Schöberl,<br />
Zaglmayr, 2005<br />
Reduced<br />
Reduced<br />
'high order<br />
'high order<br />
divfree'<br />
divfree'<br />
basis<br />
basis<br />
◮ Software, Examples, Conclusion
<strong>Hybrid</strong> DG <strong>for</strong> scalar convection<br />
diffusion equations<br />
−∆u + div(bu) = f
Discretization space<br />
Trial functions are:<br />
◮ discontinuous<br />
◮ piecewise polynomials<br />
(on each facet and element)<br />
with appropriate <strong>for</strong>mulations we get<br />
◮ more unknowns but less matrix entries<br />
◮ implementation fits into standard<br />
element-based assembling<br />
◮ structure allows condensation of element<br />
unknowns
HDG <strong>for</strong>mulation <strong>for</strong> −∆u<br />
Symmetric Interior Penalty Formulation (τ h ∼ h ):<br />
p 2<br />
B DG (u, v) = ∑ ∫<br />
∇u∇v dx<br />
T T<br />
+ ∑ { ∫ { ∂u<br />
} ∫ { ∂v<br />
} ∫<br />
}<br />
− [[v]] ds − [[u]] ds + τ h [[u]][[v]] ds<br />
E E ∂n<br />
E ∂n<br />
E<br />
<strong>Hybrid</strong> Symmetric Interior Penalty Formulation (τ h ∼ h ):<br />
p 2<br />
B ( (u,u F ),(v,v F ) ) = ∑ { ∫<br />
∇u ∇v dx<br />
T T<br />
∫<br />
∫<br />
∂u<br />
−<br />
∂T ∂n (v − v ∂v<br />
F ) ds −<br />
∂T ∂n (u − u F ) ds<br />
∫<br />
}<br />
+ τ h (u − u F )(v − v F ) ds<br />
∂T<br />
This and other hybridizations of CG, mixed and DG <strong>methods</strong> were discussed in<br />
[Cockburn+Gopalakrishnan+Lazarov,’08]
HDG <strong>for</strong>mulation <strong>for</strong> −∆u<br />
Symmetric Interior Penalty Formulation (τ h ∼ h ):<br />
p 2<br />
B DG (u, v) = ∑ ∫<br />
∇u∇v dx<br />
T T<br />
+ ∑ { ∫ { ∂u<br />
} ∫ { ∂v<br />
} ∫<br />
}<br />
− [[v]] ds − [[u]] ds + τ h [[u]][[v]] ds<br />
E E ∂n<br />
E ∂n<br />
E<br />
<strong>Hybrid</strong> Symmetric Interior Penalty Formulation (τ h ∼ h ):<br />
p 2<br />
B ( (u,u F ),(v,v F ) ) = ∑ { ∫<br />
∇u ∇v dx<br />
T T<br />
∫<br />
∫<br />
∂u<br />
−<br />
∂T ∂n (v − v ∂v<br />
F ) ds −<br />
∂T ∂n (u − u F ) ds<br />
∫<br />
}<br />
+ τ h (u − u F )(v − v F ) ds<br />
∂T<br />
This and other hybridizations of CG, mixed and DG <strong>methods</strong> were discussed in<br />
[Cockburn+Gopalakrishnan+Lazarov,’08]
HDG <strong>for</strong>mulation <strong>for</strong> div(bu) = f (div(b) = 0)<br />
After partial integration on each element we get<br />
∫<br />
div(bu) v dx = ∑ { ∫<br />
∫<br />
− bu ∇v dx +<br />
Ω<br />
T<br />
T<br />
Upwind DG −→ <strong>Hybrid</strong>ized Upwind DG:<br />
∂T<br />
}<br />
b n u ? v ds<br />
u UDG =<br />
{<br />
unb if b n ≤ 0<br />
u if b n > 0<br />
=⇒ u HUDG =<br />
{<br />
uF if b n ≤ 0<br />
u if b n > 0
HDG <strong>for</strong>mulation <strong>for</strong> div(bu) = f (div(b) = 0)<br />
After partial integration on each element we get<br />
∫<br />
div(bu) v dx = ∑ { ∫<br />
∫<br />
− bu ∇v dx +<br />
Ω<br />
T<br />
T<br />
Upwind DG −→ <strong>Hybrid</strong>ized Upwind DG:<br />
∂T<br />
}<br />
b n u ? v ds<br />
u UDG =<br />
{<br />
unb if b n ≤ 0<br />
u if b n > 0<br />
=⇒ u HUDG =<br />
{<br />
uF if b n ≤ 0<br />
u if b n > 0<br />
+ ∑ T<br />
∫<br />
∂T out<br />
b n (u F − u)v F ds<br />
This gives us an appropriate bilinear<strong>for</strong>m C ( (u, u F ), (v, v F ) ) <strong>for</strong> the<br />
convective term. Already used in [Egger+Schöberl, ’09]
HDG <strong>for</strong>mulation <strong>for</strong> div(bu) = f (div(b) = 0)<br />
After partial integration on each element we get<br />
∫<br />
div(bu) v dx = ∑ { ∫<br />
∫<br />
− bu ∇v dx +<br />
Ω<br />
T<br />
T<br />
Upwind DG −→ <strong>Hybrid</strong>ized Upwind DG:<br />
∂T<br />
}<br />
b n u ? v ds<br />
u UDG =<br />
{<br />
unb if b n ≤ 0<br />
u if b n > 0<br />
=⇒ u HUDG =<br />
{<br />
uF if b n ≤ 0<br />
u if b n > 0<br />
+ ∑ T<br />
∫<br />
∂T out<br />
b n (u F − u)v F ds<br />
This gives us an appropriate bilinear<strong>for</strong>m C ( (u, u F ), (v, v F ) ) <strong>for</strong> the<br />
convective term. Already used in [Egger+Schöberl, ’09]
HDG <strong>for</strong>mulation <strong>for</strong> −∆u + div(bu) = f (div(b) = 0)<br />
Now we can add the introduced bilinear<strong>for</strong>ms together and easily get a<br />
<strong>for</strong>mulation <strong>for</strong> the convection diffusion problem:<br />
A ( (u, u F ), (v, v F ) ) := B ( (u, u F ), (v, v F ) ) + C ( (u, u F ), (v, v F ) ) = (f , v)
Contents<br />
◮ The <strong>methods</strong>:<br />
Cockburn, Lazarov,<br />
Gopalakrishnan, 2008<br />
Egger, Schöberl, 2009<br />
HDG<br />
(HIPDG)<br />
(HIPDG)<br />
(HUDG)<br />
(HUDG)<br />
Scalar<br />
convection<br />
diffusion<br />
DG<br />
DG<br />
<strong>for</strong><br />
<strong>for</strong><br />
NSE<br />
NSE<br />
(IPDG)<br />
(UDG) (IPDG)<br />
(UDG)<br />
Cockburn, Kanschat,<br />
Schötzau, 2005<br />
HDG<br />
HDG<br />
<strong>for</strong><br />
<strong>for</strong><br />
NSE<br />
NSE<br />
(HIPDG)<br />
(HUDG) (HIPDG)<br />
(HUDG)<br />
<strong>incompressible</strong><br />
Navier<br />
Stokes<br />
Equations<br />
H(div)-conf.<br />
H(div)-conf.<br />
DG<br />
DG<br />
<strong>for</strong><br />
<strong>for</strong><br />
NSE<br />
NSE<br />
(exactly<br />
(exactly<br />
divfree)<br />
divfree)<br />
(IPDG)<br />
(IPDG)<br />
(UDG)<br />
(UDG)<br />
H(div)-conf.<br />
H(div)-conf.<br />
HDG<br />
HDG<br />
<strong>for</strong><br />
<strong>for</strong><br />
NSE<br />
NSE<br />
(exactly<br />
(exactly<br />
divfree)<br />
divfree)<br />
(HIPDG)<br />
(HIPDG)<br />
(HUDG)<br />
(HUDG)<br />
Schöberl,<br />
Zaglmayr, 2005<br />
Reduced<br />
Reduced<br />
'high order<br />
'high order<br />
divfree'<br />
divfree'<br />
basis<br />
basis<br />
◮ Software, Examples, Conclusion
<strong>Hybrid</strong> DG <strong>for</strong> <strong>incompressible</strong><br />
Navier Stokes Equations<br />
div(−ν∇u + u ⊗ u + pI ) = f<br />
div u = 0<br />
+ b.c.
(steady) <strong>incompressible</strong> Navier Stokes Equations<br />
variational <strong>for</strong>mulation:<br />
B(u, v) + C(u; u, v) + D(p, v) + D(q, u) = f (v)<br />
where B is a suitable bilinear<strong>for</strong>m <strong>for</strong> the viscous term, D is the<br />
bilinear<strong>for</strong>m <strong>for</strong> the incompressibility-constraint and the pressure term<br />
and C is the convective Trilinear<strong>for</strong>m.<br />
tasks:<br />
◮ Find an appropriate discretization space<br />
◮ Find appropriate bilinear<strong>for</strong>ms<br />
◮ Find an iterative procedure to solve the nonlinearity (⇒ Oseen its.)
Contents<br />
◮ The <strong>methods</strong>:<br />
Cockburn, Lazarov,<br />
Gopalakrishnan, 2008<br />
Egger, Schöberl, 2009<br />
HDG<br />
(HIPDG)<br />
(HIPDG)<br />
(HUDG)<br />
(HUDG)<br />
Scalar<br />
convection<br />
diffusion<br />
DG<br />
DG<br />
<strong>for</strong><br />
<strong>for</strong><br />
NSE<br />
NSE<br />
(IPDG)<br />
(UDG) (IPDG)<br />
(UDG)<br />
Cockburn, Kanschat,<br />
Schötzau, 2005<br />
HDG<br />
HDG<br />
<strong>for</strong><br />
<strong>for</strong><br />
NSE<br />
NSE<br />
(HIPDG)<br />
(HUDG) (HIPDG)<br />
(HUDG)<br />
<strong>incompressible</strong><br />
Navier<br />
Stokes<br />
Equations<br />
H(div)-conf.<br />
H(div)-conf.<br />
DG<br />
DG<br />
<strong>for</strong><br />
<strong>for</strong><br />
NSE<br />
NSE<br />
(exactly<br />
(exactly<br />
divfree)<br />
divfree)<br />
(IPDG)<br />
(IPDG)<br />
(UDG)<br />
(UDG)<br />
H(div)-conf.<br />
H(div)-conf.<br />
HDG<br />
HDG<br />
<strong>for</strong><br />
<strong>for</strong><br />
NSE<br />
NSE<br />
(exactly<br />
(exactly<br />
divfree)<br />
divfree)<br />
(HIPDG)<br />
(HIPDG)<br />
(HUDG)<br />
(HUDG)<br />
Schöberl,<br />
Zaglmayr, 2005<br />
Reduced<br />
Reduced<br />
'high order<br />
'high order<br />
divfree'<br />
divfree'<br />
basis<br />
basis<br />
◮ Software, Examples, Conclusion
H(div)-con<strong>for</strong>ming elements <strong>for</strong> Navier Stokes<br />
[Cockburn, Kanschat, Schötzau, 2005]:<br />
DG<br />
+<br />
inc. Navier-Stokes<br />
+<br />
local conservation<br />
+<br />
energy-stability<br />
=⇒<br />
need exactly<br />
divergence-free<br />
convective velocity<br />
<strong>for</strong> C(u; u, v)
Contents<br />
◮ The <strong>methods</strong>:<br />
Cockburn, Lazarov,<br />
Gopalakrishnan, 2008<br />
Egger, Schöberl, 2009<br />
HDG<br />
(HIPDG)<br />
(HIPDG)<br />
(HUDG)<br />
(HUDG)<br />
Scalar<br />
convection<br />
diffusion<br />
DG<br />
DG<br />
<strong>for</strong><br />
<strong>for</strong><br />
NSE<br />
NSE<br />
(IPDG)<br />
(UDG) (IPDG)<br />
(UDG)<br />
Cockburn, Kanschat,<br />
Schötzau, 2005<br />
HDG<br />
HDG<br />
<strong>for</strong><br />
<strong>for</strong><br />
NSE<br />
NSE<br />
(HIPDG)<br />
(HUDG) (HIPDG)<br />
(HUDG)<br />
<strong>incompressible</strong><br />
Navier<br />
Stokes<br />
Equations<br />
H(div)-conf.<br />
H(div)-conf.<br />
DG<br />
DG<br />
<strong>for</strong><br />
<strong>for</strong><br />
NSE<br />
NSE<br />
(exactly<br />
(exactly<br />
divfree)<br />
divfree)<br />
(IPDG)<br />
(IPDG)<br />
(UDG)<br />
(UDG)<br />
H(div)-conf.<br />
H(div)-conf.<br />
HDG<br />
HDG<br />
<strong>for</strong><br />
<strong>for</strong><br />
NSE<br />
NSE<br />
(exactly<br />
(exactly<br />
divfree)<br />
divfree)<br />
(HIPDG)<br />
(HIPDG)<br />
(HUDG)<br />
(HUDG)<br />
Schöberl,<br />
Zaglmayr, 2005<br />
Reduced<br />
Reduced<br />
'high order<br />
'high order<br />
divfree'<br />
divfree'<br />
basis<br />
basis<br />
◮ Software, Examples, Conclusion
H(div)-con<strong>for</strong>ming elements <strong>for</strong> Navier Stokes<br />
Trial and test functions:<br />
◮ normal-cont., tangential-discont.<br />
velocity element functions,<br />
piecewise polynomial<br />
(degree k)<br />
u, v<br />
◮ facet velocity functions <strong>for</strong> the<br />
tangential component only,<br />
piecewise polynomial<br />
(degree k)<br />
u t F , v t F<br />
◮ discont. element pressure functions,<br />
piecewise polynomial<br />
(degree k − 1)<br />
p, q
<strong>Hybrid</strong> DG Navier Stokes bilinear<strong>for</strong>ms<br />
Viscosity:<br />
B ( (u, u F ), (v, v F ) ) =<br />
Convection:<br />
−<br />
∑ T<br />
∫<br />
∂T<br />
C ( w; (u, u F ), (v, v F ) ) = ∑ T<br />
pressure / incompressibility constraint:<br />
D ( (u, u F ), q ) = ∑ ∫<br />
T<br />
{ ∫<br />
∫<br />
ν ∇u : ∇v dx − ν ∇u · n (v t − vF t ) ds<br />
T<br />
∂T<br />
∫<br />
}<br />
ν ∇v · n (u t − uF t ) ds + ντ h (u t − uF t ) · (v t − vF t ) ds<br />
∂T<br />
{ ∫<br />
∫<br />
∫<br />
}<br />
− u⊗w : ∇v dx+ w nu up v ds+ w n(uF t −u t )vF t ds<br />
T<br />
∂T<br />
∂T out<br />
T<br />
div(u)q dx<br />
⇒ weak incompressibility (+ H(div)-con<strong>for</strong>mity) ⇒ exactly divergence-free solutions
Contents<br />
◮ The <strong>methods</strong>:<br />
Cockburn, Lazarov,<br />
Gopalakrishnan, 2008<br />
Egger, Schöberl, 2009<br />
HDG<br />
(HIPDG)<br />
(HIPDG)<br />
(HUDG)<br />
(HUDG)<br />
Scalar<br />
convection<br />
diffusion<br />
DG<br />
DG<br />
<strong>for</strong><br />
<strong>for</strong><br />
NSE<br />
NSE<br />
(IPDG)<br />
(UDG) (IPDG)<br />
(UDG)<br />
Cockburn, Kanschat,<br />
Schötzau, 2005<br />
HDG<br />
HDG<br />
<strong>for</strong><br />
<strong>for</strong><br />
NSE<br />
NSE<br />
(HIPDG)<br />
(HUDG) (HIPDG)<br />
(HUDG)<br />
<strong>incompressible</strong><br />
Navier<br />
Stokes<br />
Equations<br />
H(div)-conf.<br />
H(div)-conf.<br />
DG<br />
DG<br />
<strong>for</strong><br />
<strong>for</strong><br />
NSE<br />
NSE<br />
(exactly<br />
(exactly<br />
divfree)<br />
divfree)<br />
(IPDG)<br />
(IPDG)<br />
(UDG)<br />
(UDG)<br />
H(div)-conf.<br />
H(div)-conf.<br />
HDG<br />
HDG<br />
<strong>for</strong><br />
<strong>for</strong><br />
NSE<br />
NSE<br />
(exactly<br />
(exactly<br />
divfree)<br />
divfree)<br />
(HIPDG)<br />
(HIPDG)<br />
(HUDG)<br />
(HUDG)<br />
Schöberl,<br />
Zaglmayr, 2005<br />
Reduced<br />
Reduced<br />
'high order<br />
'high order<br />
divfree'<br />
divfree'<br />
basis<br />
basis<br />
◮ Software, Examples, Conclusion
Reduced basis H(div)-con<strong>for</strong>ming Finite Elements<br />
We use the construction of high order finite elements of<br />
[Schöberl+Zaglmayr, ’05, Thesis Zaglmayr ’06]:<br />
It is founded on the de Rham complex<br />
H 1 ∇ −→ H(curl)<br />
curl<br />
−→ H(div)<br />
div<br />
−→ L 2<br />
⋃ ⋃ ⋃ ⋃<br />
W h<br />
∇<br />
curl<br />
div<br />
−→ Vh −→ S h −→<br />
Q h<br />
1 + 3 + a a + 3 + 3 + b b + 3 + 1 + c c + 1<br />
Leading to a natural separation of the space (<strong>for</strong> higher order)<br />
W hp = W L1 + span{ϕ W h.o.}<br />
V hp = V N0 + span{∇ϕ W h.o.} + span{ϕ V h.o.}<br />
S hp = S RT 0<br />
+ span{curl ϕ V h.o.} + span{ϕ S h.o.}<br />
Q hp = Q P0 + span{div ϕ S h.o.}
Reduced basis H(div)-con<strong>for</strong>ming Finite Elements<br />
We use the construction of high order finite elements of<br />
[Schöberl+Zaglmayr, ’05, Thesis Zaglmayr ’06]:<br />
It is founded on the de Rham complex<br />
H 1 ∇ −→ H(curl)<br />
curl<br />
−→ H(div)<br />
div<br />
−→ L 2<br />
⋃ ⋃ ⋃ ⋃<br />
W h<br />
∇<br />
curl<br />
div<br />
−→ Vh −→ S h −→<br />
Q h<br />
1 + 3 + a a + 3 + 3 + b b + 3 + 1 + c c + 1<br />
Leading to a natural separation of the space (<strong>for</strong> higher order)<br />
W hp = W L1 + span{ϕ W h.o.}<br />
V hp = V N0 + span{∇ϕ W h.o.} + span{ϕ V h.o.}<br />
S hp = S RT 0<br />
+ span{curl ϕ V h.o.} + span{ϕ S h.o.}<br />
Q hp = Q P0 + span{div ϕ S h.o.}
Reduced basis H(div)-con<strong>for</strong>ming Finite Elements<br />
We use the construction of high order finite elements of<br />
[Schöberl+Zaglmayr, ’05, Thesis Zaglmayr ’06]:<br />
It is founded on the de Rham complex<br />
H 1 ∇ −→ H(curl)<br />
curl<br />
−→ H(div)<br />
div<br />
−→ L 2<br />
⋃ ⋃ ⋃ ⋃<br />
W h<br />
∇<br />
curl<br />
div<br />
−→ Vh −→ S h −→<br />
Q h<br />
1 + 3 + a a + 3 + 3 + b b + 3 + 1 + c c + 1<br />
Leading to a natural separation of the space (<strong>for</strong> higher order)<br />
W hp = W L1 + span{ϕ W h.o.}<br />
V hp = V N0 + span{∇ϕ W h.o.} + span{ϕ V h.o.}<br />
S hp = S RT 0<br />
+ span{curl ϕ V h.o.} + span{ϕ S h.o.}<br />
Q hp = Q P0 + span{div ϕ S h.o.}
Reduced basis H(div)-con<strong>for</strong>ming Finite Elements<br />
We use the construction of high order finite elements of<br />
[Schöberl+Zaglmayr, ’05, Thesis Zaglmayr ’06]:<br />
It is founded on the de Rham complex<br />
H 1 ∇ −→ H(curl)<br />
curl<br />
−→ H(div)<br />
div<br />
−→ L 2<br />
⋃ ⋃ ⋃ ⋃<br />
W h<br />
∇<br />
curl<br />
div<br />
−→ Vh −→ S h −→<br />
Q h<br />
1 + 3 + a a + 3 + 3 + b b + 3 + 1 + c c + 1<br />
Leading to a natural separation of the space (<strong>for</strong> higher order)<br />
W hp = W L1 + span{ϕ W h.o.}<br />
V hp = V N0 + span{∇ϕ W h.o.} + span{ϕ V h.o.}<br />
S hp<br />
∗<br />
= S RT 0<br />
+ span{curl ϕ V h.o.}<br />
Q hp = Q P0 + span{div ϕ S h.o.}
space separation in 2D<br />
div(Σ k h ) =⊕ T<br />
RT 0 DOF<br />
higher order edge<br />
DOF<br />
higher order div.-free<br />
DOF<br />
higher order DOF with nonz. div<br />
RT 0 shape fncs. curl of H 1 -edge fncs. curl of H 1 -el. fncs. remainder<br />
P 0 (T ) ⊕ {0} ⊕ {0} ⊕ ⊕ T<br />
[P k−1 ∩ P 0⊥ ](T )<br />
1<br />
#DOF = 3 + 3k + 2 k(k − 1) + 1<br />
2 k(k + 1) − 1<br />
discrete functions have only piecewise constant divergence<br />
⇒ only piecewise constant pressure necessary <strong>for</strong> exact incompressibility
Summary of ingredients and properties<br />
So, we have presented a new Finite Element Method <strong>for</strong> Navier Stokes,<br />
with<br />
◮ H(div)-con<strong>for</strong>ming Finite Elements<br />
◮ <strong>Hybrid</strong> <strong>Discontinuous</strong> <strong>Galerkin</strong> Method <strong>for</strong> viscous terms<br />
◮ Upwind flux (in HDG-sence) <strong>for</strong> the convection term<br />
leading to solutions, which are<br />
◮ locally conservative<br />
◮ energy-stable ( d dt ‖u‖2 L 2<br />
≤ C ν ‖f ‖2 L 2<br />
)<br />
◮ exactly <strong>incompressible</strong><br />
◮ static condensation<br />
◮ standard finite element assembly is possible<br />
◮ less matrix entries than <strong>for</strong> std. DG approaches<br />
◮ reduced basis possible
Software, Examples and<br />
Conclusion
Software<br />
Netgen<br />
◮ Downloads: http://source<strong>for</strong>ge.net/projects/netgen-mesher/<br />
◮ Help & Instructions: http://netgen-mesher.wiki.source<strong>for</strong>ge.net<br />
NGSolve (including the presented scalar HDG <strong>methods</strong>)<br />
◮ Downloads: http://source<strong>for</strong>ge.net/projects/ngsolve/<br />
◮ Help & Instructions: http://source<strong>for</strong>ge.net/apps/mediawiki/ngsolve<br />
NGS<strong>flow</strong> (including the presented <strong>methods</strong>)<br />
◮ Downloads: http://source<strong>for</strong>ge.net/projects/ngs<strong>flow</strong>/<br />
◮ Help & Instructions: http://source<strong>for</strong>ge.net/apps/mediawiki/ngs<strong>flow</strong><br />
NGS<strong>flow</strong> is the <strong>flow</strong> solver add-on to NGSolve.<br />
It includes:<br />
◮ The presented Navier Stokes Solver<br />
◮ A package solving <strong>for</strong> heat (density) driven <strong>flow</strong>
Examples<br />
2D Driven Cavity (u top = 0.25, ν = 10 −3 )
Examples<br />
2D laminar <strong>flow</strong> around a disk (Re=100):<br />
3D laminar <strong>flow</strong> around a cylinder (Re=100):
Heat driven <strong>flow</strong><br />
changes in density are small:<br />
◮ incompressibility model is still acceptable<br />
◮ changes in density just cause some buoyancy <strong>for</strong>ces<br />
Boussinesq-Approximation:<br />
Incompressible Navier Stokes Equations are just modified at the <strong>for</strong>ce<br />
term:<br />
f = g → (1 − β(T − T 0 ))g β : heat expansion coefficient<br />
Convection-Diffusion-Equation <strong>for</strong> the temperature<br />
∂T<br />
∂t + div(−λ∇T + u · T ) = q<br />
◮ Discretization of Convection Diffusion Equation with HDG method<br />
◮ Weak coupling of unsteady Navier Stokes Equation and unsteady<br />
Convection Diffusion Equation<br />
◮ Higher Order (p ∈ 1, .., 5) in time with IMEX schemes
Examples<br />
Benard-Rayleigh example:<br />
Top temperature: constant 20 ◦ C<br />
Bottom temperature: constant 20.5 ◦ C<br />
Initial mesh and initial condition (p = 5):
Conclusion and ongoing work<br />
Conclusion:<br />
efficient <strong>methods</strong> <strong>for</strong><br />
◮ scalar convection diffusion equations<br />
◮ Navier Stokes Equations<br />
using<br />
◮ <strong>Hybrid</strong> DG<br />
◮ H(div)-con<strong>for</strong>ming Finite Elements<br />
◮ reduced basis<br />
related/future work:<br />
◮ heat driven <strong>flow</strong> (Boussinesq Equations)<br />
◮ time integration (IMEX schemes, ...)<br />
◮ 3D Solvers (Preconditioners, ...)
Thank you <strong>for</strong> your attention!