Salome HOME
Revert "Synchronize adm files"
[modules/homard.git] / doc / fr / intro.rst
index 3e76e74d74fe77372654ad4aa322fdfb42b018e2..4772bb872aeb4335c480e84db263f2a1fc352374 100644 (file)
@@ -1,13 +1,13 @@
-.. _gui_intro:
+.. _intro:
 
 Introduction
-============
+############
 
 Présentation générale
-"""""""""""""""""""""
-Le logiciel HOMARD est destiné à adapter les maillages dans le cadre des codes de calculs par éléments ou volumes finis. Ce logiciel, réalisé par EDF R&D, procède par raffinement et déraffinement des maillages bidimensionnels ou tridimensionnels. Il est conçu pour être utilisé indépendamment du code de calcul auquel il est couplé.
+*********************
+Le logiciel HOMARD est destiné à adapter les maillages dans le cadre des simulations numériques par éléments ou volumes finis. Ce logiciel, réalisé par EDF R&D, procède par raffinement et déraffinement des maillages bidimensionnels ou tridimensionnels. Il est conçu pour être utilisé indépendamment du logiciel auquel il est couplé.
 
-Raffiner le maillage signifie découper des mailles désignées selon des indications founies par l'utilisateur. Déraffiner le maillage signifie revenir en arrière sur des découpages précédemment réalisés : ainsi, en aucun cas HOMARD ne peut simplifier un maillage existant qui aura été créé trop fin. Le déraffinement prend toute son importance dans les calculs quand la zone d'intérêt se déplace au cours du calcul pour ne plus tenir compte de raffinements précédemment réalisés et qui deviennent inutiles. On en trouvera une illustration au bas de cette page.
+Raffiner le maillage signifie découper des mailles désignées selon des indications fournies par l'utilisateur. Déraffiner le maillage signifie revenir en arrière sur des découpages précédemment réalisés : ainsi, en aucun cas HOMARD ne peut simplifier un maillage existant qui aura été créé trop fin. Le déraffinement prend toute son importance dans les calculs quand la zone d'intérêt se déplace au cours du calcul : on ne tiendra plus compte de raffinements précédemment réalisés et qui deviennent inutiles. On en trouvera une illustration au bas de cette page.
 
 HOMARD sait traiter des maillages en 2 ou 3 dimensions et comportant les mailles suivantes :
    - mailles-points
@@ -21,7 +21,7 @@ HOMARD sait traiter des maillages en 2 ou 3 dimensions et comportant les mailles
 Ces mailles peuvent être présentes simultanément. Par exemple, HOMARD saura adapter un maillage comportant des triangles et des quadrangles.
 Les noeuds acceptés sont évidemment les noeuds qui sont les sommets des mailles, ce qui correspond à la description classique « en degré 1 » . Si les éléments sont décrits « en degré 2 », les noeuds complémentaires sont gérés. En revanche, il ne peut pas y avoir cohabitation de mailles décrites en degré 1 et d'autres décrites en degré 2. Enfin, HOMARD sait prendre en compte des noeuds isolés, qui n'appartiendraient à aucune définition de mailles : ils ressortiront tels quels du processus d'adaptation.
 
-Le cas des pyramides est à part. Pour un maillage comportant des hexaèdres ou des prismes, la mise en conformité du maillage issu du raffinement crée des pyramides pour assurer la liaison entre deux régions de niveaux de raffinement différents. Ces pyramides sont gérées comme toutes les mailles de transition et ne sont pas redécoupées par la suite. En revanche, si le maillage initial contient des pyramides, HOMARD ne saura pas l'adapter et émettra un message d'erreur. Dans certains cas particuliers, on pourra néanmoins traiter un tel maillage, comme il est décrit dans la rubrique 'Options avancées' de :ref:`gui_create_case`).
+Le cas des pyramides est à part. Pour un maillage comportant des hexaèdres ou des prismes, la mise en conformité du maillage issu du raffinement crée des pyramides pour assurer la liaison entre deux régions de niveaux de raffinement différents. Ces pyramides sont gérées comme toutes les mailles de transition et ne sont pas redécoupées par la suite. En revanche, si le maillage initial contient des pyramides, HOMARD ne saura pas l'adapter et émettra un message d'erreur. Dans certains cas particuliers, on pourra néanmoins traiter un tel maillage, comme il est décrit dans la rubrique :ref:`options_avancees` de la création du cas.
 
 Plusieurs motivations apparaissent pour adapter un maillage :
 
@@ -30,12 +30,13 @@ Plusieurs motivations apparaissent pour adapter un maillage :
   - les conditions du calcul changent au cours de son déroulement : les zones qui doivent être maillées finement se déplacent. Si on maille fin partout dès le début, le maillage est trop gros. En adaptant au fur et à mesure, le maillage ne sera fin qu'aux endroits nécessaires : sa taille sera réduite et la qualité de la solution sera bonne.
 
 Dans tous les cas, le principe de l'adaptation de maillage reste le même. Sur le maillage de départ, on réalise le calcul standard. Avec une analyse de la solution numérique obtenue, on estime l'erreur qui a été commise par rapport à la solution réelle. Cette estimation se représente par une valeur d'indicateur d'erreur dans chaque maille du calcul. A partir de là, on applique le principe suivant : les mailles où l'indicateur d'erreur est fort devraient être plus petites et, réciproquement, les mailles où l'indicateur d'erreur est faible pourraient être plus grandes. Avec cette information, on alimente HOMARD qui va modifier le maillage en conséquence. Sur le nouveau maillage, on recommencera alors le calcul.
+
 Schématiquement, une itération d'adaptation de maillage se présente ainsi. Le logiciel calcule la solution numérique sur le maillage n°k, puis en déduit les valeurs de l'indicateur d'erreur sur tout le maillage. A partir de la connaissance du maillage n°k et de l'indicateur n°k, HOMARD crée le nouveau maillage n°k+1.
 
 .. image:: images/intro_1.png
    :align: center
 
-Au final, la chaîne complète part du maillage initial produit par un mailleur. Elle comprend des maillons successifs (calcul d'indicateur / adaptation) comme sur la figure ci-après.
+Au final, la chaîne complète part du maillage initial, puis comprend des maillons successifs (calcul d'indicateur / adaptation). Pour des problèmes stationnaires en temps, cela équivaut à une succession de calculs indépendants sur différents maillages. Pour des problèmes transitoires, le calcul est suspendu à un instant donné ; après adaptation du maillage, le calcul est repris au même instant ou à un instant antérieur.
 
 .. image:: ../images/intro_2.png
    :align: center
@@ -52,152 +53,235 @@ Des variantes de ce sch
 
   `Accessible en cliquant ici <http://dx.doi.org/10.1016/j.finel.2012.11.008>`_
 
+.. index:: single: YACS
 
-Quelques illustrations de maillage adaptés
-""""""""""""""""""""""""""""""""""""""""""
-.. index:: single: illustration
+.. note::
+  Cet alternance de calculs et d'adaptions est très appropriée à la mise place de schémas :ref:`yacs`.
 
-+---------------------------------------------------------------+
-+---------------------------------------------------------------+
-|                                                               |
-| .. image:: ../images/intro_3.png                              |
-|    :align: center                                             |
-|                                                               |
-+---------------------------------------------------------------+
-|                                                               |
-| .. image:: ../images/intro_4.png                              |
-|    :align: center                                             |
-|                                                               |
-+---------------------------------------------------------------+
-|                                                               |
-| .. image:: ../images/intro_5.png                              |
-|    :align: center                                             |
-|                                                               |
-+---------------------------------------------------------------+
-|                                                               |
-| .. image:: ../images/intro_6.png                              |
-|    :align: center                                             |
-|                                                               |
-+---------------------------------------------------------------+
-|                                                               |
-| .. image:: ../images/intro_7.png                              |
-|    :align: center                                             |
-|                                                               |
-+---------------------------------------------------------------+
-|                                                               |
-| .. image:: ../images/intro_8.gif                              |
-|    :align: center                                             |
-|                                                               |
-+---------------------------------------------------------------+
+Mode de découpage des mailles
+*****************************
+.. index:: single: découpage
+.. index:: single: conformité
+
+Globalement le processus de maillage adaptatif par découpage des mailles se résume en deux phases. Dans la première phase, on découpe toutes les mailles qui ont été désignées par les indications de pilotage. Cela produit un maillage qui n'est pas conforme : des noeuds sont pendants à la jonction entre une zone à raffiner et une zone à garder.
+La seconde phase vise à régler tous ces problèmes de conformité.
+
+A ces deux phases correspondent des modes de découpages différents.
+Dans la première phase, toutes les mailles sont découpées de la même manière ; c'est ce que nous appelons le découpage standard. Dans la seconde phase, une partie des conflits de conformité de maillage dans les zones de jonction se règle
+par les mêmes découpages standard de mailles et une autre partie se règle par des découpages spéciaux.
+
+Les modes de découpage décrits ci-dessous ont été choisis pour ne pas détériorer la qualité du maillage au cours des itérations d'adaptation.
+
+
+Le découpage standard
+=====================
+Le découpage standard des mailles se fait en ayant pour objectif de limiter les cas de figure.
+Ainsi, les arêtes sont-elles scindées en deux moitiés égales.
+
+Pour découper un triangle, on découpe ses trois arêtes en deux et on se trouve avec 4 triangles semblables. Ils conservent donc la même qualité.
+
+.. image:: ../images/dec_tria_1.gif
+   :align: center
+   :alt: Découpage standard d'un triangle
+   :width: 399
+   :height: 88
 
-Démarrage rapide
-""""""""""""""""
-.. index:: single: démarrage
-.. index:: single: exemple
+Pour découper un quadrangle, on découpe ses quatre arêtes en deux et on se trouve avec 4 quadrangles non semblables au quadrangle père et donc de qualité différente.
 
