From a65fcdedac5928cea5bbb4db044f6156913c12bd Mon Sep 17 00:00:00 2001 From: wolf Date: Thu, 23 Feb 2006 20:50:18 +0000 Subject: [PATCH] Bring HTML version of intro up to date. git-svn-id: https://svn.dealii.org/trunk@12481 0785d39b-7218-0410-832d-ea1e28bc413d --- .../step-12.data/intro.html | 1237 ++++++++++------- .../step-12.data/intro/img1.png | Bin 0 -> 569 bytes .../step-12.data/intro/img10.png | Bin 0 -> 218 bytes .../step-12.data/intro/img11.png | Bin 0 -> 883 bytes .../step-12.data/intro/img12.png | Bin 0 -> 185 bytes .../step-12.data/intro/img13.png | Bin 0 -> 161 bytes .../step-12.data/intro/img14.png | Bin 0 -> 455 bytes .../step-12.data/intro/img15.png | Bin 0 -> 628 bytes .../step-12.data/intro/img16.png | Bin 0 -> 294 bytes .../step-12.data/intro/img17.png | Bin 0 -> 267 bytes .../step-12.data/intro/img18.png | Bin 0 -> 739 bytes .../step-12.data/intro/img19.png | Bin 0 -> 305 bytes .../step-12.data/intro/img2.png | Bin 0 -> 248 bytes .../step-12.data/intro/img20.png | Bin 0 -> 450 bytes .../step-12.data/intro/img21.png | Bin 0 -> 536 bytes .../step-12.data/intro/img22.png | Bin 0 -> 215 bytes .../step-12.data/intro/img23.png | Bin 0 -> 516 bytes .../step-12.data/intro/img24.png | Bin 0 -> 1416 bytes .../step-12.data/intro/img25.png | Bin 0 -> 188 bytes .../step-12.data/intro/img26.png | Bin 0 -> 198 bytes .../step-12.data/intro/img27.png | Bin 0 -> 300 bytes .../step-12.data/intro/img28.png | Bin 0 -> 341 bytes .../step-12.data/intro/img29.png | Bin 0 -> 266 bytes .../step-12.data/intro/img3.png | Bin 0 -> 300 bytes .../step-12.data/intro/img30.png | Bin 0 -> 243 bytes .../step-12.data/intro/img31.png | Bin 0 -> 235 bytes .../step-12.data/intro/img32.png | Bin 0 -> 261 bytes .../step-12.data/intro/img33.png | Bin 0 -> 223 bytes .../step-12.data/intro/img34.png | Bin 0 -> 430 bytes .../step-12.data/intro/img35.png | Bin 0 -> 623 bytes .../step-12.data/intro/img36.png | Bin 0 -> 369 bytes .../step-12.data/intro/img37.png | Bin 0 -> 363 bytes .../step-12.data/intro/img38.png | Bin 0 -> 253 bytes .../step-12.data/intro/img39.png | Bin 0 -> 744 bytes .../step-12.data/intro/img4.png | Bin 0 -> 205 bytes .../step-12.data/intro/img40.png | Bin 0 -> 856 bytes .../step-12.data/intro/img41.png | Bin 0 -> 408 bytes .../step-12.data/intro/img42.png | Bin 0 -> 1999 bytes .../step-12.data/intro/img43.png | Bin 0 -> 273 bytes .../step-12.data/intro/img44.png | Bin 0 -> 2250 bytes .../step-12.data/intro/img45.png | Bin 0 -> 281 bytes .../step-12.data/intro/img46.png | Bin 0 -> 396 bytes .../step-12.data/intro/img47.png | Bin 0 -> 2415 bytes .../step-12.data/intro/img48.png | Bin 0 -> 1067 bytes .../step-12.data/intro/img49.png | Bin 0 -> 576 bytes .../step-12.data/intro/img5.png | Bin 0 -> 176 bytes .../step-12.data/intro/img50.png | Bin 0 -> 1941 bytes .../step-12.data/intro/img51.png | Bin 0 -> 530 bytes .../step-12.data/intro/img52.png | Bin 0 -> 506 bytes .../step-12.data/intro/img53.png | Bin 0 -> 431 bytes .../step-12.data/intro/img54.png | Bin 0 -> 224 bytes .../step-12.data/intro/img55.png | Bin 0 -> 2609 bytes .../step-12.data/intro/img56.png | Bin 0 -> 2526 bytes .../step-12.data/intro/img57.png | Bin 0 -> 296 bytes .../step-12.data/intro/img58.png | Bin 0 -> 227 bytes .../step-12.data/intro/img59.png | Bin 0 -> 193 bytes .../step-12.data/intro/img6.png | Bin 0 -> 361 bytes .../step-12.data/intro/img60.png | Bin 0 -> 271 bytes .../step-12.data/intro/img61.png | Bin 0 -> 2513 bytes .../step-12.data/intro/img62.png | Bin 0 -> 180 bytes .../step-12.data/intro/img7.png | Bin 0 -> 498 bytes .../step-12.data/intro/img8.png | Bin 0 -> 214 bytes .../step-12.data/intro/img9.png | Bin 0 -> 200 bytes 63 files changed, 711 insertions(+), 526 deletions(-) create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img1.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img10.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img11.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img12.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img13.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img14.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img15.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img16.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img17.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img18.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img19.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img2.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img20.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img21.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img22.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img23.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img24.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img25.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img26.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img27.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img28.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img29.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img3.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img30.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img31.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img32.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img33.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img34.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img35.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img36.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img37.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img38.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img39.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img4.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img40.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img41.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img42.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img43.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img44.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img45.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img46.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img47.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img48.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img49.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img5.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img50.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img51.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img52.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img53.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img54.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img55.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img56.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img57.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img58.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img59.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img6.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img60.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img61.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img62.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img7.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img8.png create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img9.png diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro.html b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro.html index f2f5f3c6a7..fae153754f 100644 --- a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro.html +++ b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro.html @@ -3,28 +3,34 @@ -

+

Overview -

-This example is devoted to the discontinuous Galerkin method, or +

+This example is devoted to the discontinuous Galerkin method, or in short: DG method. It includes the following topics. + +

-

+

Problem -

+

The DG method was first introduced to discretize simple transport equations. Over the past years DG methods have been applied to a variety of problems and many different schemes were introduced @@ -32,556 +38,726 @@ employing a big zoo of different convective and diffusive fluxes. As this example's purpose is to illustrate some implementational issues of the DG discretization only, here we simply consider the linear transport equation -

-
- - - - - -
 \begin{displaymath}
-\nabla\cdot \left\{\beta u\right\}=f \qquad\mbox{in }\Omega,
-\end{displaymath} +

+
+ + + + -
$\displaystyle \nabla\cdot \left\{\boldsymbol\beta u\right\}=f$   in $\displaystyle \Omega,$ (1)
-
+

subject to the boundary conditions -

+

+

- - - \begin{displaymath}u=g\quad\mbox{on }\partial\Omega_-.
-\end{displaymath} -
-
-

-Here, - -$\beta=\beta(x)$ -is a vector field, f a source function, u the -(scalar) solution function, g a boundary value function and -

+ WIDTH="46" HEIGHT="31" ALIGN="MIDDLE" BORDER="0" + SRC="step-12.data/intro/img3.png" + ALT="$\displaystyle u=g$">   on $\displaystyle \Gamma_-,
+$ +

+

+on the inflow part $ \Gamma_-$ + of the boundary +$ \Gamma=\partial\Omega$ + +of the domain. Here, +$ \boldsymbol\beta=\boldsymbol\beta(x)$ + denotes a +vector field, $ f$ + a source function, $ u$ + the (scalar) solution +function, $ g$ + a boundary value function, +

+

- - - \begin{displaymath}\partial\Omega_-:=\{x\in\partial\Omega, \beta(x)\cdot n(x)<0\}
-\end{displaymath} -
-
-

-the inflow part of the boundary of the domain, whereas n denotes the -unit outer normal to the boundary - -$\partial\Omega$. -This -equation, (1), is the conservative version of -the transport equation already considered in step 9 of this tutorial. + WIDTH="237" HEIGHT="35" ALIGN="MIDDLE" BORDER="0" + SRC="step-12.data/intro/img11.png" + ALT="$\displaystyle \Gamma_-:=\{x\in\Gamma, \boldsymbol\beta(x)\cdot{\bf n}(x)<0\} +$"> +

+

+the inflow part of the boundary of the domain and $ {\bf n}$ + denotes +the unit outward normal to the boundary $ \Gamma$ +. Equation +(1) is the conservative version of the +transport equation already considered in step 9 of this tutorial.

-In particular, we consider problem (1) on - - -$\Omega=[0,1]^2$ -with - -$\beta=\frac{1}{\vert x\vert}(-x_2, x_1)$ -representing a -circular counterclockwise flow field, f=0 and g=1 on - - -$x\in\partial\Omega_-^1:=[0,0.5]\times\{0\}$ -and g=0 on - -$x\in
-\partial\Omega_-\setminus \partial\Omega_-^1$. - -

+In particular, we consider problem (1) on + +$ \Omega=[0,1]^2$ + with +$ \boldsymbol\beta=\frac{1}{\vert x\vert}(-x_2, x_1)$ + +representing a circular counterclockwise flow field, $ f=0$ + and $ g=1$ + +on +$ x\in\Gamma_-^1:=[0,0.5]\times\{0\}$ + and $ g=0$ + on +$ x\in
+\Gamma_-\setminus \Gamma_-^1$ +. + +

Discretization -

-To follow the general paradigm of deriving DG discretizations for purely -hyperbolic equations we first consider the general hyperbolic problem -

