From 8b85e8a088960008fc2e98d37d56d9c9821a33fc Mon Sep 17 00:00:00 2001 From: wolf Date: Tue, 28 Mar 2006 00:45:40 +0000 Subject: [PATCH] Generate intro in doxygen. Doesn't look great right now since I can't seem to find a way to place equation labels flush right, but better than nothing... git-svn-id: https://svn.dealii.org/trunk@12691 0785d39b-7218-0410-832d-ea1e28bc413d --- .../step-12.data/{intro.tex => intro.dox} | 236 ++--- .../step-12.data/intro.html | 833 ------------------ .../step-12.data/intro/img1.png | Bin 569 -> 0 bytes .../step-12.data/intro/img10.png | Bin 218 -> 0 bytes .../step-12.data/intro/img11.png | Bin 883 -> 0 bytes .../step-12.data/intro/img12.png | Bin 185 -> 0 bytes .../step-12.data/intro/img13.png | Bin 161 -> 0 bytes .../step-12.data/intro/img14.png | Bin 455 -> 0 bytes .../step-12.data/intro/img15.png | Bin 628 -> 0 bytes .../step-12.data/intro/img16.png | Bin 294 -> 0 bytes .../step-12.data/intro/img17.png | Bin 267 -> 0 bytes .../step-12.data/intro/img18.png | Bin 739 -> 0 bytes .../step-12.data/intro/img19.png | Bin 305 -> 0 bytes .../step-12.data/intro/img2.png | Bin 248 -> 0 bytes .../step-12.data/intro/img20.png | Bin 450 -> 0 bytes .../step-12.data/intro/img21.png | Bin 536 -> 0 bytes .../step-12.data/intro/img22.png | Bin 215 -> 0 bytes .../step-12.data/intro/img23.png | Bin 516 -> 0 bytes .../step-12.data/intro/img24.png | Bin 1416 -> 0 bytes .../step-12.data/intro/img25.png | Bin 188 -> 0 bytes .../step-12.data/intro/img26.png | Bin 198 -> 0 bytes .../step-12.data/intro/img27.png | Bin 300 -> 0 bytes .../step-12.data/intro/img28.png | Bin 341 -> 0 bytes .../step-12.data/intro/img29.png | Bin 266 -> 0 bytes .../step-12.data/intro/img3.png | Bin 300 -> 0 bytes .../step-12.data/intro/img30.png | Bin 243 -> 0 bytes .../step-12.data/intro/img31.png | Bin 235 -> 0 bytes .../step-12.data/intro/img32.png | Bin 261 -> 0 bytes .../step-12.data/intro/img33.png | Bin 223 -> 0 bytes .../step-12.data/intro/img34.png | Bin 430 -> 0 bytes .../step-12.data/intro/img35.png | Bin 623 -> 0 bytes .../step-12.data/intro/img36.png | Bin 369 -> 0 bytes .../step-12.data/intro/img37.png | Bin 363 -> 0 bytes .../step-12.data/intro/img38.png | Bin 253 -> 0 bytes .../step-12.data/intro/img39.png | Bin 744 -> 0 bytes .../step-12.data/intro/img4.png | Bin 205 -> 0 bytes .../step-12.data/intro/img40.png | Bin 856 -> 0 bytes .../step-12.data/intro/img41.png | Bin 408 -> 0 bytes .../step-12.data/intro/img42.png | Bin 1999 -> 0 bytes .../step-12.data/intro/img43.png | Bin 273 -> 0 bytes .../step-12.data/intro/img44.png | Bin 2250 -> 0 bytes .../step-12.data/intro/img45.png | Bin 281 -> 0 bytes .../step-12.data/intro/img46.png | Bin 396 -> 0 bytes .../step-12.data/intro/img47.png | Bin 2415 -> 0 bytes .../step-12.data/intro/img48.png | Bin 1067 -> 0 bytes .../step-12.data/intro/img49.png | Bin 576 -> 0 bytes .../step-12.data/intro/img5.png | Bin 176 -> 0 bytes .../step-12.data/intro/img50.png | Bin 1941 -> 0 bytes .../step-12.data/intro/img51.png | Bin 530 -> 0 bytes .../step-12.data/intro/img52.png | Bin 506 -> 0 bytes .../step-12.data/intro/img53.png | Bin 431 -> 0 bytes .../step-12.data/intro/img54.png | Bin 224 -> 0 bytes .../step-12.data/intro/img55.png | Bin 2609 -> 0 bytes .../step-12.data/intro/img56.png | Bin 2526 -> 0 bytes .../step-12.data/intro/img57.png | Bin 296 -> 0 bytes .../step-12.data/intro/img58.png | Bin 227 -> 0 bytes .../step-12.data/intro/img59.png | Bin 193 -> 0 bytes .../step-12.data/intro/img6.png | Bin 361 -> 0 bytes .../step-12.data/intro/img60.png | Bin 271 -> 0 bytes .../step-12.data/intro/img61.png | Bin 2513 -> 0 bytes .../step-12.data/intro/img62.png | Bin 180 -> 0 bytes .../step-12.data/intro/img7.png | Bin 498 -> 0 bytes .../step-12.data/intro/img8.png | Bin 214 -> 0 bytes .../step-12.data/intro/img9.png | Bin 200 -> 0 bytes 64 files changed, 121 insertions(+), 948 deletions(-) rename deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/{intro.tex => intro.dox} (56%) delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro.html delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img1.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img10.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img11.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img12.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img13.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img14.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img15.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img16.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img17.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img18.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img19.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img2.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img20.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img21.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img22.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img23.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img24.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img25.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img26.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img27.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img28.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img29.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img3.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img30.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img31.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img32.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img33.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img34.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img35.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img36.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img37.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img38.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img39.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img4.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img40.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img41.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img42.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img43.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img44.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img45.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img46.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img47.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img48.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img49.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img5.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img50.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img51.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img52.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img53.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img54.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img55.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img56.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img57.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img58.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img59.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img6.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img60.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img61.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img62.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img7.png delete mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro/img8.png delete 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.tex b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro.dox similarity index 56% rename from deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro.tex rename to deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro.dox index ab71ff1936..6f7bdb7fef 100644 --- a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro.tex +++ b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro.dox @@ -1,24 +1,25 @@ -\documentclass[11pt]{article} -%\usepackage{a4wide} -\usepackage{amsfonts, graphicx} -\usepackage{amsmath} + +