-L'ensemble des options de pilotage du module HOMARD dans SALOME est décrit dans le :ref:`gui_usage`. Mais on trouvera ici le B.A. BA pour découvrir l'utilisation de HOMARD à partir d'un exemple simple. Imaginons que l'on a effectué un calcul de thermique sur un maillage donné. On a récupéré en sortie de ce calcul un fichier au format MED, contenant le maillage et le champ des températures aux noeuds. On aimerait adapter le maillage de telle sorte que l'écart de température entre deux noeuds voisins soit inférieur à une valeur donnée.
+.. image:: ../images/dec_quad_1.png
+   :align: center
+   :alt: Découpage standard d'un quadrangle
+   :width: 399
 
-La première action nécessite de lancer le module HOMARD, en créant une nouvelle étude, selon le principe qui a été retenu pour tous les autres modules de SALOME.
+Le découpage des tétraèdres se fait en huit. Pour commencer, chacune des faces triangulaires est découpée en 4 faces triangulaires semblables.
 
-.. image:: images/homard_1.png
+.. image:: ../images/dec_tetr_1.gif
    :align: center
+   :alt: Découpage standard d'un tétraèdre - 1
+   :width: 328
+   :height: 115
 
-Une fois le module HOMARD activé, on crée un cas par le choix "*Nouveau cas*" dans le menu HOMARD.
+Ce découpage des faces produit 4 tétraèdres dans les angles du tétraèdre initial. On remarque que ces 4 nouveaux tétraèdres sont homothétiques de l'initial. Ils conservent donc la même qualité.
 