+ +Following the general paradigm of deriving DG discretizations for +purely hyperbolic equations, we first consider the general hyperbolic +problem +

+

- - - \begin{displaymath}\nabla\cdot F(u)=f \qquad\mbox{in }\Omega,
-\end{displaymath} -
-
-

-subject to appropriate boundary conditions. Here F denotes the flux -function of the equation under consideration that in our case, see -equation (1), is represented by - -$F(u)=\beta u$. -For deriving the DG discretization we start with a variational, -mesh-dependent formulation of the problem, -

+ WIDTH="103" HEIGHT="35" ALIGN="MIDDLE" BORDER="0" + SRC="step-12.data/intro/img21.png" + ALT="$\displaystyle \nabla\cdot {\mathcal F}(u)=f$">   in $\displaystyle \Omega,$ +

+

+subject to appropriate boundary conditions. Here +$ {\mathcal F}$ + +denotes the flux function of the equation under consideration that in +our case, see equation (1), is represented by + +$ {\mathcal F}(u)=\boldsymbol\beta u$ +. For deriving the DG +discretization we start with a variational, mesh-dependent +formulation of the problem, +

+

- - - \begin{displaymath}\sum_K\left\{-(F(u),\nabla v)_K+(F(u)\cdot n, v)_{\partial K}\right\}=(f,v)_\Omega,
-\end{displaymath} -
-
-

-that originates from (1) by multiplication with -a test function and integration by parts on each cell K of the -triangulation. Here - -$(\cdot, \cdot)_K$ -and - -$(\cdot, \cdot)_{\partial
-K}$ -simply denote the integrals over the cell and the boundary of -the cell, respectively. To discretize the problem, the functions u -and v are replaced by discrete functions uh and vh that in the -case of discontinuous Galerkin methods belong to the space Vh of -discontinuous piecewise polynomial functions of some degree p. Due -to the discontinuity of the discrete function uh on interelement -faces, the flux - -$F(u)\cdot n$ -must be replaced by a numerical - flux function - -$H(u_h, \hat u_h, n)$, -where - -$u_h\vert _{\partial K}$denotes the inner trace (w.r.t. the cell K) of uh and - -$\hat
-u_h\vert _{\partial K}$ -the outer trace, i.e. the value of uh on the -neighboring cell. Furthermore the numerical flux function H, among -other things, must be consistent, i.e. -

+ WIDTH="363" HEIGHT="52" ALIGN="MIDDLE" BORDER="0" + SRC="step-12.data/intro/img24.png" + ALT="$\displaystyle \sum_\kappa\left\{-({\mathcal F}(u),\nabla v)_\kappa+({\mathcal +F}(u)\cdot{\bf n}, v)_{\partial\kappa}\right\}=(f,v)_\Omega, +$"> +

+

+that originates from (1) by multiplication with +a test function $ v$ + and integration by parts on each cell $ \kappa$ + of +the triangulation. Here +$ (\cdot, \cdot)_\kappa$ + and +$ (\cdot,
+\cdot)_{\partial\kappa}$ + simply denote the integrals over the cell +$ \kappa$ + and the boundary +$ \partial\kappa$ + of the cell, +respectively. To discretize the problem, the functions $ u$ + and $ v$ + are +replaced by discrete functions $ u_h$ + and $ v_h$ + that in the case of +discontinuous Galerkin methods belong to the space $ V_h$ + of +discontinuous piecewise polynomial functions of some degree $ p$ +. Due +to the discontinuity of the discrete function $ u_h$ + on interelement +faces, the flux +$ {\mathcal F}(u)\cdot{\bf n}$ + must be replaced by a +numerical flux function +$ {\mathcal H}(u_h^+, u_h^-, {\bf n})$ +, +where +$ u_h^+\vert _{\partial\kappa}$ + denotes the inner trace (w.r.t. the +cell $ \kappa$ +) of $ u_h$ + and +$ u_h^-\vert _{\partial\kappa}$ + the outer trace, +i.e. the value of $ u_h$ + on the neighboring cell. Furthermore the +numerical flux function +$ {\mathcal H}$ +, among other things, must be +consistent, i.e. +

+

- - - \begin{displaymath}H(u,u,n)=F(u)\cdot n,
-\end{displaymath} -
-
-

+ WIDTH="169" HEIGHT="35" ALIGN="MIDDLE" BORDER="0" + SRC="step-12.data/intro/img39.png" + ALT="$\displaystyle {\mathcal H}(u,u,{\bf n})={\mathcal F}(u)\cdot{\bf n}, +$"> +

+

and conservative, i.e. -

-
- - -  - - -
-H(v,w,n)=-H(w,v,-n). - +

+
+ + + + -
$\displaystyle {\mathcal H}(v,w,{\bf n})=-{\mathcal H}(w,v,-{\bf n}).$ (2)
-
+

-This yields the following discontinuous Galerkin - discretization: find - -$u_h\in V_h$ -such that -

-
- - - - - -
 \begin{displaymath}
-\sum_K\left\{-(F(u_h),\nabla v_h)_K+(H(u_h,\hat u_h,n), v_h)_{\partial K}\right\}=(f,v)_\Omega, \quad\forall v_h\in V_h.
-\end{displaymath} +This yields the following discontinuous Galerkin + discretization: find +$ u_h\in V_h$ + such that +

+
+ + + + -
$\displaystyle \sum_\kappa\left\{-({\mathcal F}(u_h),\nabla v_h)_\kappa+({\mathc...
+...\bf n}), v_h)_{\partial\kappa}\right\}=(f,v_h)_\Omega, \quad\forall v_h\in V_h.$ (3)
-
+

Boundary conditions are realized by replacing $\hat u_h$ -on the inflow boundary - -$\partial\Omega_-$ -by the boundary function g. + WIDTH="26" HEIGHT="39" ALIGN="MIDDLE" BORDER="0" + SRC="step-12.data/intro/img43.png" + ALT="$ u_h^-$"> + on the inflow boundary $ \Gamma_-$ + by the boundary function $ g$ +. In the special case of the transport equation -(1) the numerical flux in its simplest form +(1) the numerical flux in its simplest form is given by -

-
- - - - - -
 \begin{displaymath}