Introduction

-\begin{document} -\subsection{Overview} -This example is devoted to the \emph{discontinuous Galerkin method}, or + +

Overview

+ +This example is devoted to the discontinuous Galerkin method, or in short: DG method. It includes the following topics. -\begin{itemize} -\item Discretization of the linear transport equation with the DG method -\item Two different assembling routines for the system matrix based on +
    +
  1. Discretization of the linear transport equation with the DG method +
  2. Two different assembling routines for the system matrix based on face terms given as a sum of integrals that \begin{enumerate} -\item loops over all cell and all their faces, or that -\item loops over all faces, whereas each face is treated only once. +
  3. loops over all cell and all their faces, or that +
  4. loops over all faces, whereas each face is treated only once. \end{enumerate} -\item Time comparison of the two assembling routines. -\end{itemize} +
  5. Time comparison of the two assembling routines. +
+ + +

Problem

-\subsection{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 @@ -26,48 +27,51 @@ 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{equation}\label{transport-equation} - \nabla\cdot \left\{\boldsymbol\beta u\right\}=f \qquad\mbox{in }\Omega, -\end{equation} +@f[ + \nabla\cdot \left\{{\mathbf \beta} u\right\}=f \qquad\mbox{in }\Omega, +\qquad\qquad\qquad\mathrm{[transport-equation]}@f] subject to the boundary conditions -\[ +@f[ u=g\quad\mbox{on }\Gamma_-, -\] +@f] on the inflow part $\Gamma_-$ of the boundary $\Gamma=\partial\Omega$ -of the domain. Here, $\boldsymbol\beta=\boldsymbol\beta(x)$ denotes a +of the domain. Here, ${\mathbf \beta}={\mathbf \beta}(x)$ denotes a vector field, $f$ a source function, $u$ the (scalar) solution function, $g$ a boundary value function, -\[ -\Gamma_-:=\{x\in\Gamma, \boldsymbol\beta(x)\cdot{\bf n}(x)<0\} -\] +@f[ +\Gamma_-:=\{x\in\Gamma, {\mathbf \beta}(x)\cdot{\bf n}(x)<0\} +@f] the inflow part of the boundary of the domain and ${\bf n}$ denotes the unit outward normal to the boundary $\Gamma$. Equation -\eqref{transport-equation} is the conservative version of the +[transport-equation] is the conservative version of the transport equation already considered in step 9 of this tutorial. -In particular, we consider problem \eqref{transport-equation} on -$\Omega=[0,1]^2$ with $\boldsymbol\beta=\frac{1}{|x|}(-x_2, x_1)$ +In particular, we consider problem [transport-equation] on +$\Omega=[0,1]^2$ with ${\mathbf \beta}=\frac{1}{|x|}(-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$. -\subsection{Discretization} + + +

Discretization

+ Following the general paradigm of deriving DG discretizations for purely hyperbolic equations, we first consider the general hyperbolic problem -\[ +@f[ \nabla\cdot {\mathcal F}(u)=f \qquad\mbox{in }\Omega, -\] +@f] subject to appropriate boundary conditions. Here ${\mathcal F}$ denotes the flux function of the equation under consideration that in -our case, see equation \eqref{transport-equation}, is represented by -${\mathcal F}(u)=\boldsymbol\beta u$. For deriving the DG -discretization we start with a variational, mesh--dependent +our case, see equation [transport-equation], is represented by +${\mathcal F}(u)={\mathbf \beta} u$. For deriving the DG +discretization we start with a variational, mesh-dependent formulation of the problem, -\[ +@f[ \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 \eqref{transport-equation} by multiplication with +@f] +that originates from [transport-equation] 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 @@ -78,96 +82,100 @@ 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 -\emph{numerical flux} function ${\mathcal H}(u_h^+, u_h^-, {\bf n})$, +numerical flux function ${\mathcal H}(u_h^+, u_h^-, {\bf n})$, where $u_h^+|_{\partial\kappa}$ denotes the inner trace (w.r.t. the cell $\kappa$) of $u_h$ and $u_h^-|_{\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. -\[ +@f[ {\mathcal H}(u,u,{\bf n})={\mathcal F}(u)\cdot{\bf n}, -\] +@f] and conservative, i.e. -\begin{equation}\label{conservative} +@f[ {\mathcal H}(v,w,{\bf n})=-{\mathcal H}(w,v,-{\bf n}). -\end{equation} -This yields the following \emph{discontinuous Galerkin - discretization}: find $u_h\in V_h$ such that -\begin{equation}\label{dg-scheme} +\qquad\qquad\qquad\mathrm{[conservative]}@f] +This yields the following discontinuous Galerkin + discretization: find $u_h\in V_h$ such that +@f[ \sum_\kappa\left\{-({\mathcal F}(u_h),\nabla v_h)_\kappa+({\mathcal H}(u_h^+,u_h^-,{\bf n}), v_h)_{\partial\kappa}\right\}=(f,v_h)_\Omega, \quad\forall v_h\in V_h. -\end{equation} +\qquad\qquad\qquad\mathrm{[dg-scheme]}@f] Boundary conditions are realized by replacing $u_h^-$ on the inflow boundary $\Gamma_-$ by the boundary function $g$. In the special case of the transport equation -\eqref{transport-equation} the numerical flux in its simplest form +[transport-equation] the numerical flux in its simplest form is given by -\begin{equation}\label{flux-transport-equation} +@f[ {\mathcal H}(u_h^+,u_h^-,{\bf n})(x)=\left\{\begin{array}{ll} - (\boldsymbol\beta\cdot{\bf n}\, u_h^-)(x),&\mbox{for } \boldsymbol\beta(x)\cdot{\bf n}(x)<0,\\ - (\boldsymbol\beta\cdot{\bf n}\, u_h^+)(x),&\mbox{for } \boldsymbol\beta(x)\cdot{\bf n}(x)\geq 0, + ({\mathbf \beta}\cdot{\bf n}\, u_h^-)(x),&\mbox{for } {\mathbf \beta}(x)\cdot{\bf n}(x)<0,\\ + ({\mathbf \beta}\cdot{\bf n}\, u_h^+)(x),&\mbox{for } {\mathbf \beta}(x)\cdot{\bf n}(x)\geq 0, \end{array} \right. -\end{equation} +\qquad\qquad\qquad\mathrm{[flux-transport-equation]}@f] where on the inflow part of the cell the value is taken from the neighboring cell, $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 \eqref{transport-equation} is given +scheme for the transport equation [transport-equation] is given by: find $u_h\in V_h$ such that for all $v_h\in V_h$ following equation holds: -\begin{equation}\label{dg-transport} - \sum_\kappa\left\{-(u_h,\boldsymbol\beta\cdot\nabla v_h)_\kappa - +(\boldsymbol\beta\cdot{\bf n}\, u_h, v_h)_{\partial\kappa_+} - +(\boldsymbol\beta\cdot{\bf n}\, u_h^-, v_h)_{\partial\kappa_-\setminus\Gamma}\right\} - =(f,v_h)_\Omega-(\boldsymbol\beta\cdot{\bf n}\, g, v_h)_{\Gamma_-}, -\end{equation} +@f[ + \sum_\kappa\left\{-(u_h,{\mathbf \beta}\cdot\nabla v_h)_\kappa + +({\mathbf \beta}\cdot{\bf n}\, u_h, v_h)_{\partial\kappa_+} + +({\mathbf \beta}\cdot{\bf n}\, u_h^-, v_h)_{\partial\kappa_-\setminus\Gamma}\right\} + =(f,v_h)_\Omega-({\mathbf \beta}\cdot{\bf n}\, g, v_h)_{\Gamma_-}, +\qquad\qquad\qquad\mathrm{[dg-transport]}@f] where $\partial\kappa_-:=\{x\in\partial\kappa, -\boldsymbol\beta(x)\cdot{\bf n}(x)<0\}$ denotes the inflow boundary +{\mathbf \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 \emph{first version} of the DG method. We note that after a +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 -\[ - \sum_\kappa\left\{(\nabla\cdot\{\boldsymbol\beta u_h\},v_h)_\kappa - -(\boldsymbol\beta\cdot{\bf n} [u_h], v_h)_{\partial\kappa_-}\right\} +@f[ + \sum_\kappa\left\{(\nabla\cdot\{{\mathbf \beta} u_h\},v_h)_\kappa + -({\mathbf \beta}\cdot{\bf n} [u_h], v_h)_{\partial\kappa_-}\right\} =(f,v_h)_\Omega, \quad\forall v_h\in V_h, -\] +@f] 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 \eqref{dg-scheme} and \eqref{flux-transport-equation}, -or \eqref{dg-transport}, respectively. +form given by [dg-scheme] and [flux-transport-equation], +or [dg-transport], respectively. -Finally, we rewrite \eqref{dg-scheme} in terms of a summation over all +Finally, we rewrite [dg-scheme] 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 -\begin{equation}\label{dg-scheme-faces-long} +@f[ -\sum_\kappa({\mathcal F}(u_h),\nabla v_h)_\kappa+\sum_e\left\{({\mathcal H}(u_h^+,u_h^-,{\bf n}), v_h)_e+({\mathcal H}(u_h^-, u_h^+,-{\bf n}), v_h^-)_{e\setminus\Gamma}\right\}=(f,v_h)_\Omega \quad\forall v_h\in V_h, -\end{equation} -By employing conservativity \eqref{conservative} of the numerical flux +\qquad\qquad\qquad\mathrm{[dg-scheme-faces-long]}@f] +By employing conservativity [conservative] of the numerical flux this equation simplifies to: find $u_h\in V_h$ such that -\begin{equation}\label{dg-scheme-faces} +@f[ -\sum_\kappa({\mathcal F}(u_h),\nabla v_h)_\kappa+\sum_e({\mathcal H}(u_h^+,u_h^-,{\bf n}), [v_h])_{e\setminus\Gamma}+({\mathcal H}(u_h,g,{\bf n}), v_h)_{\Gamma}=(f,v_h)_\Omega \quad\forall v_h\in V_h. -\end{equation} +\qquad\qquad\qquad\mathrm{[dg-scheme-faces]}@f] Whereas the outer unit normal ${\bf n}|_{\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 \eqref{dg-scheme-faces-long} that finally produces the -minus sign in the jump $[v_h]$ in equation \eqref{dg-scheme-faces}. +face term in [dg-scheme-faces-long] that finally produces the +minus sign in the jump $[v_h]$ in equation [dg-scheme-faces]. + +For the linear transport equation [transport-equation] +equation [dg-scheme-faces] simplifies to +@f[ + -\sum_\kappa(u_h,{\mathbf \beta}\cdot\nabla v_h)_\kappa+\sum_e\left\{({\mathbf \beta}\cdot{\bf n}\, u_h, [v_h])_{e_+\setminus\Gamma}+({\mathbf \beta}\cdot{\bf n}\, u_h^-, [v_h])_{e_-\setminus\Gamma}\right\}=(f,v_h)_\Omega-({\mathbf \beta}\cdot{\bf n}\, g, v_h)_{\Gamma_-}, +\qquad\qquad\qquad\mathrm{[dg-transport-gamma]}@f] +which will be refered to as second version of the DG method. + + +

Implementation

+ -For the linear transport equation \eqref{transport-equation} -equation \eqref{dg-scheme-faces} simplifies to -\begin{equation}\label{dg-transport-gamma} - -\sum_\kappa(u_h,\boldsymbol\beta\cdot\nabla v_h)_\kappa+\sum_e\left\{(\boldsymbol\beta\cdot{\bf n}\, u_h, [v_h])_{e_+\setminus\Gamma}+(\boldsymbol\beta\cdot{\bf n}\, u_h^-, [v_h])_{e_-\setminus\Gamma}\right\}=(f,v_h)_\Omega-(\boldsymbol\beta\cdot{\bf n}\, g, v_h)_{\Gamma_-}, -\end{equation} -which will be refered to as \emph{second version} of the DG method. -\subsection{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 \eqref{dg-transport} +The first one will be based on the first version [dg-transport] of the DG method that includes a sum of integrals over all cell 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 @@ -178,47 +186,46 @@ 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 \eqref{dg-transport-gamma} that +be based on the second version [dg-transport-gamma] that includes a sum of integrals over all faces $e$. Here, several difficulties occurs. -\begin{itemize} -\item As degrees of freedom are associated with cells (and not to faces) +
    +
  1. As degrees of freedom are associated with cells (and not to faces) and as a normal is only defined w.r.t. a cell adjacent to the face we cannot simply run over all faces of the triangulation but need to perform the nested loop over all cells and all faces of each cell - like in the first implementation. This, because in {\tt deal.II} + like in the first implementation. This, because in deal.II faces are accessible from cells but not visa versa. -\item Due to the nested loop we arrive twice at each face. In order to +
  2. Due to the nested loop we arrive twice at each face. In order to assemble face terms only once we either need to track which faces we have treated before, or we introduce a simple rule that decides which of the two adjacent cells the face should be accessed and treated from. Here, we employ the second approach and define the following rule: - \begin{enumerate} - \renewcommand{\labelenumi}{\alph{enumi})} - \item If the two cells adjacent to a face are of the same refinement level we access and treat the face from the cell with lower index on this level. - \item If the two cells are of different refinement levels we access +
      +
    1. If the two cells adjacent to a face are of the same refinement level we access and treat the face from the cell with lower index on this level. +
    2. If the two cells are of different refinement levels we access and treat the face from the coarser cell. - \end{enumerate} -\end{itemize} +
    +
Before we start with the description of the code we first introduce its main ingredients. The main class is called -{\tt 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 {\tt assemble\_system1} and {\tt 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 -\begin{enumerate} -\item face is at boundary, -\item neighboring cell is finer, -\item neighboring cell is of the same refinement level, and -\item neighboring cell is coarser -\end{enumerate} +
    +
  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 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 @@ -229,28 +236,27 @@ 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 -{\tt DGTransportEquation}. This class includes objects of all -equation--specific functions, the {\tt RHS} and the -{\tt BoundaryValues} class, both derived from the {\tt Function} -class, and the {\tt Beta} class representing the vector field. -Furthermore, the {\tt DGTransportEquation} class comprises member -functions {\tt assemble\_face\_terms1} and -{\tt assemble\_face\_terms2} that are invoked by the -{\tt assemble\_system1} and {\tt assemble\_system2} functions of the -{\tt DGMethod}, respectively, and the functions -{\tt assemble\_cell\_term} and {\tt 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 -{\tt 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 {\tt assemble\_system1} and -{\tt assemble\_system2} functions of the {\tt 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 program is dimension independent, i.e. after replacing -{\tt DGMethod<2>} by {\tt DGMethod<3>} the code runs in 3d. -\end{document} +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.html b/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro.html deleted file mode 100644 index fae153754f..0000000000 --- a/deal.II/doc/tutorial/chapter-2.step-by-step/step-12.data/intro.html +++ /dev/null @@ -1,833 +0,0 @@ - -

Introduction

- - - -

-Overview -

-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 -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 -

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

-subject to the boundary conditions -

-

-
-$\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, -

-

-
-$\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 -$ \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 -

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

-

-
-$\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, -

-

-
-$\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. -

-

-
-$\displaystyle {\mathcal H}(u,u,{\bf n})={\mathcal F}(u)\cdot{\bf n},
-$ -

-

-and conservative, i.e. -

-
- - - - -
$\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 -

-
- - - - -
$\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 $ 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 -is given by -

-
- - - - -
$\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, $ 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: -

-
- - - - -
$\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\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 -

-

-
-$\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 -$ 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 -

-
- - - - -
$\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 -$ {\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 -

-
- - - - -
$\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. - -

-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) -of the DG method that includes a sum of integrals over all cell -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 - -$ 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 $ \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 -includes a sum of integrals over all faces $ e$ -. Here, several -difficulties occurs. - -

-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 -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 -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. -
  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 -disadvantages come up when the scheme or the equation might want to be -changed afterwards) or by calling a separate function that covers all -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 -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 -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 -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 -program is dimension independent, i.e. after replacing -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 deleted file mode 100644 index b9eae85576a01030992fe34550350f782e0d857d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index d7019bfa444e87eb7d3ce923af93f838b71c0a15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index deb67d15e259bde67931aa65f49f5ac78c04fad2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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{ 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 deleted file mode 100644 index d881b9930148c3c4355e4d49322634ff9491fea0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index b3e02833af66227ea32abcc746fd8657e52601c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 8f3318917cce7ac029dc160f1ee3ed103370d20a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index c8b8f112a09fa69b81ed1466483eac866a88d04b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 3d0c27a5c5583da3c814e85153f737d94fb14985..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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! 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 deleted file mode 100644 index bf1ea971010b9e4dea28464c826d15a046424920..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 385a8a3b3b846e86157a488935ae758c72c9fe26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 32ca7abf14bfd88f628029c07ce3ed77a87df4cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 28c341c1b23e885d1c76a7627a2ce67d4a5ae3f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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~ 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 deleted file mode 100644 index 93e647edc76debae8c620c5fc142ba31de579ef8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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($ 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 deleted file mode 100644 index ad589662065ebd2328344512e6250478c99d5fdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 081f46653a7e94ff628c562d83f740ce51048959..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 6ec7a7b930d1881a027eba782c85a6ab4b51448f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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` 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 deleted file mode 100644 index cfe898a3a698de93f146c8ae7e46054083fedbe5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index ae6eb75a0b6421a17472b22104c8897369368c3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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$ 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 deleted file mode 100644 index 8125a08e45290ee1d9429fd942aaaf30f41f229c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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+% 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 deleted file mode 100644 index cf01050f485ac29c7e41b8da76f6cd2450e2908e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index a36f30ace1354c841d59013ddd7ada9ac52044e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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!< 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 deleted file mode 100644 index 20611f5b3335bd42b2117ddf6b8a9f5aa7bb301f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index f9ae6a4d7495eebc4258d176a282895c7bc68fec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 856 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 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 deleted file mode 100644 index f0adf1e25455ff122986844676eb40a8e581e96c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 273 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 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 deleted file mode 100644 index 4d2a8795a6c8c63d164f81f5b8623f05d4d7dfe0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 53629d4f27c6c5a331ba5ffde2e114cee43cc6c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index a04de1801092af0b86f6e652686cedcbd0dabcdd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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? 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 deleted file mode 100644 index 5c7b629fe1c6b60be21879509cb98f710a284d4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 9eb3df90cdac030e9f5e20fe99e8a40467a578b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 89dc91e165e4f37def3c223c2c54f186e07e4245..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 50b34dfe228df79fcf7ec1ad51bd7444df8fd726..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 5e80634532de51fc3975332e7a94c6a1bf197336..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2609 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 T_zI}e00000NkvXXu0mjfm$>Cp 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 deleted file mode 100644 index ef28421b7f3eab6bc835c3372719b2e97eae0b05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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{ 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 deleted file mode 100644 index 96d71336f959c2a852bf69ce9c171c1b007e15e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 392f70de7d88cbd041b005d0352023df6303deae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 40495682956ec2f45b2f32aa92feb65b014f8239..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2513 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 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 deleted file mode 100644 index 51d284f22fba6f4b8f34905aed51e2bd916bb8ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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