-.. image:: images/homard_2.png
+.. image:: ../images/dec_tetr_2.gif
    :align: center
+   :alt: Découpage standard d'un tétraèdre - 2
+   :width: 201
+   :height: 159
 
-La fenêtre suivante apparaît :
+Il reste au coeur du tétraèdre, un bloc qui a la forme de deux pyramides accolées par leur base. On crée une arête avec l'une des 3 diagonales possibles, puis les 4 faces qui contiennent cette arête et deux arêtes extérieures.
 
-.. image:: images/intro_31.png
+.. image:: ../images/dec_tetr_3.gif
    :align: center
+   :alt: Découpage standard d'un tétraèdre - 3
+   :width: 244
+   :height: 74
 
-Il faut fournir deux informations : le répertoire qui contiendra les fichiers produits par les adaptations successives et le fichier issu du calcul que l'on vient de faire. On valide par "Appliquer et fermer".
+Cela produit 4 nouveaux tétraèdres. On notera qu'ils sont semblables deux à deux, mais qu'ils ne peuvent jamais être semblables au tétraèdre initial. Ils ne pourront donc jamais avoir la même qualité que lui. Toutefois, selon le choix
+de la diagonale qui a servi à la découpe du bloc pyramidal interne, le résultat
+n'est pas le même. On montre que le meilleur choix, en terme de qualité, est celui
+de la plus petite des trois diagonales possibles.
 
-.. image:: images/intro_32.png
+.. image:: ../images/dec_tetr_4.gif
    :align: center
+   :alt: Découpage standard d'un tétraèdre - 4
+   :width: 229
+   :height: 116
 
