Skip to content

Commit 6b762d3

Browse files
committed
Prepare doc/ and README.md (WIP)
1 parent ca74583 commit 6b762d3

File tree

8 files changed

+154
-0
lines changed

8 files changed

+154
-0
lines changed

agglomeration_poisson/README.md

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
# A posteriori error estimator for first order hyperbolic problems
2+
3+
4+
## Running the code:
5+
6+
As in the tutorial programs, type
7+
8+
`cmake -DDEAL_II_DIR=/path/to/deal.II .`
9+
10+
on the command line to configure the program. After that you can compile with `make` and run with either `make run` or using
11+
12+
`./DG_advection_reaction`
13+
14+
on the command line.
15+
16+
### Parameter file:
17+
18+
If you run `./DG_advection_reaction parameters.prm`, an error message will tell you that a parameter file has been created for you. You can open it and change some useful parameters like the number of refinement cycles, the advection coefficient, and others. If you don't specify anything, then the default values used for the test case (see paragraph below) will be used.
19+
20+
21+
22+
23+
## The problem:
24+
This program solves the problem, for $\Omega \in \mathbb{R^2}$
25+
26+
@f[
27+
\begin{cases} b \cdot \nabla u + c u = f \qquad \text{in } \Omega \\
28+
\qquad \qquad u=g \qquad \text{on } \partial_{-}\Omega \end{cases}
29+
@f]
30+
31+
where $g \in L^2(\partial_{-}\Omega)$ and $\partial_{-}\Omega=\{ x \in
32+
\partial \Omega: b(x)\cdot n(x) <0\}$ is the inflow part of the
33+
boundary, with $b=(b_1,b_2) \in \mathbb{R^2}$. As we know from
34+
classical DG theory, we need to ensure that
35+
@f[
36+
c(x) - \frac{1}{2}\nabla \cdot b \geq \gamma_0 >0
37+
@f]
38+
for some positive $\gamma_0$ so that we have coercivity in $L^2$ at the continuous level. Discrete coercivity is achieved by using a stronger norm which takes care of jumps, see Di Pietro and Ern [2] for details.
39+
40+
41+
## The weak formulation:
42+
43+
44+
45+
As trial space we choose $V_h = \{ v_h \in L^2(\Omega): v_h \in P^1(\mathbb{T_h})\} \notin H^1(\Omega)$. If we integrate by parts and sum over all cells
46+
47+
@f[
48+
\sum_{T \in \mathbb{T}_h} \Bigl( (-u,\beta \cdot \nabla v_h) _T + (c
49+
u,v_h)_T + \bigl<(b \cdot n) u ,v_h \bigr>_{\partial T} \Bigr) =
50+
(f,v_h)_{\Omega}
51+
@f]
52+
53+
and use the so-called DG magic formula and exploit the property $[bu]_{\mathbb{F}^i} = 0$ where $\mathbb{F}^i$ are set of internal faces we obtain the (unstable!) formulation:
54+
55+
Find $u_h \in V_h$:
56+
57+
@f[
58+
a_h(u_h,v_h) + b_h(u_h,v_h)=l(v_h) \qquad \forall v_h \in V_h
59+
@f]
60+
where
61+
@f[
62+
a_h(u,v_h)=\sum_{T \in \mathbb{T}_h} \Bigl( (-u,b \cdot \nabla v_h) _T + (c u,v_h)_T \Bigr)
63+
@f]
64+
65+
@f[
66+
b_h(u,v_h)= \sum_{F \not \in \partial_{-}\Omega} \bigl< \{ bu\}, [v_h]\bigr>_F
67+
@f]
68+
69+
@f[
70+
l(v_h)= (f,v_h)_{\Omega} - \sum_{F \in \partial_{-}\Omega} \bigl< (b \cdot n) g,v_h \bigr>_F
71+
@f]
72+
73+
It's well known this formulation is coercive only in $L^2$, hence the formulation is unstable as we don't "see" the derivatives. To stabilize this, we can use a jump-penalty term, i.e. our $b_h$ is replaced by:
74+
75+
@f[
76+
b_h^s(u_h,v_h)=b_h(u_h,v_h)+ \sum_{F \in \mathbb{F}^i} \bigl< c_F
77+
[u_h],[v_h] \bigr>
78+
@f]
79+
80+
where $c_F>0$ is a function on each edge such that $c_F \geq \theta |b \cdot n|$ for some positive $\theta$. In this program, $\theta=\frac{1}{2}$ and $c_F = \frac{1}{2} |b \cdot n|$, which corresponds to an upwind formulation. Notice that consistency is trivially achieved, as $[u]_{\mathbb{F}^i} =0$. This formulation is stable in the energy norm
81+
82+
@f[
83+
|||\cdot ||| = \Bigl(||\cdot||_{0,\Omega}^2 + \sum_{F \in
84+
\mathbb{F}}||c_F^{\frac{1}{2}}[\cdot] ||_{0,F}^2
85+
\Bigr)^{\frac{1}{2}}
86+
@f]
87+
88+
(well defined on $H^1(\Omega) + V_h$) and moreover we have the a-priori bound:
89+
90+
@f[
91+
|||u-u_h||| \leq C h^{k+\frac{1}{2}}||u||_{k+1,\Omega}
92+
@f]
93+
94+
valid for $u \in H^{k+1}(\Omega)$.
95+
96+
See Brezzi-Marini-Süli [3] for more details.
97+
98+
99+
100+
## A-posteriori error estimator:
101+
102+
The estimator is the one proposed by Georgoulis, Edward Hall and Charalambos Makridakis in [3]. This approach is quite different with respect to other works in the field, as the authors are trying to develop an estimator for the original hyperbolic problem, rather than taking the hyperbolic regime as the vanishing diffusivity limit.
103+
104+
The reliability is:
105+
106+
@f[
107+
|||u-u_h|||^2 \leq C || \sqrt{b \cdot n}[u_h]||_{\Gamma^{-}}^2 + C
108+
\sum_{T \in \mathbb{T}_h}\Bigl( ||\beta (g-u_h^+)||_{\partial_{-}T
109+
\cap \partial_{-} \Omega}^2 +||f-c u_h - \Pi(f- cu_h)||_T^2 \Bigr)
110+
@f]
111+
112+
where:
113+
114+
- $\Pi$ is the (local) $L^2$ orthogonal projection onto $V_h$
115+
116+
- $\Gamma$ is the skeleton of the mesh
117+
118+
- $c$ is constant
119+
120+
- $\beta = |b \cdot n|$
121+
122+
- $u_h^+$ is the interior trace from the current cell $T$ of a the finite element function $u_h$.
123+
124+
125+
126+
## Test case:
127+
128+
The following test case has been taken from [3]. Consider:
129+
- $c=1$
130+
- $b=(1,1)$
131+
- $f$ to be such that the exact solution is $u(x,y)=\tanh(100(x+y-\frac{1}{2}))$
132+
This solution has an internal layer along the line $y=\frac{1}{2} -x$, hence we would like to see that part of the domain to be much more refined than the rest.
133+
134+
The next image is the 3D view of the numerical solution:
135+
136+
![Screenshot](./doc/images/warp_by_scalar_solution_layer.png)
137+
138+
More interestingly, we see that the estimator has been able to capture the layer. Here a bulk-chasing criterion is used, with bottom fraction ´0.5´ and no coarsening. This mesh is obtained after 12 refinement cycles.
139+
![Screenshot](./doc/images/refined_mesh_internal_layer.png)
140+
141+
142+
If we look at the decrease of the energy norm of the error in the globally refined case and in the adaptively case, with respect to the DoFs, we obtain:
143+
144+
![Screenshot](./doc/images/adaptive_vs_global_refinement.png)
145+
146+
## References
147+
* [1] Emmanuil H. Georgoulis, Edward Hall and Charalambos Makridakis (2013), Error Control for Discontinuous Galerkin Methods for First Order Hyperbolic Problems. DOI: [10.1007/978-3-319-01818-8_8
148+
](https://link.springer.com/chapter/10.1007%2F978-3-319-01818-8_8)
149+
* [2] Di Pietro, Daniele Antonio and Ern, Alexandre (2012), Mathematical Aspects of Discontinuous Galerkin Methods. ISBN: [978-3-642-22980-0](https://www.springer.com/gp/book/9783642229794)
150+
* [3] Franco Brezzi, Luisa Donatella Marini and Endre Süli (2004) Discontinuous Galerkin Methods for First-Order Hyperbolic Problems. DOI: [10.1142/S0218202504003866](https://doi.org/10.1142/S0218202504003866)

agglomeration_poisson/doc/author

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Marco Feder <marco.feder@sissa.it>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
step-12 step-74
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Adaptive advection-reaction
148 KB
Loading
125 KB
Loading
181 KB
Loading

agglomeration_poisson/doc/tooltip

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Implementation of an a-posteriori error estimator for first order hyperbolic problems

0 commit comments

Comments
 (0)