-H(u_h,\hat u_h,n)(x)=\left\{\begin{array}{ll}
-(\beta\cdot ...
-...)(x),&\mbox{for } \beta(x)\cdot n(x)\geq 0,
-\end{array}\right.
-\end{displaymath} +\end{equation} + --> + + + + -
$\displaystyle {\mathcal H}(u_h^+,u_h^-,{\bf n})(x)=\left\{\begin{array}{ll} (\b...
+...)(x),&\mbox{for } \boldsymbol\beta(x)\cdot{\bf n}(x)\geq 0, \end{array} \right.$ (4)
- +

where on the inflow part of the cell the value is taken from the neighboring cell, $\hat u_h$, -and on the outflow part the value is -taken from the current cell, uh. Hence, the discontinuous Galerkin -scheme for the transport equation (1) is given -by: find - -$u_h\in V_h$ -such that for all - -$v_h\in V_h$ -following + WIDTH="26" HEIGHT="39" ALIGN="MIDDLE" BORDER="0" + SRC="step-12.data/intro/img43.png" + ALT="$ u_h^-$"> +, and on the outflow part the value is +taken from the current cell, $ u_h^+$ +. Hence, the discontinuous Galerkin +scheme for the transport equation (1) is given +by: find +$ u_h\in V_h$ + such that for all +$ v_h\in V_h$ + following equation holds: -

-
- - - - - -
 \begin{displaymath}
-\sum_K\left\{-(u_h,\beta\cdot\nabla v_h)_K+(\beta\cdot n\, ...
-...ght\}=(f,v)_\Omega-(\beta\cdot n\, g, v_h)_{\partial\Omega_-},
-\end{displaymath} +

+
+ + + + -
$\displaystyle \sum_\kappa\left\{-(u_h,\boldsymbol\beta\cdot\nabla v_h)_\kappa+(...
+...mma}\right\}=(f,v_h)_\Omega-(\boldsymbol\beta\cdot{\bf n}\, g, v_h)_{\Gamma_-},$ (5)
-
+

-where - -$\partial K_-:=\{x\in\partial K, \beta(x)\cdot n(x)<0\}$ -denotes -the inflow boundary and - -$\partial K_+=\partial K\setminus \partial
-K_-$ -the outflow part of cell K. Below, this equation will be -referred to as first version of the DG method. We note that -after integrating by parts again, we end up with: find - -$u_h\in V_h$such that -

+where +$ \partial\kappa_-:=\{x\in\partial\kappa,
+\boldsymbol\beta(x)\cdot{\bf n}(x)<0\}$ + denotes the inflow boundary +and +$ \partial\kappa_+=\partial\kappa\setminus \partial \kappa_-$ + the +outflow part of cell $ \kappa$ +. Below, this equation will be referred +to as first version of the DG method. We note that after a +second integration by parts, we obtain: find +$ u_h\in V_h$ + such that +

+

- - - \begin{displaymath}\sum_K\left\{(\nabla\cdot\{\beta u_h\},\nabla v_h)_K-(\beta\c...
-..._{\partial K_-}\right\}=(f,v)_\Omega, \quad\forall v_h\in V_h,
-\end{displaymath} -
-
-

-where - -$[u_h]=u_h-\hat u_h$ -denotes the jump of the discrete function -between two neighboring cells, that on the boundary of the domain is defined to be - -[uh]=uh-g. This is the discontinuous Galerkin -scheme for the transport equation given in its original notation. -Nevertheless, we will base the implementation of the scheme on the form -given by (3) and (4), or -(5), respectively. + WIDTH="518" HEIGHT="52" ALIGN="MIDDLE" BORDER="0" + SRC="step-12.data/intro/img50.png" + ALT="$\displaystyle \sum_\kappa\left\{(\nabla\cdot\{\boldsymbol\beta u_h\},\nabla v_h... +...u_h], v_h)_{\partial\kappa_-}\right\}=(f,v_h)_\Omega, \quad\forall v_h\in V_h, +$"> +

+

+where +$ [u_h]=u_h^+-u_h^-$ + denotes the jump of the discrete function +between two neighboring cells and is defined to be +$ [u_h]=u_h^+-g$ + on +the boundary of the domain. This is the discontinuous Galerkin scheme +for the transport equation given in its original notation. +Nevertheless, we will base the implementation of the scheme on the +form given by (3) and (4), +or (5), respectively.

-Finally we rewrite (3) in terms of a summation over all faces -where each face - -$\Gamma=\partial
-K\cap\partial \hat K$ -between two neighboring cells K and $\hat K$occurs twice: Find - -$u_h\in V_h$ -such that -

-
- - - - - -
 \begin{displaymath}
--\sum_K(F(u_h),\nabla v_h)_K+\sum_\Gamma\left\{(H(u_h,\hat ...
-...s\partial\Omega}\right\}=(f,v)_\Omega \quad\forall v_h\in V_h,
-\end{displaymath} +Finally, we rewrite (3) in terms of a summation over all +faces where each face +$ e=\partial \kappa\cap\partial \kappa'$ + +between two neighboring cells $ \kappa$ + and $ \kappa'$ + occurs twice: +Find +$ u_h\in V_h$ + such that +

+
+ + + + -
$\displaystyle -\sum_\kappa({\mathcal F}(u_h),\nabla v_h)_\kappa+\sum_e\left\{({...
+... n}), v_h^-)_{e\setminus\Gamma}\right\}=(f,v_h)_\Omega \quad\forall v_h\in V_h,$ (6)
-
+

-By employing conservativity (2) of the numerical flux -this equation simplifies to: find - -$u_h\in V_h$ -such that -

-
- - - - - -
 \begin{displaymath}
--\sum_K(F(u_h),\nabla v_h)_K+\sum_\Gamma(H(u_h,\hat u_h,n),...
-...), v_h)_{\partial\Omega}=(f,v)_\Omega \quad\forall v_h\in V_h.
-\end{displaymath} +By employing conservativity (2) of the numerical flux +this equation simplifies to: find +$ u_h\in V_h$ + such that +

+
+ + + + -
$\displaystyle -\sum_\kappa({\mathcal F}(u_h),\nabla v_h)_\kappa+\sum_e({\mathca...
+...athcal H}(u_h,g,{\bf n}), v_h)_{\Gamma}=(f,v_h)_\Omega \quad\forall v_h\in V_h.$ (7)
-
+

-Whereas the outer unit normal - -$n\vert _{\partial K}$ -is uniquely defined -this is not so for $n_\Gamma$ -as the latter might be the normal from -either side of the face. Hence, we need to fix the normal n on the -face to be one of the two normals and denote the other normal by -n. -This way we get -n in the second face term in -(6) that finally produces the minus sign in -the jump [vh] in equation (7). +Whereas the outer unit normal +$ {\bf n}\vert _{\partial\kappa}$ + is uniquely +defined this is not so for $ {\bf n}_e$ + as the latter might be the +normal from either side of the face. Hence, we need to fix the normal +$ {\bf n}$ + on the face to be one of the two normals and denote the +other normal by $ -{\bf n}$ +. This way we get $ -{\bf n}$ + in the second +face term in (6) that finally produces the +minus sign in the jump $ [v_h]$ + in equation (7).

-For the linear transport equation (1) -equation (7) simplifies to -

-
- - - - - -
 \begin{displaymath}
--\sum_K(u_h,\beta\cdot\nabla v_h)_K+\sum_\Gamma\left\{(\bet...
-...ght\}=(f,v)_\Omega-(\beta\cdot n\, g, v_h)_{\partial\Omega_-},
-\end{displaymath} +For the linear transport equation (1) +equation (7) simplifies to +

+
+ + + + -
$\displaystyle -\sum_\kappa(u_h,\boldsymbol\beta\cdot\nabla v_h)_\kappa+\sum_e\l...
+...mma}\right\}=(f,v_h)_\Omega-(\boldsymbol\beta\cdot{\bf n}\, g, v_h)_{\Gamma_-},$ (8)
-
+

-which will be refered to as second version of the DG method. +which will be refered to as second version of the DG method. -

+

Implementation -

+

As already mentioned at the beginning of this example we will implement assembling the system matrix in two different ways. -The first one will be based on the first version (5) +The first one will be based on the first version (5) of the DG method that includes a sum of integrals over all cell -boundaries - -$\partial K$. -This is realized by a loop over all cells and +boundaries +$ \partial\kappa$ +. This is realized by a loop over all cells and a nested loop over all faces of each cell. Thereby each inner face - - -$\Gamma=\partial
-K\cap\partial \hat K$ -is treated twice, the first -time when the outer loop treats cell K and the second time when it + +$ e=\partial \kappa\cap\partial \kappa'$ + is treated twice, the first +time when the outer loop treats cell $ \kappa$ + and the second time when it treats cell $\hat K$. -This way some values like the shape function + WIDTH="19" HEIGHT="17" ALIGN="BOTTOM" BORDER="0" + SRC="step-12.data/intro/img54.png" + ALT="$ \kappa'$"> +. This way some values like the shape function values at quadrature points on faces need to be computed twice.

To overcome this overhead and for comparison, we implement assembling of matrix also in a second and different way. This will -be based on the second version (8) that +be based on the second version (8) that includes a sum of integrals over all faces $\Gamma$. -Here, several + WIDTH="12" HEIGHT="15" ALIGN="BOTTOM" BORDER="0" + SRC="step-12.data/intro/img62.png" + ALT="$ e$"> +. Here, several difficulties occurs. +

Before we start with the description of the code we first introduce + + + + + +Before we start with the description of the code we first introduce its main ingredients. The main class is called -DGMethod. It comprises all basic objects like the +DGMethod. It comprises all basic objects like the triangulation, the dofhandler, the system matrix and solution vectors. Furthermore it has got some member functions, the most prominent of -which are the assemble_system1 and assemble_system2 +which are the assemble_system1 and assemble_system2 functions that implement the two different ways mentioned above for assembling the system matrix. Within these assembling routines several different cases must be distinguished while performing the nested loops over all cells and all faces of each cell and assembling the respective face terms. While sitting on the current cell and looking at a specific face there are the cases -
-
1. -
face is at boundary, -
2. -
neighboring cell is finer, -
3. -
neighboring cell is of the same refinement level, and -
4. -
neighboring cell is coarser -
where the `neighboring cell' and the current cell have the mentioned + +
    +
  1. face is at boundary, +
  2. +
  3. neighboring cell is finer, +
  4. +
  5. neighboring cell is of the same refinement level, and +
  6. +
  7. neighboring cell is coarser +
  8. +
+where the `neighboring cell' and the current cell have the mentioned faces in common. In last three cases the assembling of the face terms are almost the same. Hence, we can implement the assembling of the face terms either by `copy and paste' (the lazy way, whose @@ -625,24 +810,24 @@ three cases. To be kind of educational within this tutorial we perform the latter approach, of course. We go even further and encapsulate this function and everything that is needed for assembling the specific equation under consideration within a class called -DGTransportEquation. This class includes objects of all -equation-specific functions, the RHS and the -BoundaryValues class, both derived from the Function -class, and the Beta class representing the vector field. -Furthermore, the DGTransportEquation class comprises member -functions assemble_face_terms1 and -assemble_face_terms2 that are invoked by the -assemble_system1 and assemble_system2 functions of the -DGMethod, respectively, and the functions -assemble_cell_term and assemble_boundary_term that +DGTransportEquation. This class includes objects of all +equation-specific functions, the RHS and the +BoundaryValues class, both derived from the Function +class, and the Beta class representing the vector field. +Furthermore, the DGTransportEquation class comprises member +functions assemble_face_terms1 and +assemble_face_terms2 that are invoked by the +assemble_system1 and assemble_system2 functions of the +DGMethod, respectively, and the functions +assemble_cell_term and assemble_boundary_term that are the same for both assembling routines. Due to the encapsulation of all equation- and scheme-specific functions, the -DGTransportEquation class can easily be replaced by a similar +DGTransportEquation class can easily be replaced by a similar class that implements a different equation and a different DG method. -Indeed, the implementation of the assemble_system1 and -assemble_system2 functions of the DGMethod class will +Indeed, the implementation of the assemble_system1 and +assemble_system2 functions of the DGMethod class will be general enough to serve for different DG methods, different equations, even for systems of equations (!) and, under small -modifications, for nonlinear problems. Finally we note that the +modifications, for nonlinear problems. Finally, we note that the program is dimension independent, i.e. after replacing -DGMethod<2> by DGMethod<3> the code runs in 3d. +DGMethod<2> by DGMethod<3> the code runs in 3d. diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img1.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img1.png new file mode 100644 index 0000000000000000000000000000000000000000..b9eae85576a01030992fe34550350f782e0d857d GIT binary patch literal 569 zcmV-90>=G`P)QKdmj3ks2_C=fn^OG<&+fdL@$T3_0mevF;Mxof zWoYG=Zj=ToH~`ww17eROOnLNNe}_5-n`kVh-H99_YOFF3=^dXZ>5(qKXQk8qd*|k)It86UpL4))CL0>lRMZJ+TN!NKcn*8Snhhn*K*< zobyB*&~8Z8vi0Ofm^?3F#oAUVJ$e?i`MTg>m2Ai2f|&&12)!AlOQ;8l^re&cCTl6SZHxt6e(%+1n2Ob1#c`fmC1G8kM6Hpz z$@Q-7SZ~tPCjU#-f&3EfKE$u4U^zbOeI>8z!9#VNn98GeaRivDtN#@x5)wQ-JU|`W+08qE6k|z{UoeBivm0qZPK>9E zV+hC0sxUUg#ds>tyVjB_YAZ)xfi0;%Y95 z8#_5O4{#RE6K~XrXPm~Y@XL^y|HjAQn|aPpB-b~2e5*ER@i3QWs7T}2Wz))t1lq&k M>FVdQ&MBb@0IEJev;Y7A literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img11.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img11.png new file mode 100644 index 0000000000000000000000000000000000000000..d7019bfa444e87eb7d3ce923af93f838b71c0a15 GIT binary patch literal 883 zcmV-(1C0EMP)HV%6o39maBQb`Cn^w?R|ceP41gL52E@{i84zTH z0ae`)5}-5-VxnTI7^nxtN{8%?GBGd&{(&-8V#*N(@gdOh-rd=41g2_Rb2LSlL** zx@EbZ4*pRLhA81^qWZ7Ed6YG*gamwyrSpYWT=&!+}usa=^Fw~3KMw{gFUz(kbns_29n>S?lAHqD8IM7(h2Q(h~ zG#0a4U&)klU0$cfw74P9~yb?hX!iYH%)dEf4hcr)$SP4EIr(`|} z7NH?8V%Z+S^d8MI$MJ@>-I%F!UX)H)5L+ANa?Cs*B1sGeC)=eqOWs+U@};ix2^?kQ zYC*3HWpcA;56FZB)-(ND&((KAs_ZqvAH!YM@8m6<*eJ@EVl4a+PG>nSmoD`$*=5Xh zn-AM4vSTPJw<>(E18y^Oo zmKBCgr9pC$zBxSs=<)|o)fnm5`&{am3n(?P7=7HkN!(K9Dn?;{3fC(&wDr=1>(%9V zlw*wg?PR_95}jyX^*Ezn|LctdqU&8vxiZ3zrTuSB!2OjP={~OV$sXUu{mskI_C$5@ zd*j#f&HPT^0tuY-EwzG3*1vb21&o<~%~zdSDt~c*=a}Qa!B1pa+q$>^tJDAh002ov JPDHLkV1g3Vpb7v0 literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img12.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img12.png new file mode 100644 index 0000000000000000000000000000000000000000..deb67d15e259bde67931aa65f49f5ac78c04fad2 GIT binary patch literal 185 zcmeAS@N?&q;$mQ6;PUiv2?EmmAk4zdz`(fg|Bm-Sj!J+}i0kIfn^&w@F=4`lmX?;B zoE#4i4;vdB0|NsU6%`2y2_7CEpu)aK`qzOJV@Z%-FoVOh8)-m}i>HfY2*=FigoK2| zgoFnv42*ef91qMIj2ANTNJ~hRMdv3R;M&$GlHVYBX7_6D4Xc}(p52vRT&B^`d-u!% fE;C^dC1ZxuFSwSabP0l+XkK3HCX{ literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img13.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img13.png new file mode 100644 index 0000000000000000000000000000000000000000..d881b9930148c3c4355e4d49322634ff9491fea0 GIT binary patch literal 161 zcmeAS@N?&q;$mQ6;PUiv2?EmmAk4zdz`(fg|Bm-SjzoY@i0kIfn^&w@F=x)4mX?;B zoScM&gpiOBprnA=lT$#7u_VYZn8D%MjWi&~!qdeugkxrMLIb0i##y}s2hK4#1?V+1 zPYI7Z(7?kIA-RERTM=`Jo`6QfOozXG25ih_Y{`lpEDTvzY*T|5{O<&s!QkoY=d#Wz Gp$P!8hcLJR literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img14.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img14.png new file mode 100644 index 0000000000000000000000000000000000000000..b3e02833af66227ea32abcc746fd8657e52601c6 GIT binary patch literal 455 zcmV;&0XY7NP)>m(GU!qzAG&c1s-pU-E&KxCw(1fdh_a9M7P zpxa#`a#%=!gf@H=>nDT*7GC0tp0NwpN$bH@?EVwnk;2i`hud#Qleq7X%q~!SX(gwfVXP)PpBHQm#aeIG%1y@MK34 zDpZNAeTM6CC@J{`F&s|KQkX8;Ne{9A*526Ba%8C`S~&UCU3)AaY!6}O@lMZ+x`cHZ z&v;xmsAKrKng!2P(Slez(D--+ntc_*8cwUl5sw2!mkQKHHSh|!Wh3hC#AH$PO+?AS xrfy|>iLbtx^E$sXw6AY3=TM!|FQ`i_j4z?TT_Vy1ybAyT002ovPDHLkV1mE%!w&!e literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img15.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img15.png new file mode 100644 index 0000000000000000000000000000000000000000..8f3318917cce7ac029dc160f1ee3ed103370d20a GIT binary patch literal 628 zcmV-)0*n2LP)cBp|C{uS(_TRgstToF#1zOgd`UT^I_Kw!q>8RHeP#bL9Q8 z!N*)w)8btJ5`0&Q9VuqHPq%nzv3K9<)X4#BDy&231JtK_b9DcI;Kl8q>(ohOjsJgE5={!O!3> zJ?kAF*Y8j#r~%uwR}mL|r8x9cr287KPRT`By!7D5VR-gR?`)RQbddjSjs;1?AvGN> z9T_sTnVN7e2BeRaCDtmL__>(j0cw@s@rU&=!$aY5Vyx2bG7kS(C%yoov4M1?Xz^?S O0000)f$9-E86DvL%RN3)+y zhZWd%-aBElOjDun0Xmz()78&qol`;+03)DZdH?_b literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img17.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img17.png new file mode 100644 index 0000000000000000000000000000000000000000..c8b8f112a09fa69b81ed1466483eac866a88d04b GIT binary patch literal 267 zcmeAS@N?&q;$mQ6;PUiv2?El(KrGL~%)r3-tub>ZNFcx`#C7xL%_~-{m@{Y2gb5Q` zT3RY9DspmiLPA13JUnb{YzzzxR8&+XBqVrvcz`;#vzvDSDaMi@zhDN3XE)M-oL)~C z#}JK)$q5Zid2As94X2(KKd3(5z`lXmw}K&&YY($w#K)D#xYRZ%7k&|Q$k?y`MAA** zh2qAa4LeqF9@Nut*dQrqu&4Sv-=R2GQTAVxWNk07@f9SAuiMycR5VX~p~nYDjd;ds z%ns+Q1u7a;{>^AqXPEtKWzP0M-3h`C7ka`sMxL*G-^Sp$oZo_h;Z3{T-Frrl+JO#Z N@O1TaS?83{1OQF^U8w*7 literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img18.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img18.png new file mode 100644 index 0000000000000000000000000000000000000000..3d0c27a5c5583da3c814e85153f737d94fb14985 GIT binary patch literal 739 zcmV<90v!E`P)%Bs(r^pdEt=d7Rp4TH1JuRq(NYB520e^1%;a)ljC*)7*O2K{bH^djg zuIj`#wjs$g;ave7jDRRpdU6vFNIy_+yO{D8QHYc>(3PA{!y{B&f`_bk{&gUK1X&I! zk`nt`xTJYg>UN5Tc@G&><5=TJi9F(^m=3cj>YovUwhB%NnfFPv2PyEH28UmPFTiFo zvdr-wb854}v|{h&twEgiy(2B(*Elc4VrWh}9P;T{`Yme`^>nk&F3T&D7bj$H*RkX1 zrnn_;}AYJteEI_(kKXY zQ#Fo^tA9LZ_MdYEsWM}01}LW3<^UxZRCB8 zH7vYszxo%zeo?fPm4tirjz>mrBwJ0xk9x85YB{;!AN8f&k4>=}DPlAVrCBtU5`4e^ zS&2_c#Z4u4tS9~2K53|o6g%JaAj}X=uvn2L_r#yklZKa;-?cCb1-XpdM<>^c@X?r! zZ;Z`iWa#>LRe#*VZTo$o$OuNx%=d`QjRShU^2HP-lV@EiKx VwO+5oO056@002ovPDHLkV1fc1S>yl! literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img19.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img19.png new file mode 100644 index 0000000000000000000000000000000000000000..bf1ea971010b9e4dea28464c826d15a046424920 GIT binary patch literal 305 zcmeAS@N?&q;$mQ6;PUiv2?El(KrGL~%)r3-tub>ZNFcx`#C7xL%_~-{m@{Y2gb5Q` zT3RY9DspmiLPA13JUnb{YzzzxR8&+XBqVrvcz`;#vzvDSDaMi@zhDN3XE)M-oXwst zjv*QolM@=4^4L;7G$=B39)EJ+!1Dv&`{pv5Cj=%usAITxLgB+ZMrTH5ZMma24zlSf z7&2y^WVTaSxSiqEHZB!uH<^frlno6G%+7(rP4NK@OFl3j-d+A)LPAJLLL$uZ=vy9% z8-dKZ42+-mosBr^Eg7MB?rddTi_SlW9tnvW)(AcWgAaR|8`(V`^-ESv5N0^+#->&f z;G4R;H)&sAb3fCJgB7B)zrOjN$06{(vyq8GK}d_|3+L=`pz|3#UHx3vIVCg!05}F} A3IG5A literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img2.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img2.png new file mode 100644 index 0000000000000000000000000000000000000000..385a8a3b3b846e86157a488935ae758c72c9fe26 GIT binary patch literal 248 zcmeAS@N?&q;$mQ6;PUiv2?Ek$K&-&R%)r1ndEZh!AV)XAC&YF0=FKZste7)r&V&gQ zT3T8vDk^evaza8vJUl#XY-|h+3{+H9BqStwczA$1wzHde04c_jAirP+hi5m^fSf8% z7sn8ZsmTcrto#8HcUDZwkybEKpRwma1DA+_4?`d)52M1W4o6cNCB2SNQ?>_nY|GRb z&N}W`-ms9-#nPa$b;pj0F`N^ZaZQLjC9qZS)IOdg+XB9+DNJj$^lxlT)X%&r}~j@Lf+q>||_CNRg-%14Hf%(M#!Um$-qhVDNPHb6Mw<&;$Uf+EGvd literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img20.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img20.png new file mode 100644 index 0000000000000000000000000000000000000000..32ca7abf14bfd88f628029c07ce3ed77a87df4cc GIT binary patch literal 450 zcmV;z0X_bSP)Y<5U6ytPdcx0YCQ!Bw_v!cy-|g z1q_@F4EYQUj0_Gi(-;_-85UrwOrXdfq5(Vv?Eb@8960<` zFbNJ6V0iNX{{#;@M6%>(Wnf3>0EI3Te0{*c)&SDQ01jOThW;;D-3zw;KbDZ^#HxH0 zkOFq&$bS9*|AS%^0(cBSBnMFFzXAiU{K}7%P8csj=ntSo1=GOxF8MZyx~2fvfB-sh z3Ji=Np<)wQFYo}VMMyRv0P6&}1_a;=0FfWDYG7!?)Nt{<(i9-&X8`5Pqm-tc2FR{K s0h;d-p@RfAVpEF`NRz5z6wm_z0A=k=h)(xHQ2+n{07*qoM6N<$g0?KI2mk;8 literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img21.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img21.png new file mode 100644 index 0000000000000000000000000000000000000000..28c341c1b23e885d1c76a7627a2ce67d4a5ae3f1 GIT binary patch literal 536 zcmV+z0_XjSP)aWH+9NSggZYz9Xp*f3H}DDZukfm6m9=(=X83ewm9PK8Mra2`u} z!J|Z_Cit`*s2*Hwnh2G}=8{>PI%x=}Qr-(4RwSACI$1|Y{Z+sJ1%q?CczM9(z1;Nt zNGzrvs?F4guW3_XtYtk?9Wi>$LQ7fvXGv;SOumis>YPYI70S}zIsrVON?DV1w&-E; zMqCz7xO>SG5{Ht!1S4&X&EjzL3{(6PYf9`Dn2$q2ZaNUg`BIFKrFz*%)r1{_%`!6kfRmg6XLpg^X3&RR!o>Mp`xN9 zCnqN%At59r#KXhG#>U3Lz(7SsMM6S?hldBK{Ep4Nqd_jjoV*<6QHcWB&ZvIzeEE_VgDME?QSow5sfmhEj7U}Ipb|9NZ#Acn{S@0lWD6lbp#qIt(b94XA?gC@@s6iAl zoi@;=VFxJHW~3M@h)YlseujjDEIk`P<)_F={RTlJKCmT(Lh@t`z34jk1vzJ>IjAbB zE4Qo+20Vs9BoJj;IfV`hn)J236$on-rzC(!n7*)SYRux?{W3RduQ9R;Z1m0Gd%SeZ zt8V$6CkgH1iEH{mgh!GDp}GQ_x+6l-elI~9;l$LXOfW26f;1uzD&k(1ZINa+Ap!T* zx@hxqE9Eg|u)Kg@{wuhA`+`~blv&^Jz_~=-%H4_Zc0G6>2`Bbw8?ZdQ) zrF35B<%?Jo$kmW(k0l>?>Mr4kp{XBqEQ)711YhiL=$uugjc5a1aAit+@VK%v(8Q-; zZ;vCC`h3l=&}XWHi^hcKaJBat*+`1%-8jZn=Iir6L%smZ-dT>&-_x-G0000{fbQIKO#cb97bUm7C(?~{aBy@&z8K*IZ;nlf035uCR-2dsfXE(ThW`lffbEYs z3Wi5b3qMXjg4gic2eIt{eEYWru$e9<#=-qnbO?13P6`SLd5{WlDEhPsFa|%vF*Kn^ z!Wh7oH*OfZ8yZ;DHfUsV_uvrGgIFC32wt0ik1{)4@C&AcBgx5)u|W}zbbpU@ZND$o zd4!#iEwU7Cup8>r*hdE@`~oBPZrVrL&irPBy<_T{@FMHU*wxl@UJvyx?2<5{o<&dK z0w2L?1d9&fFk&r3%&P(^zm$cTD^7OD<_`3-Y!|e&u}NltN+<={f1yy3-Uk7ON?pB$ZTPgp@7w+E4A zP5kN$>GH%f6)=ts4*{4`Of0`_~tq@C*P`0b-5kF=`8i+WXt?IDyyVNGJ7JB zSZhhe8dpNyt9|X!SsvK(ES*vURvPV>u46*BCb7({33< zK(biMz}&eB&>oH*V^{MXKo&AvFuW))sR>Tp1^CeL`9)*H^KI=YNU~JP;5N36I27H6 zj46}Ht`8*J4!1Sm9p#%i*XG-J!-Gak_l>et$>@ZS@3(hL>$h+E-bcdrGg0hb-rLN~7@ChW}UBiQ^926z{gyK%k>0Qjv`~knd z)p!_0bM$>}j=rC)v!q6i8V`@Gz@0^hau7K3EC{Wuhw8Ve`(mv)JH+^De%;T9&GM{t zOkOTbThE|!?b5|8r3v2s&EMC{Y#*DkHV|cZ15ZugKNGTf)6YL^6y4dJyU4BmJ2qccD2AH&Y+<*wKCM)N z&QFBRbKclTm*Hqx{cO?e@^b!6%@!ELl+G9{Qgp=!+lM29z6q>MO}tgub-k(`uF78c zHh;~^jh%2MlA@hzP~@d4t3)x;o7s1|N}1lP7gTLY)i2qxjK{FT*0|UUTy9)!?;_`?6dh*3RwFMQ$fyX4%Q?uhy;7cn8jV*IpmP z%-qHYMAyaOpOeI7)F8@VhBu0yR!Q1X)jLur;gv+Ea_!QEIbrlkX?*$WIf?tA+@x5)wQ-JU|@>`0Yx76k|z{UoeBivm0qZj-98A zV+hC0~ literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img26.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img26.png new file mode 100644 index 0000000000000000000000000000000000000000..93e647edc76debae8c620c5fc142ba31de579ef8 GIT binary patch literal 198 zcmeAS@N?&q;$mQ6;PUiv2?El5K+Mm=%)r1HXnXl0kYf@x5)wQ-JU~saB2Ui)Qj8@*e!&b5&u*jv zIj){Ajv*W~lY!cj8<_aQG@4I0Fp7GZGjy{5;kn`H%s=7BS_T!h8U`UQh($ literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img27.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img27.png new file mode 100644 index 0000000000000000000000000000000000000000..ad589662065ebd2328344512e6250478c99d5fdf GIT binary patch literal 300 zcmeAS@N?&q;$mQ6;PUiv2?EkOK&;Hd%)r2y_4{ZckYf@x5)wQ-JU~saB2Ui)Qj8@*e!&b5&u*jv zIjcQg978lFCMPsB^7BL-V9RMrxNxAuyRE&kQTkvqqf!|g+niMw8C@1K_~_4JY36pQ zRy1qyyvUH`tIAc-bduFWFVRKlA=Bgu4<5B|s1$s|%Cp8ny{J&9=|wHWmDA@RG8jz` zWJo)dz;K4OAWeBvfpF8wOAP6o#1%9%n>SamPG~88pp)S6!6`yKVPTW2>1W32+y$E> v?;k$%Oz)*@ktf?3)q6Z;>>qYk7cel$x=GY*&5SDrI-9}M)z4*}Q$iB}XIyFL literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img28.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img28.png new file mode 100644 index 0000000000000000000000000000000000000000..081f46653a7e94ff628c562d83f740ce51048959 GIT binary patch literal 341 zcmV-b0jmCqP)iK=Cgp12?GNo zkj=Xfk499$2qpy(hQLX57xF+!f!Dr7n@$Pf1d|J(JctV!p*)Bv7nJt_O!6}%HGp}% z5FSK$0Rt;gl#AJQjW5KM2S8K!*~J^cHZTGO7BGKxu%VeRr~#M@;LJuesU`%Ir2$2T zy#R^Rh9bo)fW*;ZV37I;*9r_aXiB{R=3HRV#ih&YuN?=nU99h6c5x*ze(PSYfaJmq nmmgkdP1$4-Xp~8v_Fa6%`c;2?-t^9-yXIk*DVYDaMi@zhDN3XE)M- zoK8;{#}JO0$q5WitO`xX8yXv#Jw6*cFq(UOaA0CS%pa!k+RWz%^Ng4S&vr1ooR)pi z+||H%JDua~sRovyB^DNZ1_mY{KIbzPI$Qi~Oxe#YoX*V5Rv`Q#)Zs(JEZ5| z3``B~GZ(*Mk@zFM!&^on$RWGj_=wT@<_}g9uZ1M~3_o~F7%(sd^+?-HO!S@tbQFW9 LtDnm{r-UW|uUA-U literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img3.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img3.png new file mode 100644 index 0000000000000000000000000000000000000000..6ec7a7b930d1881a027eba782c85a6ab4b51448f GIT binary patch literal 300 zcmV+{0n`48P)4Iv9PS-{WMGFdc=&;wh5!g>0mwNYE->)_2YJpB$jR@7 z$mnlC(j0n#eh#Gwhlh=gje&uIii(Pagai){4^Y#q$kX$H6k|z{UoeBivm0qZ zPLZdJV~E7mzopr0EmZEr2qf` literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img31.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img31.png new file mode 100644 index 0000000000000000000000000000000000000000..cfe898a3a698de93f146c8ae7e46054083fedbe5 GIT binary patch literal 235 zcmeAS@N?&q;$mQ6;PUiv2?ElhKrGL~%)r3dyL5FZkYf@x5)wQ-JU~saB2Ui)Qj8@*e!&b5&u*jv zIa!`Ajv*3LlM@;k7&UAg8you>i{d>d^K%Z=2%UNU;OHtT<~yuT z3LYs8v)7&CxOnCW*P;q03q`XJF$~_Yb9PY1nb9fZ6FKqn{ybmL5Z59{FsfIt&Lw? zLgJT%L`3K1Hr6x7)!Zg+jj@lI4zml)zu#EP*zt~k4(B2Xd&enX|0^FaV6f2>FuyF$ R-3PRZ!PC{xWt~$(695;zM}q(W literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img34.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img34.png new file mode 100644 index 0000000000000000000000000000000000000000..ae6eb75a0b6421a17472b22104c8897369368c3d GIT binary patch literal 430 zcmV;f0a5;mP)=_ai7#Kc)n2ZcuxKzOb z_Xm(V5ctku2(%7t<9jYBgDjBu|APRKT7VGYVPJ6JXK(}c!6#O zS#^^E;xR_Dt)((p|36>?igValA-oC*p$1?8XEHN50Ga-B2S6hKFYq&HL4uCo0Tc<0 z2|!OWaX>`C(E{`_7X$MY0|%H0^GB#X2T&X^VGsodRRMDWnBow?l#&WO!N53?p$W?M zz)--LzzPg42KE9dpCbX&5MGcZuKIH04D?k0004a@(>OH001yhOjJd)v$LqE zsGOXfkdTmsgoJo_cx-HJU|?WWR8&YvNIX0|FfcGABqSIZ7z_*y0002$S<9XP0004W zQchC0^fO2zw1H26%t*pROydN--|px90X2k}q9ZkL z2h{oa3QfjoOHsxy`zRX}9VSU+ai9D4uTOn6vdn8XZZD@iv_j+yUX!P##8&T28c`=> z5|6B;oWSchl;8|<$u%?x>76#|AypWHEx~^T`6$ynm>Np`!>C#t5y3P(Hh1VZ7FYZk z0<@RP#^g#TFHVtwISP1bIj#X*UT#6ittp8zIiMP%S1@&GY?nW`8VFRsH)KkT={twv zA5+6gJt>6YWL3ap)wL}u1RL5w{F=JIDo+>)58SI;7#o1IVa1mr>VK#pngeir#beO) z>4K~SYXil$X+@;#}o5GugEcv z3*yMm4w!Zr;Qe)s^-f20ZgT875v3(xC7jRl`NyvPG6K5km6NRt{$Ua3a!l#7J)QRR zad34L`!855y44TkyhlYj)mJw-u0Jupt`-)v>Ts)|Zr}<35|<0$bJY~%6C?lt002ov JPDHLkV1n1_4%`3$ literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img36.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img36.png new file mode 100644 index 0000000000000000000000000000000000000000..8125a08e45290ee1d9429fd942aaaf30f41f229c GIT binary patch literal 369 zcmV-%0gnEOP)onUmQVrs z|HtmB4=e~an}HCB;^G1GHca3}NIm?{3M6@Xd3?cKKA>TYeC!Hf4yywL1J4Bq8!*S= z1a;j_ZGbasKj4xiUV?GL2Zrr%Nyhar;1V1OtQX)CybMe*4ls%E1_W>fKqQ#gUw*&= zm0)|{@soiUs$&_0d_wnf1%ypKju*fZSJ<91d}M8PfJ;2!7B|4-$w3bQ<6u9Nu@|Dx P00000NkvXXu0mjfP|k+% literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img37.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img37.png new file mode 100644 index 0000000000000000000000000000000000000000..cf01050f485ac29c7e41b8da76f6cd2450e2908e GIT binary patch literal 363 zcmV-x0hIoUP)&m0#FpgV4?v(l-A-0bCMcB9Ofwo0u21ju8Uc~a@-t1&R1?evMnLYVgIpv z>H`ac&1N73qPTd#yb2R|5mFDoa|20UULIdCmk($dBOiMMn8WJ8z`%3C!3NB6I6+-^ z(-q*1cj6=%CwySo4wqnD{{k+-k-&NZF2T#d1mggc2yZ|DM*u{EdHv-F98d|i_Z>eO zc%eF$F~}!$FIPa=)Z=&oEOCYHDZ@wBRtLDm18#8xJkA~T003?bIf~k*O2002ov JPDHLkV1oQ$h64Zq literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img38.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img38.png new file mode 100644 index 0000000000000000000000000000000000000000..a36f30ace1354c841d59013ddd7ada9ac52044e8 GIT binary patch literal 253 zcmeAS@N?&q;$mQ6;PUiv2?El>KrFz*%)r1{_%`!6kYf@x5)wQ-JU~saB2Ui)Qj8@*e!&b5&u*jv zIW?Xxjv*W~L;H4fH9H8n$QvEM{(w(FHDFP2`h|m28)6!*4LXaRoSc;2?6j8bocJx% zWY$%^16=(zdq0Oi+2CBOvL#vTm`c*IqeYh-_|(dl{5Y4?`t@(ien$JZz>bceZeQ^2y_R7r>mdKI;Vst05q#% ANdN!< literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img39.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img39.png new file mode 100644 index 0000000000000000000000000000000000000000..20611f5b3335bd42b2117ddf6b8a9f5aa7bb301f GIT binary patch literal 744 zcmVP)mI(%2$RWzhxZu--ShfZ^?l$TlVr%q67CFMVcQ*ho7Zc|79l%`dbE&83(Ybgz6r`Du1X zMy+hFuoRxd3M%K97}=J;`Fe`IHNJ;Q*)(hMa95diik&7L3|`peH0rB6&-#SgIU$Za zL!A6#riU1~Lle6_&4y(49I4_6r|JP{@h~-bB7)eMYTV#~VUD25T_Ohd$NMoh zx1X|UmcW!N+}sx0)QQ>jP?a@<={{4|manVNW_P9qQ5Mr1<->v=R&!X^sv)lf9xU2; zTTk1O5^imGeA=K+Z^dwfMNvguUEg|g2CU4yT#TV+tJdB>Ve#rkGrT zRG)_`KC2kH9lsSE%}e<+_@Uj7c>CBEaloF)=ye0E>)5Q?Zbk zK zbg(YyU^vX}+|a1PxM02d;Tv)mdKI;Vst0J>d1 AfdBvi literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img40.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img40.png new file mode 100644 index 0000000000000000000000000000000000000000..f9ae6a4d7495eebc4258d176a282895c7bc68fec GIT binary patch literal 856 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 literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img43.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img43.png new file mode 100644 index 0000000000000000000000000000000000000000..f0adf1e25455ff122986844676eb40a8e581e96c GIT binary patch literal 273 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 literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img46.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img46.png new file mode 100644 index 0000000000000000000000000000000000000000..4d2a8795a6c8c63d164f81f5b8623f05d4d7dfe0 GIT binary patch literal 396 zcmV;70dxL|P)IK001yhOjJd)v$LqE zsGOXfkdTmsgoJo_cx-HJU|?WWR8&YvNIX0|FfcGABqSIZ7z_*y0002$S<9XP0004W zQchCT;PW*0|Vy; z1||lE0tN=AK!y(t42)n2z7Is`#s#2ywb(2e7`Q;J3jr1&inYOS0|Sczkmb(c2XXTR zxIGgnv5^?S|A8OH3U&bwxMSH87#Nrn1VAhUh6@a!00Fwl0LWt4ps)cND9^y*{2<^x zFnAz3--8MP;`yIoECv>y2B-=M)(`_6AAylI5sQT7`~M)1vV37+2!;wV0weAKl|VqoxqTigKMt=Pnd9RL6z?mSs&P0C0B0000=2w9D_jCjtD0%Zhm5-Ty`S`E#l%a0*RZ)Awfn$WG;!2 zu(D<2L>pV7dG*`XJw4eUb~48FXS=7m>eW|Yy{@XR*WCt~B`lR_v%^M_3Dqg@vp_x9 zWl0j)olYMhh6VRwTb5U#34~lGSe(pG@=XGCOB3o407NRQ+Sg@uXr!hNW*n^moc;yW zBQh459?(135z8ESA9Ef+7hG6R{e5eq%X_^qyn8*uk91w0gfat<%hdpCtYH9`xz}d7 zy%6AR1drhb+y+P}%fd4DFB&7yVQ5Eijn#=2Hw=vCo-xud-*eTC^qIp(MNA<9%IejJ zs-Vt~W3&v6sW$_VXh)M0{~ZV)7qb90lj_8(E=(Bu)kvpQzW${dhzQoA79oCNL#hA99 zBCVBC^KT11L z%ZCemj#>Qv1vZ;h)rYpIoUc(N{lRBmD^MOH$*q5b+BG`!7Et15!)k)~pW28}=`IHvEx^w69!7172DijB>jsswmwgPvb#wnF&tL zwBddLG4cJJKspiSvM-_;L$5Sl{{>hlp63giMy~DnD5uO=l z=>0L@pl>Bfl*z@-^~9FCsOh@c`3sOl@5l;(nWytK*^R$ItW(#G+@bufwts-fkAc|V ziATTKst--`X^ui*o)DffB9mr?kK=u@=giRfaF5&1*`=K|nL9Er5b*>-N2Qy5$`U#P zkP%5H4$*Y62vo@1|ANP>X(OEiy*7}y@-#-A0++&xAccGES&@F!;(>DWf;T4AN-{oGA4=uI_pC_9n>j z@Y3C)3Wd*o>EvhyoX8I#{?xH{2jpPqpv6ElaxBF(rt++r-5&3Rsgw_ZFyEwhKW??89oSk=#gVs5Aki zV0-n@XuqeEB(44;zy-r-I!;Y5 zl5`9GJ)6Yck-`0t9dfp{i!JGh-ZBLXe_@M!5UBu_wS2j#)^}iQ|UUk^b>9{ z4`prvn)_w=z0|XlV>LrndC%&M+3*dwQjxPJyhg(R2B+Zb051qzJXsL* z=)@6xLJRsd`ijDXCLMVfI_+O3N03vrs*Fs+MX+O-xPLR*?l@J$D-&pTz#g%eaSYN< zcAvj7A(Z`v=RkZ%Z&pRq{Flb&s*=v1i@c$3_bXfC%~=YGUrpbWTsg_5$B(wh3wto0F z{Kk&J*#hw2|LXNlYIu&NYj5;;Ia}~Hmqw;Tu=@Ga=`34LuANKJlgGE$2953#XN2Rg zgQ$KAyq@)z`@8Q-1q1WzLJnMir_qT|2_KINS zEus;8G-qda-%gS*C+Nby1E_Vj6B{Y!OGW!f+JvE$yGWrmCpUcVLa9%gB-j1a_u#^;ym3Exkq48 zjkIjt5H9`&K&j!CQO)8uoEv8C3cBxhA0AFrT}vW9Ka`?l%37>U#`-^}{V#v3+@7$R zzW;5(3*XyGjv|~0pJu)PB|1L7USK~D$S(m77za*RqC|-jC2o4C$e_e*pdy13GeJHw hC{dzBi4wEMe*hgT$!sXByf**<002ovPDHLkV1lRWrF#GX literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img48.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img48.png new file mode 100644 index 0000000000000000000000000000000000000000..53629d4f27c6c5a331ba5ffde2e114cee43cc6c8 GIT binary patch literal 1067 zcmV+`1l0S9P)hfIoZ7O?nkV^bnUoP7wTkWs5F!#qhm^*cnZK0f}Bp! zWLd~v`3~UHcv;j=9(NLD;SMXEf-OrmQju1z1ySnsriuz(q@Sjn3GS9!f3uWvzF{v! zd8GNHAR$Yj^Hg!phK%~65u$to_>#E7n(cH+^HJ2oYKN=Oeewt`|F3p|3W-!h&UpDg z4=DNyJzssMw3kRb7fX2D)q$ikBSQ848?`MPh2a(H;?F1Px@_ZqS`y4#%tT{@GR0f?1Kn^&Xw4)^*j2BnO5CaJ&vA#~;%>yM#7PBpHSMlS1%@=FuVAjYZxIq4F*>zkM$Pulf0z;2DCNZn$rm zO6B_pr1mc^UGCM1vyA9+E+y%eANHhloEF#cb=v%9P(76gO~Y8{=~b*?TV}++W!;T~ z*0DXAQvWSub!oXFD4AfkSOcm$U_gP_Hcb0)8f+mydqs^zuRvH`u zJ**c2^^n|=WLihSzoR{%gdEEvF#Grx@DTZpkttvY?)~t0li8CxO4fI;1j;pBj=aZ| z&e@e0LgiWyOKadjvc8j%x0o?E;PJ2-z?` l*m(CC#(y{mrkLXYjW_Db_tlf=3P=C|002ovPDHLkV1l^6_80&F literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img49.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img49.png new file mode 100644 index 0000000000000000000000000000000000000000..a04de1801092af0b86f6e652686cedcbd0dabcdd GIT binary patch literal 576 zcmV-G0>Axpz z-s~imm=aJ#pBiQgkm0y#!6Cf7qk_1cVE|6f_o;za$&z3i#o*l!9bS6k>ZedZcS33L zgpNldEwa*9GnM)U^h=)K!`t)7h!Wcy`i$yw7EK&c_}~qUi`u1{t1YW zHyNZt@ZKKjlTj7~b4G$ON$iGs)~5uf{FFt~VQ8om5n_*fu;q)brQ~8y!il(Vv(NTQ zZyD9A&=YV8w2j)`-jqr_i5uN&-t3+}c@yFw^7uFq1~{gLHNphMBb4MWT!Fc(^eF=y zM&$8XcHiCxscHt4&nEcin|K3XEq80W`=fmT O0000? literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img5.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img5.png new file mode 100644 index 0000000000000000000000000000000000000000..5c7b629fe1c6b60be21879509cb98f710a284d4b GIT binary patch literal 176 zcmeAS@N?&q;$mQ6;PUiv2?Em6K&-&R%)r2y=AbtZ$dL%}331)LdGm@DE9T6Z)6&wC zlarH>kPs3Q0+bXmdvXd$F_r}R1v5B2yO9RuxO=)dhDc0JPB_4Lqr1RUq=AD?qEUQ< zv4w%cYL-h+pR$xDGMFWqavE)zEAjJ literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img50.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img50.png new file mode 100644 index 0000000000000000000000000000000000000000..9eb3df90cdac030e9f5e20fe99e8a40467a578b2 GIT binary patch literal 1941 zcmV;G2Wt3d?Gkbj;!ai%IhhtrkOkdQlpH){auB>_5Cb`x%_S%Vw>R0vb(7Fm zy&v80^-Qvf*<=jcUy`2JRrS7CuU_@*>h1t+6bjMXjDY3M*ZQD+3q` zV6p*jykVX^blfU~3gBt7s?sjPGQi2Fitx5WW^Nsz31F?h2?{9opaw7>JxYHc01CEn z>*LNwZhB}wi_w^M4s%7YfSK_kHqHbT5`Z{@5;%vTw16ku#z}OM4k30msPP&8GmZY? z0%pTt;2+c)ine|){;vl&*a()#9&Q@x|B6T+3M0f1fo(X`cURa`BQ&J z_%aUL7ntk?{I?j#0kuPEkC((uFn}k_3hH3@`c>tm<*r&QyyZl~1>bC&TvVNkT*_0r z;Bmt#wR_46#De-YbirD>hMib>0>a>1-31@wCg^>^jw3c)sYyeQNO3XobPrznJsiV> zs8YsO#UsNGc#WP~D0N1?97FgH7atcBiA*O3B^{&j{>X?*-Y5pn~rA$>q$W zmrhLE+O_81p*@fx8v`ONE%!9pfN`OUz8ReX3VR6?|AZnaYEMr%wGj;SDGwhPJ=KXH z04{jCA)!nkGiDX~W_CcLtN2j8t_trGgMNmL0TDv2tqc2mA+7*ySI-My#Ic9J7B2A{ znx&&8BW(w@I-goPv!^jq!PL!F*yiH%ci|GrmV^$YRrZW_1YIUKyIDtwZhtX87l`xt zjCC8Ql~S=OY79>E`9NXFeAgjD*wsjSO$5A`HNWQTLyv)R1;?oZGXX1C-8XrvYW${*T$ajzSFeV{j1QJ5p5s=3OvavtZydw76Vy#qxtI(P2XFiUeCs ze_e%&#~{O?eX5<)X2$G4g``)d&O7`Duvd>kp;Z~jaYlffxa1O>)lWuC$RyM&H4<^I zEFING{Sf6Vq`p|R{<;Zi9>BS+K3Ukn8~a*IWElENo~7Ay6V=;Nt*79m(Rr=SD|vDxTrHM!AEt4Wx#$= zT;ju1uOF>|^|HZi37;hBh47K9z)i3@E#y0a%cQlQX#BpAfm<&rx1&99Az=4~QlMEe z`6O7K!Zl4k3h!qL<+NBAY#-JbVCU@yV^OXqov^mOnGA2WtE+ThFyf$cE9(;|CIe)` z`hXPj>WDUkzWc8^pJjfe^}$@`e530FH>s7^);G?PBS(%+fJ{-dDUm5^HY56qnjATD bY(o4CqtX(=WF(hQ00000NkvXXu0mjfUxbVi literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img51.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img51.png new file mode 100644 index 0000000000000000000000000000000000000000..89dc91e165e4f37def3c223c2c54f186e07e4245 GIT binary patch literal 530 zcmV+t0`2{YP){^cybkz3+YR-QBwY6mbZU)2|QU z@<>-iOduL33$(!l*x00$vL1F#(*^I$WJ5YD&faxev5`&P%5t$*dFi znv=_SxZ2CiGoQ|e31o(tB?r0`!^mHaEEncJt(RiJJ27$PoI|)fD~nmD1^y2{0A-AJ UtwpP-AOHXW07*qoM6N<$f*HW+9{>OV literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img52.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img52.png new file mode 100644 index 0000000000000000000000000000000000000000..50b34dfe228df79fcf7ec1ad51bd7444df8fd726 GIT binary patch literal 506 zcmVDZnXKnz>@&Et- zfz3b&CdwiJazFDFlh-hP55IFm<+z~!;N(Y`$?5>1`5sc))${~7LI^_+P2KoXs}D04{e!fq~(hfeTB93*fr=Ksr8bn7|6xsL)^mWif*^e0cbs53btM znGwoj&4Jhoix&{^gE>1NalC-;x4a*~1b+cdoA&P=$Xr@MWhxgfEaiH28NCx`T*=K z7Dz}8NZEJ{vazACBY}7VvoJ9PrVN#g?Q_Hh6$y!fe>i>q|6F`Z4)~@%5@44*;|y4Z zQnjFSMMWdEfj|N2$`bXmrUb<~kOI=NnS|m_GRi~wjk=s7H$=E&zAi-RhigdN*BWCd zKIqFZd!WB)RB-CCq!6517r8^6?-1EKrG0@%)r37YvZmYAjcrUC&YF0=FKZste7)r&V&gQ zT3T8vDk^evauN~}LPA13JUnb{YzzzxR8&+XBqVrvcz~K-MV_7qq!>$r{DK)Ap4~_T za^gK*978x}CMP(s@gGo0W}b4I?T8K!&mDzt>?)~$9L`MTNisEHF<8KCXRwk-jlbc_ zmxhS_q7F}3HW+dl8<;F?oLeCFo6X?pl>;^X!b*o?A2CesNu9@@ESLOXx&gx_246nD Vo!=U!lmV?`@O1TaS?83{1ORbeNfiJ9 literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img55.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img55.png new file mode 100644 index 0000000000000000000000000000000000000000..5e80634532de51fc3975332e7a94c6a1bf197336 GIT binary patch literal 2609 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 T_zI}e00000NkvXXu0mjfm$>Cp literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img56.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img56.png new file mode 100644 index 0000000000000000000000000000000000000000..ef28421b7f3eab6bc835c3372719b2e97eae0b05 GIT binary patch literal 2526 zcmV<42_g20P)JavB$qNX+iv!xCt^`t9;Z(G$MAbKe zl)fauaL)akJGS5RLwPTKN#}d<%$?(NzjN-HJNMpmJppb798(JLiY`uUjS7Z{=nt6I z!m6M29drVetC-*2?wEZbs#E|MbX|msbzXO<{)@cB$X%x6I&~DBt1@!TNhbIx< z(_ujwA3~kNL`C<*C;B=t5q!82uwf#V;*LXqQIv2nZW0{hhcNgUP{KgTM)ZkGbQpBV zNI<=o5N`3^>awaUsy*LFoqOp3&qr9Jn|O}ZT769s^KEq;%NBbZbHPIh{>P#OTD5(M z>V?ugeXC2i0!xDX>aDVUXCqj07j?96W?)O;G`M~P9gFM_vwN4(I@!=1st;($m8E!K zY1YZ%w{ahpYMpK*X!!~026bY+PqwG*^Eu&ijb+X>Kthkp6)|XcsPr#E^>ud5GsM8A zejGGAuxg7{efR;M!!y&7sP7>PpQCfrbIJ3n+mf`S ztX1+blIKPg!FA;GgmAW=g`(|P6IEb8o<^8144?J%;Lbw+{?Iy0#)JazMx0F3U37ns zwd@Bc*hiOkfOIs*TAIjlj*jg#-QuFXK$X|OrvWtPNB)Kos0L)qiv0KxHzyc}d3&R| zGaIBO?3}EYS>AHrG8a6mvNc-y^#U3Xd1*l{h=qGSK^e+nzI zJv}Q3#5!szR$6#d`_uDX5?11=-M}8wL0;yk$x}SKRt8K|wVLWlLo+%xYLIOV8fcVS zx^3bp2abp)3Y7eEWNFh{O3YchLd2^lh?&Hv#jVy$JeDNP*69mY6Z5flLbeGL*1r9nI z!(FMZNBiqWfdT~z+@TN))zK=gfVHmQ0(Vxp!H3aGHMNd>hand+wD#CY`(mSuJwL3H zhs-^>h^cuA?&5XIaru3qatvNSNkOhb4o<@9#K_C?XYj&5n3IjI3PBQN>nw3|o2YnN z*Ad~4jTf@YNL&tRy*9r;3*LUw&So{3wZe$Cw030ne9yjGZ<%^AuYu4#DYvf-OkGOWt z9=a|q%C^UeU2RBuR>Ii3B%NQnF;iP6+!KiDcI9TGm~P)%rB$Fnfdzc8vn#d#?5`KQ z1n<4=0-xGvHwqLeP@q780tW-B!5(A+drEejqpmhGy$gHrX5ebF1N*Mb-s7Zc>j?O? z5tprB^1i#g<`Qv^%%U*7I|SBO`)|RPk)+$1&T-~^-IjK{>+Kkp>iu8X7-eJ~;DcYh z1m{_twlv&GoYs4EsE707?Z}AY$A>78wMg(v?9^kA%9FKi5-hc0eAV=)x6`p{x4o9G z0+p-N9rc<$z!_r^{uO#gpIwxD*>21!-uLuK57pc)JS&bheof)rf>=NY%p$7}y^c$c zd`Ixk=`Djl5T{&VZ5w%tQ_%F)ojR&77E#ERqogzk&GQ8S^@Ef{U5D;La|C>x1J{ zlqT{bvk)j7xt9f#%vVXD_m$OuEBZi=mK~Tp7*VM-@o9FAY)W<&5A}_nV4`~N#`RvN z^>H|tGa9%f{lykJ_@E|Ct@qB%$SBS~k*z~`7GDKkP*)6c_neSdb7Hx@s9iN={OvJn z{6M@<>kmBZNt4_LK_XsxO;kN&Ay78T#Bo@(Br}y5`n<1%pTUpjX~_W$8=-7v0P{M! zaTPy=(UVLG{v=Fjl!uM3MI&74aOv015RGL+vRNB(FQ|(4^F2)PXU~0;Uy9RR^EdDB z34@UqKj13E$s!q3{7pLj5}#WAzHi0}=Ej+PU`>xT7Ics0G0?mLX7yM}pZ8U091oY! z`uM`;SoB2IBU1gkqUf=&!{`Yn()$H>(+pobYtf)?9=Y{Lpk#SmFr`zdzW#Gj;!$U9 zYdvoCc?>^`C*)5MSNXX18npQ0(dk@ZGcuy6N94)_$kWUgyfdL6%n(W zrjMmJcu;#nykKW6h%werU*;`;GxVA3-}$0v)l1UGJO@wK0BA&=8& z-80C15llznq*3GFSb(HiDLbJH_0i3*V{>GS>)2W2ecepCjTgRU)!lI&`{bgn1HO(5 zOcuHa?~?2(Sq}U3p9l&RC{UolZHw~c^V8K@yG8Y{%XTW>m1unX2YbkNc@Md6b3BI6 oPWFy%?Rs~$Qh@>m3f#H)A8uytADP!4&Hw-a07*qoM6N<$f=ve9`v3p{ literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img57.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img57.png new file mode 100644 index 0000000000000000000000000000000000000000..96d71336f959c2a852bf69ce9c171c1b007e15e0 GIT binary patch literal 296 zcmV+@0oVSCP)tC~VPIsTg({O+fWQphlh=gje&uIii(Pagai){4^Y#q$kX$H6k|z{UoeBivm0qZ zPLijKV~E7mWT3VL<|Jk|jt8j@Y=3wp8tyZyt!dEgT=SW^BmL_@im@cfFPOpM*^M+H$H&vfF+^f&asmTW z9vh2Cf&;6x#D-?BA1a0i-`(B4Gx5~g?fL3a@{R}I+Aya4Vw>^OplZA6$G*j88}8}u p+Qk`}u$}R6o`@ZD-M<4246ogVe{;1ewF1p$@O1TaS?83{1OOqmKR*Bf literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img6.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img6.png new file mode 100644 index 0000000000000000000000000000000000000000..392f70de7d88cbd041b005d0352023df6303deae GIT binary patch literal 361 zcmV-v0ha!WP)Ab`LTYH<|^1PM1F3W}gO zLM4tG6s8E!9DxHMN&vmQw%e8x(n`qGSalHFiI4iV~@s_>`~VL~W(?D0kk7FL{iEhX%8gBKhYZh52iJrmcw z*AWKjCA)~|)#{+46D@jDe?hRYYys&L1hYU2`N+gvTx3g^I0Zcbt{cj`OfRA%R$)Z4 zZ=FT&#J|(!7`rnnCjaN3z!4P>Y7n=|<40dBO9yTnhH2viR@x5)wQ-JU~saB2Ui)Qj8@*e!&b5&u*jv zIenfkjv*QolM@cGS=cQo5IwMjKWr%v&uKk|&Ia~`T8k+Qntb9knmeaTs~vmgFeU5{ z!<(!+kz?!{k7qMBv$~`-Gby)xR5*~&9P+V^O(Xdbd!5#fW`hU+8IueDq&HZKskJ*d z6dq!4W7c4j;pAcES?dw?!_lyS(X-)gEEDr_!N?HjpAu$bhgmM%b!2B?*kGw}qW(n6 RMWD+VJYD@<);T3K0RUkJTFU?c literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img61.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img61.png new file mode 100644 index 0000000000000000000000000000000000000000..40495682956ec2f45b2f32aa92feb65b014f8239 GIT binary patch literal 2513 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 literal 0 HcmV?d00001 diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img8.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img8.png new file mode 100644 index 0000000000000000000000000000000000000000..51d284f22fba6f4b8f34905aed51e2bd916bb8ef GIT binary patch literal 214 zcmeAS@N?&q;$mQ6;PUiv2?EmmK&;5Z%)r3d9C>FYkfRmg6XLpg^X3&RR?L|*XTpRD zEiEk-6%{!-IUyk-9v&VB1_mlBDiRVBJUl!=<-&*L%z+eRNswPKgTu2MX+Tc2r;B5V z#MI=3ga@ey*whp@>Kkl`XSnz#BGk-b3Q#{QL+8_os|OrSJ1iKE?77~+GMj0_0~XFk z*@LXcojDU;bEUp%xO66bA