-L'arbre d'études est enrichi de ce cas. On déplie le cas jusqu'à afficher le maillage correspondant à l'itération 0. On désigne cette itération initiale et on demande une nouvelle itération par "*Nouvelle itération*" dans le menu HOMARD ou à la souris.
+Le découpage des hexaèdres se fait en huit. Chacune des faces quadrangulaires est découpée en 4 faces quadrangulaires. 3 faces internes à l'hexaèdre sont créées, puis chacune est découpée en 4. Cette construction crée 6 points supplémentaires au centre de chaque face externe et un point supplémentaire à l'intérieur de l'hexaèdre.
 
-.. image:: images/intro_331.png
+.. image:: ../images/dec_hex.png
    :align: center
+   :alt: Découpage standard d'un hexaèdre
+   :scale: 70
 
-La fenêtre suivante apparaît :
+Le découpage des pentaèdres se fait en huit. Chacune des faces quadrangulaires est découpée en 4 faces quadrangulaires de manière standard, de même pour les faces triangulaires. On construit trois arêtes internes chacune parallèle à une des faces quadrangulaires au milieu du penatèdre. On construit ensuite 4 faces triangulaires s'appuyant sur ces arêtes et correspondant au découpage standard d'une face triangulaire à l'intérieur du pentaèdre. Six faces quadrangulaires internes sont créées deux à deux parallèles à chaque face quadrangulaire du pentaèdre.
 
-.. image:: images/intro_33.png
+.. image:: ../images/dec.pent.png
    :align: center
+   :alt: Découpage standard d'un pentaèdre
+   :scale: 20
+
+Le découpage de mise en conformité
+==================================
 
-On désigne le fichier issu du calcul que l'on vient de faire et qui contient le champ de température. C'est le même que celui qui a été donné dans la définition du cas.
+Le découpage de mise en conformité s'appliquent aux mailles à l'interface entre deux niveaux de raffinement différent.
+Ces découpages produisent des mailles de qualité moindre par rapport aux mailles et on voit dans l'algorithme général comment cet inconvénient est pris en compte pour en minimiser les conséquences.
 
-.. image:: images/intro_34.png
+Etant donné notre algorithme de maillage adaptatif, seules les quatre situations suivantes peuvent être rencontrées :
+
+Dans le cas d'un triangle, l'une de ses trois arêtes est coupée en deux. On joint son milieu au sommet opposé pour former deux nouveaux triangles.
+
+.. image:: ../images/dec_tria_2.gif
    :align: center
+   :alt: Découpage de conformité d'un triangle
+   :width: 399
+   :height: 88
 
-On clique sur "Nouveau" dans la rubrique hypothèse. La fenêtre suivante apparaît :
+Dans le cas d'un quadrangle, l'une de ses quatre arêtes est coupée en deux. On joint son milieu aux deux sommets opposés pour former trois triangles. Le maillage adapté obtenu est donc mixte.
 
-.. image:: images/intro_35.png
+.. image:: ../images/dec_quad_2.png
    :align: center
+   :alt: Découpage de conformité d'un quadrangle
+   :width: 399
 
-On modifie les options par défaut pour correspondre à notre choix de pilotage de l'adaptation. La sélection d'un pilotage par les saut entre éléments et d'un seuil absolu de 4.0 va demander le découpage de chaque arête de maille où le température varie de plus de 4.0 degrés entre les deux extrémités de l'arête.
+Pour un tétraèdre dont trois des arêtes sont coupées : cela n'est possible que si ces arêtes sont sur la même face. Cette face est donc coupée en quatre. On joint les milieux des arêtes découpées au sommet opposé. Cela coupe en deux les trois autres faces et il y a création de 4 tétraèdres.
 
-.. image:: images/intro_36.png
+.. image:: ../images/dec_tetr_5.gif
    :align: center
+   :alt: Découpage de conformité d'un tétraèdre - 1
+   :width: 116
+   :height: 116
 
-On valide par "Appliquer et fermer" cette création d'hypothése, puis la création de la nouvelle itération. On se retrouve avec un arbre d'études enrichi avec la description de l'hypothèse créée et de l'itération à calculer, repérée par une icone "en attente".
+Pour un tétraèdre dont deux des arêtes sont coupées : cela n'est possible que si ces arêtes sont opposées. On fait toutes les jonctions entre les milieux de ces arêtes et les autres sommets, ainsi que entre les deux milieux d'arêtes. Les quatre faces sont coupées en deux et il y a création de 4 tétraèdres.
 
