From: wolf Date: Thu, 23 Feb 2006 20:50:18 +0000 (+0000) Subject: Bring HTML version of intro up to date. X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a65fcdedac5928cea5bbb4db044f6156913c12bd;p=dealii-svn.git Bring HTML version of intro up to date. git-svn-id: https://svn.dealii.org/trunk@12481 0785d39b-7218-0410-832d-ea1e28bc413d --- 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 0000000000..b9eae85576 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img1.png differ diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img10.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img10.png new file mode 100644 index 0000000000..4323488a46 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img10.png differ 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 0000000000..d7019bfa44 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img11.png differ 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 0000000000..deb67d15e2 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img12.png differ 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 0000000000..d881b99301 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img13.png differ 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 0000000000..b3e02833af Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img14.png differ 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 0000000000..8f3318917c Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img15.png differ diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img16.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img16.png new file mode 100644 index 0000000000..e180988d98 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img16.png differ 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 0000000000..c8b8f112a0 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img17.png differ 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 0000000000..3d0c27a5c5 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img18.png differ 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 0000000000..bf1ea97101 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img19.png differ 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 0000000000..385a8a3b3b Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img2.png differ 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 0000000000..32ca7abf14 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img20.png differ 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 0000000000..28c341c1b2 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img21.png differ diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img22.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img22.png new file mode 100644 index 0000000000..9493bc2585 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img22.png differ diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img23.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img23.png new file mode 100644 index 0000000000..fd83fe68d4 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img23.png differ diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img24.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img24.png new file mode 100644 index 0000000000..a2cf46993e Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img24.png differ diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img25.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img25.png new file mode 100644 index 0000000000..bc8a4deb0e Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img25.png differ 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 0000000000..93e647edc7 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img26.png differ 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 0000000000..ad58966206 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img27.png differ 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 0000000000..081f46653a Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img28.png differ diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img29.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img29.png new file mode 100644 index 0000000000..2cd49c0e55 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img29.png differ 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 0000000000..6ec7a7b930 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img3.png differ diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img30.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img30.png new file mode 100644 index 0000000000..b64a7ef6c6 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img30.png differ 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 0000000000..cfe898a3a6 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img31.png differ diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img32.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img32.png new file mode 100644 index 0000000000..3473724592 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img32.png differ diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img33.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img33.png new file mode 100644 index 0000000000..6776e1951c Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img33.png differ 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 0000000000..ae6eb75a0b Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img34.png differ diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img35.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img35.png new file mode 100644 index 0000000000..2f66c74104 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img35.png differ 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 0000000000..8125a08e45 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img36.png differ 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 0000000000..cf01050f48 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img37.png differ 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 0000000000..a36f30ace1 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img38.png differ 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 0000000000..20611f5b33 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img39.png differ diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img4.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img4.png new file mode 100644 index 0000000000..dbf2e4ad43 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img4.png differ 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 0000000000..f9ae6a4d74 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img40.png differ diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img41.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img41.png new file mode 100644 index 0000000000..18a032097e Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img41.png differ diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img42.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img42.png new file mode 100644 index 0000000000..6d4acd5c6d Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img42.png differ 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 0000000000..f0adf1e254 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img43.png differ diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img44.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img44.png new file mode 100644 index 0000000000..d262857943 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img44.png differ diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img45.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img45.png new file mode 100644 index 0000000000..f86c244aed Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img45.png differ 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 0000000000..4d2a8795a6 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img46.png differ diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img47.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img47.png new file mode 100644 index 0000000000..f1f1847ad7 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img47.png differ 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 0000000000..53629d4f27 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img48.png differ 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 0000000000..a04de18010 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img49.png differ 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 0000000000..5c7b629fe1 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img5.png differ 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 0000000000..9eb3df90cd Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img50.png differ 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 0000000000..89dc91e165 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img51.png differ 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 0000000000..50b34dfe22 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img52.png differ diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img53.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img53.png new file mode 100644 index 0000000000..6fc079b84c Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img53.png differ diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img54.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img54.png new file mode 100644 index 0000000000..51e959f920 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img54.png differ 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 0000000000..5e80634532 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img55.png differ 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 0000000000..ef28421b7f Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img56.png differ 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 0000000000..96d71336f9 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img57.png differ diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img58.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img58.png new file mode 100644 index 0000000000..f733cb1d92 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img58.png differ diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img59.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img59.png new file mode 100644 index 0000000000..d1023cbac9 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img59.png differ 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 0000000000..392f70de7d Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img6.png differ diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img60.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img60.png new file mode 100644 index 0000000000..fb86675f9d Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img60.png differ 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 0000000000..4049568295 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img61.png differ diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img62.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img62.png new file mode 100644 index 0000000000..3638263c69 Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img62.png differ diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img7.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img7.png new file mode 100644 index 0000000000..c4d16d9e4f Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img7.png differ 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 0000000000..51d284f22f Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img8.png differ diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img9.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img9.png new file mode 100644 index 0000000000..efa4fbd78e Binary files /dev/null and b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img9.png differ