FEniCS Course - FEniCS Project
FEniCS Course - FEniCS Project
FEniCS Course - FEniCS Project
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>FEniCS</strong> <strong>Course</strong><br />
Lecture 10: Discontinuous Galerkin<br />
methods for elliptic equations<br />
Contributors<br />
André Massing<br />
1 / 10
The discontinuous Galerkin (DG) method uses<br />
discontinuous basis functions<br />
u<br />
u h<br />
t<br />
V h = P k (T h ) = {v h ∈ L 2 (Ω) : v h | T ∈ P k (T ) ∀ T ∈ T h }<br />
2 / 10
The discontinuous Galerkin (DG) method uses<br />
discontinuous basis functions<br />
u<br />
u h<br />
t<br />
V h = P k (T h ) = {v h ∈ L 2 (Ω) : v h | T ∈ P k (T ) ∀ T ∈ T h }<br />
2 / 10
The discontinuous Galerkin (DG) method uses<br />
discontinuous basis functions<br />
u<br />
u h<br />
t<br />
V h = P k (T h ) = {v h ∈ L 2 (Ω) : v h | T ∈ P k (T ) ∀ T ∈ T h }<br />
2 / 10
The DG method eases mesh adaptivity<br />
u<br />
u h<br />
t<br />
3 / 10
The DG method eases mesh adaptivity<br />
u<br />
u h<br />
t<br />
3 / 10
The DG method eases mesh adaptivity<br />
u<br />
u h<br />
t<br />
3 / 10
The DG method eases space adaptivity<br />
u<br />
u h<br />
t<br />
4 / 10
The DG method eases space adaptivity<br />
u<br />
u h<br />
t<br />
4 / 10
The DG method eases space adaptivity<br />
u<br />
u h<br />
t<br />
4 / 10
DG-FEM Notation<br />
Interface facets<br />
Boundary facet<br />
Average 〈v〉 = 1 2 (v+ + v − )<br />
〈v〉 = [v] = v<br />
Jump [v] = (v + − v − )<br />
Jump identity<br />
[(∇ h v)w h ] = [∇ h v]〈w h 〉 + 〈∇ h v〉[w h ]<br />
5 / 10
The symmetric interior penalty method (SIP)<br />
a h (u h , v h ) = ∑ ∫<br />
∇u h · ∇v h dx − ∑ ∫<br />
〈∇u h 〉 · n[v h ] dS<br />
T ∈T<br />
T<br />
F ∈F<br />
F<br />
} {{ }<br />
Consistency<br />
− ∑ ∫<br />
〈∇v h 〉 · n[u h ] dS + ∑ γ<br />
[u h ][v h ] dS<br />
F ∈F<br />
F<br />
h F<br />
F ∈F<br />
∫F<br />
} {{ } } {{ }<br />
Symmetry<br />
Penalty<br />
6 / 10
The symmetric interior penalty method (SIP)<br />
a h (u h , v h ) = ∑ ∫<br />
∇u h · ∇v h dx − ∑ ∫<br />
〈∇u h 〉 · n[v h ] dS<br />
T ∈T<br />
T<br />
F ∈F<br />
F<br />
} {{ }<br />
Consistency<br />
− ∑ ∫<br />
〈∇v h 〉 · n[u h ] dS + ∑ γ<br />
[u h ][v h ] dS<br />
F ∈F<br />
F<br />
h F<br />
F ∈F<br />
∫F<br />
} {{ } } {{ }<br />
Symmetry<br />
Penalty<br />
6 / 10
The symmetric interior penalty method (SIP)<br />
a h (u h , v h ) = ∑ ∫<br />
∇u h · ∇v h dx − ∑ ∫<br />
〈∇u h 〉 · n[v h ] dS<br />
T ∈T<br />
T<br />
F ∈F<br />
F<br />
} {{ }<br />
Consistency<br />
− ∑ ∫<br />
〈∇v h 〉 · n[u h ] dS + ∑ γ<br />
[u h ][v h ] dS<br />
F ∈F<br />
F<br />
h F<br />
F ∈F<br />
∫F<br />
} {{ } } {{ }<br />
Symmetry<br />
Penalty<br />
6 / 10
The symmetric interior penalty method (SIP)<br />
a h (u h , v h ) = ∑ ∫<br />
∇u h · ∇v h dx − ∑ ∫<br />
〈∇u h 〉 · n[v h ] dS<br />
T ∈T<br />
T<br />
F ∈F<br />
F<br />
} {{ }<br />
Consistency<br />
− ∑ ∫<br />
〈∇v h 〉 · n[u h ] dS + ∑ γ<br />
[u h ][v h ] dS<br />
F ∈F<br />
F<br />
h F<br />
F ∈F<br />
∫F<br />
} {{ } } {{ }<br />
Symmetry<br />
Penalty<br />
∫<br />
l h (v h ) = fv h dx − ∑<br />
〈∇v h 〉 · ng dS + ∑ γ<br />
gv h dS<br />
Ω<br />
F ∈F b ∫F<br />
h F<br />
∫F<br />
F ∈F b<br />
6 / 10
The symmetric interior penalty method (SIP)<br />
a h (u h , v h ) = ∑ ∫<br />
∇u h · ∇v h dx − ∑ ∫<br />
〈∇u h 〉 · n[v h ] dS<br />
T ∈T<br />
T<br />
F ∈F<br />
F<br />
} {{ }<br />
Consistency<br />
− ∑ ∫<br />
〈∇v h 〉 · n[u h ] dS + ∑ γ<br />
[u h ][v h ] dS<br />
F ∈F<br />
F<br />
h F<br />
F ∈F<br />
∫F<br />
} {{ } } {{ }<br />
Symmetry<br />
Penalty<br />
∫<br />
l h (v h ) = fv h dx − ∑<br />
〈∇v h 〉 · ng dS + ∑ γ<br />
gv h dS<br />
Ω<br />
F ∈F b ∫F<br />
h F<br />
∫F<br />
F ∈F b<br />
6 / 10
Split of SIP form into interior and boundary<br />
contribution<br />
a h (u h , v h ) = ∑ T ∈T<br />
∫<br />
− ∑<br />
T<br />
F ∈F i ∫F<br />
∇u h · ∇v h dx − ∑<br />
F ∈F i ∫F<br />
〈∇u h 〉 · n[v h ] dS<br />
} {{ }<br />
Consistency<br />
〈∇v h 〉 · n[u h ] dS + ∑ γ<br />
[u h ][v h ] dS<br />
} {{ }<br />
Symmetry<br />
− ∑<br />
∇u h · nv h ds<br />
F ∈F b ∫F<br />
} {{ }<br />
Consistency<br />
+ ∑ γ<br />
u h v h ds<br />
h F<br />
∫F<br />
F ∈F b<br />
− ∑<br />
h F<br />
∫F<br />
F ∈F i<br />
} {{ }<br />
Penalty<br />
F ∈F b ∫F<br />
∇v h · nu h ds<br />
} {{ }<br />
Symmetry<br />
} {{ }<br />
Penalty 7 / 10
Useful <strong>FEniCS</strong> tools (I)<br />
Access facet normals and local mesh size:<br />
n = FacetNormal ( mesh )<br />
h = CellSize ( mesh )<br />
Restriction:<br />
f = Function (V)<br />
f(’+’)<br />
grad (f)(’+’)<br />
8 / 10
Useful <strong>FEniCS</strong> tools (II)<br />
Average and jump:<br />
# define it yourself<br />
h_avg = (h(’+’) + h(’-’))/2<br />
# or use built -in expression<br />
avg (h)<br />
jump (v)<br />
jump (v, n)<br />
Integration on interior facets:<br />
... *dS<br />
alpha / h_avg * dot ( jump (v, n), jump (u, n))*dS<br />
9 / 10
Exercise<br />
Solve our favorite Poisson problem given<br />
• Domain:<br />
Ω = [0, 1] × [0, 1],<br />
∂Ω D = ∂Ω<br />
• Source and boundary values:<br />
f(x, y) = 200 cos(10πx) cos(10πy)<br />
g D (x, y) = cos(10πx) cos(10πy)<br />
Mission: Solve this PDE numerically by using the SIP method.<br />
Print the errornorm for both the L 2 and the H 1 norm for various<br />
mesh sizes. For a UnitSquareMesh(128,128) the error should be<br />
0.0009166 and 0.1962, respectively.<br />
Extra mission: Implement the NIP variant, solve the same<br />
problem and compare the H 1 and L 2 error for a range of<br />
meshes UnitSquareMesh(N,N), N = 2 j , j = 2, · · · , 7. Can you<br />
determine the order of convergence?<br />
10 / 10