-Lancer l'adaptation s'obtient en sélectionnant l'itération à calculer. On choisit ensuite "*Calculer*" dans le menu HOMARD ou à la souris. L'arbre d'études s'enrichit de fichiers d'informations et du nom du fichier au format MED qui contient le nouveau maillage, ``maill.01.med``. On remarque qu'il est placé dans le répertoire qui a été désigné à la création du cas.
+.. image:: ../images/dec_tetr_6.gif
+   :align: center
+   :alt: Découpage de conformité d'un tétraèdre - 2
+   :width: 116
+   :height: 116
 
-.. image:: images/intro_37.png
+Pour un tétraèdre dont une des arêtes est coupée : on joint le milieu de cette arête découpée au sommet opposé et il y a création de 2 tétraèdres.
+
+.. image:: ../images/dec_tetr_7.gif
    :align: center
+   :alt: Découpage de conformité d'un tétraèdre - 3
+   :width: 116
+   :height: 116
+
+La conformité des hexaèdres est assurée par des combinaisons de tétraèdres et de pyramides. Les situations dépendent du nombre de non-conformités.
 
-A ce stade, on va utiliser ce nouveau maillage pour un deuxième calcul, dans les mêmes conditions que le premier. Une fois que ce nouveau calcul est achevé, on peut décider de poursuivre le processus d'adaptation. Pour cela on revient dans SALOME et on active le module HOMARD. On désigne l'itération que l'avait calculée précédemment "*Iter_1*" et on demande une nouvelle itération. La fenêtre suivante apparaît :
+Pour un hexaèdre dont une face est coupée il y a création de 4 arêtes, de 4 tétraèdres et de 5 pyramides.
 
-.. image:: images/intro_38.png
+.. image:: ../images/hexaface.png
    :align: center
+   :alt: Découpage de conformité d'un hexaèdre - 1 face
+   :width: 384
+   :height: 101
 
-Comme on continue l'adaptation avec le même critère de saut de température entre noeuds voisins, on garde l'hypothèse "*Hypo_1*". Il suffit de désigner le fichier issu du calcul que l'on vient de faire et qui contient le nouveau champ de température.
+Pour un hexaèdre dont une seule arête est coupée il y a création de deux arêtes et de 4 pyramides.
 
-.. image:: images/intro_39.png
+.. image:: ../images/hexa1arete.png
    :align: center
+   :alt: Découpage de conformité d'un hexaèdre - 1 arête
+   :width: 384
+   :height: 101
 
-Comme précédemment, on lance l'adaptation et on récupère les résultats dans le répertoire du cas, dont le maillage ``maill.02.med``.
+Pour un hexaèdre dont deux arêtes sont coupées il y a création  d'un point central, de 10 arêtes, de 12 tétraèdres et de 2 pyramides.
 
-.. image:: ../images/intro_40.png
+.. image:: ../images/hexa2aretes.png
    :align: center
+   :alt: Découpage de conformité d'un hexaèdre - 2 arêtes
+   :width: 384
+   :height: 101
 
-On peut alors lancer un nouveau calcul sur ce nouveau maillage et poursuiver cette alternance calcul/adaptation jusqu'à l'obtention du résultat attendu.
+Pour un hexaèdre dont trois arêtes sont coupées il y a création  d'un point central, de 11 arêtes et de 18 tétraèdres.
 
+.. image:: ../images/hexa3aretes.png
+   :align: center
+   :alt: Découpage de conformité d'un hexaèdre - 3 arêtes
+   :width: 384
+   :height: 101
 
-Evolutions du module
-""""""""""""""""""""
-.. index:: single: évolution
 
-On trouvera ici les principales évolutions de HOMARD à partir de la première version livrée dans SALOME 6.5.
 
-SALOME VERSION 6.6 :
-   - Interfaçage avec med 3.0.6
-   - Valeurs par défaut des instants
-   - Acceptation des mailles de type TRIA7 et QUAD9
-   - Option de sortie dans le fichier MED du niveau de raffinement atteint dans chaque maille
+L'algorithme
+************
+.. index:: single: algorithme
 
-SALOME VERSION 7.1 :
-   - Correction d'une anomalie sur le filtrage du raffinement par les groupes
-   - Pilotage de l'adaptation par un seuil basé sur la moyenne et l'écart-type (voir :ref:`tui_create_hypothese`)
-   - En TUI, choix du dernier instant comme instant de pilotage par SetTimeStepRankLast (voir :ref:`tui_create_iteration`)
-   - Possibilité de détruire les objets (GUI et TUI)
-   - Modification des fonctions TUI pour qu'elles agissent sur les objets et non plus sur les noms :
-     ``homard.AssociateIterHypo(iter_name,hypo_name)`` devient ``iter.AssociateHypo(hypo_name)``, ``homard.AssociateHypoZone(hypo_name,zone_name,type_use)`` devient ``hypo.AddZone(zone_name,type_use)``, ``homard.CreateIteration(iter_name,iter_parent_name)`` devient ``case.NextIteration(iter_name)`` ou ``iter.NextIteration(iter_name)``
-   - Ajout de fonctions :
-     ``cas.LastIteration()`` : retourne la dernière itération de la descendance du cas (voir :ref:`tui_create_iteration`)
-   - Analyse de maillages (voir :ref:`gui_mesh_info`)
+La stratégie retenue dans les algorithmes d'HOMARD consiste à forcer le découpage en quatre pour toutes les faces triangulaires ou quadrangulaires présentant deux points de non conformité. A la fin, les seuls triangles ou quadrangles présentant des points de non conformité sont des faces où une arête et une seule est découpée. La mise en conformité est
+alors assurée par la solution la plus simple possible comme vu ci-avant.
+Cette dernière étape de mise en conformité introduit des mailles dont la qualité peut être plus faible que celle
+des mailles dont elles sont issues. Cet inconvénient est contrôlé car nous avons choisi de donner un statut temporaire
+à ces mailles de mise en conformité : elles sont présentes pour produire un maillage acceptable par les logiciels
+de calcul, mais disparaissent s'il y a besoin de les découper ultérieurement.
+Ainsi, la modification de qualité ne se propage pas au fil des itérations d'adaptation de maillage et reste limitée autant en valeur qu'en nombre de mailles concernées.
 
-SALOME VERSION 7.2 :
-   - Possibilité d'utiliser un cone comme support de frontiere 2D (voir :ref:`tui_create_boundary`)
-   - Choix de publier ou non le résultat dans SMESH (voir :ref:`tui_create_iteration`)
-     ``iter.Compute(option)`` devient ``iter.Compute(option1, option2)``
-   - Possibilité de poursuivre une suite d'itérations archivées dans un répertoire (voir :ref:`gui_create_case`)
+L'algorithme général est donc le suivant :
 
+    * Transfert des indications de raffinement ou de déraffinement des mailles en décisions de découpage ou de regroupement d'arêtes, de triangles et de quadrangles.
+    * Suppression des mailles temporaires de mise en conformité.
+    * Par examen de tous les triangles et quadrangles du niveau de découpage le plus bas vers le niveau le plus haut, règlement des conflits sur le déraffinement au moyen des règles de base.
+    * Par examen de tous les triangles et quadrangles du niveau de découpage le plus haut vers le niveau le plus bas, règlement des conflits sur le raffinement au moyen des règles de base.
+    * Création effective du nouveau maillage : découpage standard, suivi de mise en conformité.
 
 
+Quelques illustrations de maillage adaptés
+******************************************
+.. index:: single: illustration
 
+On pourra trouver des exemples d'utilisations de l'adaptation de maillage sur le site de `HOMARD <http://www.code-aster.org/outils/homard/fr/applications.html>`_
 
++---------------------------------------------------------------+
++---------------------------------------------------------------+
+|                                                               |
+| .. image:: ../images/intro_3.png                              |
+|    :align: center                                             |
+|                                                               |
++---------------------------------------------------------------+
+|                                                               |
+| .. image:: ../images/intro_4.png                              |
+|    :align: center                                             |
+|                                                               |
++---------------------------------------------------------------+
+|                                                               |
+| .. image:: ../images/intro_5.png                              |
+|    :align: center                                             |
+|                                                               |
++---------------------------------------------------------------+
+|                                                               |
+| .. image:: ../images/intro_6.png                              |
+|    :align: center                                             |
+|                                                               |
++---------------------------------------------------------------+
+|                                                               |
+| .. image:: ../images/intro_7.png                              |
+|    :align: center                                             |
+|                                                               |
++---------------------------------------------------------------+
+|                                                               |
+| .. image:: ../images/intro_8.gif                              |
+|    :align: center                                             |
+|                                                               |
++---------------------------------------------------------------+