From 657c02dbcb5f2da14bdda6757e311a0f29c85040 Mon Sep 17 00:00:00 2001 From: nicolas Date: Thu, 27 Jun 2013 15:33:25 +0000 Subject: [PATCH] complements --- doc/en/demarrage_rapide.rst | 2 +- doc/en/gui_create_case.rst | 49 ++++---- doc/en/gui_usage.rst | 10 +- doc/fr/demarrage_rapide.rst | 2 +- doc/fr/divers.rst | 14 +-- doc/fr/glossaire.rst | 2 +- doc/fr/gui_create_boundary.rst | 12 +- doc/fr/gui_create_case.rst | 20 ++-- doc/fr/gui_create_hypothese.rst | 20 ++-- doc/fr/gui_create_iteration.rst | 16 +-- doc/fr/gui_create_zone.rst | 20 ++-- doc/fr/gui_homard.rst | 10 +- doc/fr/gui_mesh_info.rst | 18 +-- doc/fr/images/dec_hex.gif | Bin 0 -> 45865 bytes doc/fr/images/dec_tetr_1.gif | Bin 0 -> 1842 bytes doc/fr/images/dec_tetr_2.gif | Bin 0 -> 1406 bytes doc/fr/images/dec_tetr_3.gif | Bin 0 -> 1079 bytes doc/fr/images/dec_tetr_4.gif | Bin 0 -> 1450 bytes doc/fr/images/dec_tetr_5.gif | Bin 0 -> 923 bytes doc/fr/images/dec_tetr_6.gif | Bin 0 -> 1132 bytes doc/fr/images/dec_tetr_7.gif | Bin 0 -> 863 bytes doc/fr/images/dec_tria_1.gif | Bin 0 -> 1089 bytes doc/fr/images/dec_tria_2.gif | Bin 0 -> 991 bytes doc/fr/index.rst | 10 +- doc/fr/intro.rst | 197 +++++++++++++++++++++++++++++++- doc/images/dec.pent.png | Bin 0 -> 52178 bytes doc/images/dec_hex.gif | Bin 0 -> 45865 bytes doc/images/dec_hex.png | Bin 0 -> 9527 bytes doc/images/dec_quad_1.png | Bin 0 -> 13170 bytes doc/images/dec_quad_2.png | Bin 0 -> 15465 bytes doc/images/dec_tetr_1.gif | Bin 0 -> 1842 bytes doc/images/dec_tetr_2.gif | Bin 0 -> 1406 bytes doc/images/dec_tetr_3.gif | Bin 0 -> 1079 bytes doc/images/dec_tetr_4.gif | Bin 0 -> 1450 bytes doc/images/dec_tetr_5.gif | Bin 0 -> 923 bytes doc/images/dec_tetr_6.gif | Bin 0 -> 1132 bytes doc/images/dec_tetr_7.gif | Bin 0 -> 863 bytes doc/images/dec_tria_1.gif | Bin 0 -> 1089 bytes doc/images/dec_tria_2.gif | Bin 0 -> 991 bytes doc/images/hexa1arete.png | Bin 0 -> 2756 bytes doc/images/hexa2aretes.png | Bin 0 -> 3677 bytes doc/images/hexa3aretes.png | Bin 0 -> 3960 bytes doc/images/hexaface.png | Bin 0 -> 3431 bytes 43 files changed, 297 insertions(+), 105 deletions(-) create mode 100644 doc/fr/images/dec_hex.gif create mode 100644 doc/fr/images/dec_tetr_1.gif create mode 100644 doc/fr/images/dec_tetr_2.gif create mode 100644 doc/fr/images/dec_tetr_3.gif create mode 100644 doc/fr/images/dec_tetr_4.gif create mode 100644 doc/fr/images/dec_tetr_5.gif create mode 100644 doc/fr/images/dec_tetr_6.gif create mode 100644 doc/fr/images/dec_tetr_7.gif create mode 100644 doc/fr/images/dec_tria_1.gif create mode 100644 doc/fr/images/dec_tria_2.gif create mode 100644 doc/images/dec.pent.png create mode 100644 doc/images/dec_hex.gif create mode 100644 doc/images/dec_hex.png create mode 100644 doc/images/dec_quad_1.png create mode 100644 doc/images/dec_quad_2.png create mode 100644 doc/images/dec_tetr_1.gif create mode 100644 doc/images/dec_tetr_2.gif create mode 100644 doc/images/dec_tetr_3.gif create mode 100644 doc/images/dec_tetr_4.gif create mode 100644 doc/images/dec_tetr_5.gif create mode 100644 doc/images/dec_tetr_6.gif create mode 100644 doc/images/dec_tetr_7.gif create mode 100644 doc/images/dec_tria_1.gif create mode 100644 doc/images/dec_tria_2.gif create mode 100644 doc/images/hexa1arete.png create mode 100644 doc/images/hexa2aretes.png create mode 100644 doc/images/hexa3aretes.png create mode 100644 doc/images/hexaface.png diff --git a/doc/en/demarrage_rapide.rst b/doc/en/demarrage_rapide.rst index 620a1862..cb1f3368 100644 --- a/doc/en/demarrage_rapide.rst +++ b/doc/en/demarrage_rapide.rst @@ -71,7 +71,7 @@ The adaption goes on with the same criteria; the hypothesis "*Hypo_1*" is kept. .. image:: images/intro_39.png :align: center -As before, the iteration is computed ans the results are found into the directory of the case, including the mesh ``maill.02.med``. +As before, the iteration is computed and the results are found into the directory of the case, including the mesh ``maill.02.med``. .. image:: ../images/intro_40.png :align: center diff --git a/doc/en/gui_create_case.rst b/doc/en/gui_create_case.rst index 6399728d..bfbdb017 100644 --- a/doc/en/gui_create_case.rst +++ b/doc/en/gui_create_case.rst @@ -4,13 +4,13 @@ The creation of a case ====================== .. index:: single: case -La définition du cas se fait par la donnée des informations suivantes : +The definition of a case is done with the following data: - - Un nom - - Un répertoire - - Le fichier du maillage initial - - Le type de conformité pour la série d'adaptations envisagées - - Les éventuelles frontières courbes à respecter + - A name + - A directory + - The file of the initial mesh + - The type of conformity for the serie of adaptations + - Some curved boundaries .. image:: images/create_case_1.png :align: center @@ -18,11 +18,11 @@ La d Name of the case """""""""""""""" -Un nom de cas est proposé automatiquement : Case_1, Case_2, etc. Ce nom peut être modifié. Il ne doit pas avoir déjà été utilisé pour un autre cas. +A name is automatically suggested for the case: Case_1, Case_2, etc. This name can be modified. It must be a new name. The directory """"""""""""" -Le répertoire est celui qui contiendra les fichiers produits par les adaptations successives. Par défaut, rien n'est proposé. Le choix est fait, soit en tapant le nom dans la zone de texte, soit en activant la fonction de recherche. C'est dans ce répertoire que seront exportés les maillages au format MED, dans des fichiers de nom ``maill.xx.med``, où ``xx`` est un numéro d'ordre créé automatiquement. Ces fichiers seront visibles dans l'arbre d'études. +The directory will countain all the files producted by the successive adaptations. By default, nothing is suggested. The choice is made either by giving a name into the text zone or by a selection through the search window. In this directory, the MED files for the adapted mesh will be stored, with name ``maill.xx.med``, where ``xx`` is a rank number automatically created. These files can be seen into the object browser. .. image:: images/create_case_2.png :align: center @@ -32,51 +32,54 @@ Le r The initial mesh """""""""""""""" -Le maillage initial doit se trouver dans un fichier au format MED. Classiquement, il aura été produit par le logiciel de calcul avec lequel on travaille. Mais il peut également avoir été créé avec le module SMESH et exporté au format MED. Le nom du fichier peut être fourni, soit en tapant le nom dans la zone de texte, soit en activant la fonction de recherche. +The initial mesh must be stored into a MED file. Usually, it is produced by the software that solves the physical problem. But it also can be created by the module SMESH and exported with the MED format. The name of the file is choosen either by giving a name into the text zone or by a selection through the search window. + .. image:: images/create_case_3.png :align: center .. note:: - Le fichier ne doit contenir qu'un seul maillage. + Only one mesh into the file. .. warning:: - Le maillage ne doit pas être lui-même le produit d'une adaptation de maillage par HOMARD, sous peine de perdre la cohérence entre les différents niveaux de raffinement/déraffinement + The initial mesh must not be itself the product of an adaptation by HOMARD. If it is, the coherence between the different levels of refinement will be lost. + .. index:: single: conformity Type of conformity """""""""""""""""" -Les itérations qui seront calculées pour ce cas devront toutes respecter le même comportement vis-à-vis de la conformité. +The future iterations for this case must respect the the same behaviour regarding the type of conformity. + +The default option, 'conformal', implies that the meshes produced by HOMARD will be conformal, as expected in the finite element method. This is a classical choice for most of the simulation software with the finite element method. -L'option par défaut, 'conforme', implique que les maillages produits par HOMARD seront conformes au sens des éléments finis. C'est le choix classique de la plupart des logiciels de simulation par éléments finis. +Nevertheless, if the computation is available with non conformal meshes, 3 possibilities are available: -Néanmoins, si le calcul est possible avec des maillages non conformes, on a le choix entre 3 possibilités : .. image:: images/create_case_4.png :align: center -* 1 noeud par maille : une maille ne peut posséder qu'un seul noeud de non conformité avec ses voisines. -* 1 noeud par arête : chaque arête d'une maille peut être découpée sans que la maille voisine par cette arête ne le soit. -* quelconque : aucune limitation sur les raccords de conformité d'une maille à l'autre. +* 1 node per element: an element must not have more than one hanging node with its neighbours. +* 1 node per edge: every single edge of an element ban be split once while its neighbour is not. +* free: no limit for the number of hanging node. .. index:: single: boundary The boundaries """""""""""""" -Quand le bord du domaine est courbe, HOMARD sait placer les nouveaux noeuds sur ces frontières pour éviter des singularités artificielles. Cette technique est aussi applicable à une courbure intérieure à un domaine. +If the limit of the domain is curved, HOMARD can put the new nodes onto these curved limits to avoid some artificial singularities. This technique is effective for external limits as well for internal limits. -Deux cas de figure sont présents : +Two situations: -* courbe 1D : cette courbe peut être définie dans un plan, par exemple pour un calcul 2D. Elle peut également être définie dans l'espace 3D, par exemple pour l'intersection de deux surfaces. Une ligne à suivre est décrite de manière discrète. -* surface : une surface à suivre est décrite de manière analytique. +* 1D curve: this curve may be defined into a plane, for example for a 2D calculation. It can also be defined into the 3D space, for example to describe the intersection of two surfaces. Such a line is defined with a discrete desription. +* a surface: such a surface is defined with an analytical description. -On cochera le ou les boutons voulus : +Check the button: .. image:: images/create_case_5.png :align: center -La définition des frontières est décrite dans :ref:`gui_create_boundary`. +The definition of the boundaries is described in :ref:`gui_create_boundary`. .. index:: single: pyramid diff --git a/doc/en/gui_usage.rst b/doc/en/gui_usage.rst index 16b14ae9..d662319c 100644 --- a/doc/en/gui_usage.rst +++ b/doc/en/gui_usage.rst @@ -7,12 +7,12 @@ User's guide of the graphical interface Activation of the module HOMARD """"""""""""""""""""""""""""""" -Pour utiliser le module HOMARD, deux façons existent : +Two ways can be used to launch the module HOMARD: -#. en activant l'onglet HOMARD dans la liste des modules, -#. en cliquant sur le bouton HOMARD dans la barre d'outils. +#. by activating the tab HOMARD into the list of the modules +#. by clicking the button HOMARD into tool bar -L'utilisateur a alors le choix entre créer une nouvelle étude ou en ouvrir une qui a été précédemment enregistrée, selon le principe qui a été retenu pour tous les autres modules de SALOME. +The user can choose either to start a new study or to open an old stored one, as it can be done for every module of SALOME. .. image:: images/homard_1.png :align: center @@ -20,7 +20,7 @@ L'utilisateur a alors le choix entre cr Definition of an adaptation """"""""""""""""""""""""""" -Une fois que HOMARD a été activé, la permière action consiste à créer un cas. Il s'agit de sélectionner le maillage initial de la suite d'adaptations envisagée (voir :ref:`gui_create_case`). A partir de ce cas, on définira les itérations successives (voir :ref:`gui_create_iteration`) à partir des hypothèses (voir :ref:`gui_create_hypothese`). Les adaptations sont lancées tel que décrit dans :ref:`gui_homard`. +Once the activation of the module HOMARD is done, a case is created. The initial mesh of the series of adapted meshes is selected (see :ref:`gui_create_case`). From this case, the successives iterations are defined (see :ref:`gui_create_iteration`) with hypotheses (see :ref:`gui_create_hypothese`). The adaptations are launched as described in :ref:`gui_homard`. User's guide of the graphical interface diff --git a/doc/fr/demarrage_rapide.rst b/doc/fr/demarrage_rapide.rst index 43558581..d443a8a8 100644 --- a/doc/fr/demarrage_rapide.rst +++ b/doc/fr/demarrage_rapide.rst @@ -1,7 +1,7 @@ .. _demarrage_rapide: Démarrage rapide -================ +################ .. index:: single: démarrage .. index:: single: exemple diff --git a/doc/fr/divers.rst b/doc/fr/divers.rst index e0e8c58c..5bad0d1c 100644 --- a/doc/fr/divers.rst +++ b/doc/fr/divers.rst @@ -1,16 +1,16 @@ .. _divers: Divers -====== +###### Références -"""""""""" +********** .. index:: single: référence Le logiciel HOMARD a fait l'objet de publications techniques au cours de conférences ces dernières années. Les références des principaux documents sont présentées ici. Référence principale -^^^^^^^^^^^^^^^^^^^^ +==================== Pour une référence à HOMARD, utiliser : @@ -20,7 +20,7 @@ G. Nicolas and T. Fouquet, Adaptive Mesh Refinement for Conformal Hexahedral Mes Découpage de maillage -^^^^^^^^^^^^^^^^^^^^^ +===================== * G. Nicolas, T. Fouquet, Conformal hexaedral meshes and adaptive mesh refinement, VI International Conference on Adaptive Modeling and Siumulation, "*ADMOS 2013*", J.P. Moitinho de Almeida, P. Diez, C. Tiago and N. Pares (Eds), Lisbonne, pp. 515-526, 2013 * G. Nicolas, T. Fouquet, Hexaedral mesh adaptation for finite volume methods, III International Conference on Adaptive Modeling and Siumulation, "*ADMOS 2007*", K. Runesson, P. Diez (Eds), Goteborg, pp. 174-177, 2007 @@ -28,7 +28,7 @@ D * G. Nicolas, F. Arnoux-Guisse, O. Bonnin, Un logiciel d'adaptation de maillage en 2D et 3D, 27ème Congrès d'Analyse Numérique, Super-Besse, France, 29 mai-2 juin 1995. Estimateurs d'erreurs -^^^^^^^^^^^^^^^^^^^^^ +===================== * A. Ern, S. Meunier, A posteriori error analysis of Euler-Galerkin approximations to coupled elliptic-parabolic problems", ESAIM: M2AN 43 (2009) 353-375. * J. Delmas, Stratégies de controle d'erreur en calcul de structures industrielles., Thèse de l'Université de Picardie, France, avril 2008 @@ -41,12 +41,12 @@ Estimateurs d'erreurs * O. Bonnin, B. Métivet, G. Nicolas, F. Arnoux-Guisse, L. Léal de Sousa, Adaptive Meshing for N3S Fluid Mechanics Code, "*Computational Fluid Dynamics '94*", ECCOMAS Stuttgart, Allemagne, pp. 201-208, Wiley 1994. Applications -^^^^^^^^^^^^ +============ * S. Meunier, R. Fernandes, Mesh Adaptation for Coupled Hydro-Mechanical Industrial Studies, V International Conference on Adaptive Modeling and Siumulation, "*ADMOS 2011*", D. Aubry, P. Diez, B. Tie and N. Pares (Eds), Paris, pp. 337-338, 2011 * O. Hartmann, O. Bonnin, D. Gasser, An Adaptive Meshing for Turbomachinery Geometries, "*Computational Fluid Dynamics '98*", ECCOMAS Athènes, Grèce, Wiley 1998. 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. diff --git a/doc/fr/glossaire.rst b/doc/fr/glossaire.rst index efbcbeb9..8994bef4 100644 --- a/doc/fr/glossaire.rst +++ b/doc/fr/glossaire.rst @@ -1,7 +1,7 @@ .. _glossaire: Glossaire -========= +######### .. glossary:: :sorted: diff --git a/doc/fr/gui_create_boundary.rst b/doc/fr/gui_create_boundary.rst index a6d4d605..6fdbdda9 100644 --- a/doc/fr/gui_create_boundary.rst +++ b/doc/fr/gui_create_boundary.rst @@ -1,7 +1,7 @@ .. _gui_create_boundary: La frontière -============ +############ .. index:: single: boundary .. index:: single: frontière @@ -82,7 +82,7 @@ Il existe trois types de fronti Un cylindre -""""""""""" +----------- .. index:: single: cylindre Le cylindre est défini par un point de l'axe, son axe et son rayon. L'axe est défini par un vecteur. La norme de ce vecteur n'est pas nécessairement égale à 1 ; de même, son orientation n'a aucune importance. Un nom de frontière est proposé automatiquement : Boun_1, Boun_2, etc. Ce nom peut être modifié. Il ne doit pas avoir déjà été utilisé pour une autre frontière. @@ -91,7 +91,7 @@ Le cylindre est d :align: center Une sphère -"""""""""" +---------- .. index:: single: sphere La sphère est définie par son centre et son rayon. Un nom de frontière est proposé automatiquement : Boun_1, Boun_2, etc. Ce nom peut être modifié. Il ne doit pas avoir déjà été utilisé pour une autre frontière. @@ -102,7 +102,7 @@ La sph .. index:: single: arbre d'étude Un cône -""""""" +------- .. index:: single: cone Un cône est défini de deux manières différentes : le centre, l'axe et l'angle d'ouverture en degré ou par deux points centrés sur l'axe et le rayon associé. Un nom de frontière est proposé automatiquement : Boun_1, Boun_2, etc. Ce nom peut être modifié. Il ne doit pas avoir déjà été utilisé pour une autre frontière. @@ -120,7 +120,7 @@ Cr .. index:: single: arbre d'étude L'arbre d'étude -""""""""""""""" +=============== A l'issue de cette création de frontières, l'arbre d'études a été enrichi. On y trouve toutes les frontières créées, identifiées par leur nom, avec la possibilité de les éditer. .. image:: images/create_boundary_1.png @@ -128,7 +128,7 @@ A l'issue de cette cr Méthodes python correspondantes -""""""""""""""""""""""""""""""" +=============================== Consulter : :ref:`tui_create_boundary` diff --git a/doc/fr/gui_create_case.rst b/doc/fr/gui_create_case.rst index 1390947b..586ba401 100644 --- a/doc/fr/gui_create_case.rst +++ b/doc/fr/gui_create_case.rst @@ -1,7 +1,7 @@ .. _gui_create_case: La création d'un cas -==================== +#################### .. index:: single: cas La définition du cas se fait par la donnée des informations suivantes : @@ -17,11 +17,11 @@ La d Le nom du cas -""""""""""""" +************* Un nom de cas est proposé automatiquement : Case_1, Case_2, etc. Ce nom peut être modifié. Il ne doit pas avoir déjà été utilisé pour un autre cas. Le répertoire -""""""""""""" +************* Le répertoire est celui qui contiendra les fichiers produits par les adaptations successives. Par défaut, rien n'est proposé. Le choix est fait, soit en tapant le nom dans la zone de texte, soit en activant la fonction de recherche. C'est dans ce répertoire que seront exportés les maillages au format MED, dans des fichiers de nom ``maill.xx.med``, où ``xx`` est un numéro d'ordre créé automatiquement. Ces fichiers seront visibles dans l'arbre d'études. .. image:: images/create_case_2.png @@ -31,7 +31,7 @@ Le r .. index:: single: MED Le maillage initial -""""""""""""""""""" +******************* Le maillage initial doit se trouver dans un fichier au format MED. Classiquement, il aura été produit par le logiciel de calcul avec lequel on travaille. Mais il peut également avoir été créé avec le module SMESH et exporté au format MED. Le nom du fichier peut être fourni, soit en tapant le nom dans la zone de texte, soit en activant la fonction de recherche. .. image:: images/create_case_3.png @@ -46,7 +46,7 @@ Le maillage initial doit se trouver dans un fichier au format MED. Classiquement .. index:: single: type de conformité Le type de conformité -""""""""""""""""""""" +********************* Les itérations qui seront calculées pour ce cas devront toutes respecter le même comportement vis-à-vis de la conformité. L'option par défaut, 'conforme', implique que les maillages produits par HOMARD seront conformes au sens des éléments finis. C'est le choix classique de la plupart des logiciels de simulation par éléments finis. @@ -63,7 +63,7 @@ N .. index:: single: frontière Les frontières courbes -"""""""""""""""""""""" +********************** Quand le bord du domaine est courbe, HOMARD sait placer les nouveaux noeuds sur ces frontières pour éviter des singularités artificielles. Cette technique est aussi applicable à une courbure intérieure à un domaine. Deux cas de figure sont présents : @@ -83,7 +83,7 @@ La d .. _options_avancees: Les options avancées -"""""""""""""""""""" +******************** Par défaut, aucune option avancée n'est active. Néanmoins, on peut définir une oprion avancée : @@ -104,7 +104,7 @@ Si le maillage initial comporte des pyramides, il y a arr La poursuite d'un cas -===================== +********************* .. index:: single: poursuite .. index:: single: yacs @@ -141,7 +141,7 @@ Si on souhaite partir d'une it L'arbre d'étude -""""""""""""""" +*************** A l'issue de cette création de cas, l'arbre d'études a été enrichi de ce nouveau cas. On y trouve l'itération initiale, identifiée par le nom du maillage qui a été lu dans le fichier fourni. .. image:: images/create_case_6.png @@ -150,6 +150,6 @@ A l'issue de cette cr Méthodes python correspondantes -""""""""""""""""""""""""""""""" +******************************* Consulter :ref:`tui_create_case` diff --git a/doc/fr/gui_create_hypothese.rst b/doc/fr/gui_create_hypothese.rst index 1fc08f2b..55689453 100644 --- a/doc/fr/gui_create_hypothese.rst +++ b/doc/fr/gui_create_hypothese.rst @@ -1,7 +1,7 @@ .. _gui_create_hypothese: L'hypothèse -=========== +########### .. index:: single: hypothèse L'hypothèse contient toutes les paramètres de pilotage d'une adaptation d'un maillage. Cette opération permet de réaliser l'itération à laquelle elle est attachée. @@ -17,15 +17,15 @@ Il existe trois classes d'hypoth Nom de l'hypothèse -"""""""""""""""""" +****************** Un nom de l'hypothèse est proposé automatiquement : Hypo_1, Hypo_2, etc. Ce nom peut être modifié. Il ne doit pas avoir été utilisé pour une hypothèse précédente. Adaptation uniforme -""""""""""""""""""" +******************* Par défaut on propose un raffinement uniforme. Quand on part d'un maillage qui a déjà été raffiné, l'option de déraffinement supprimera les mailles produites. Adaptation selon un champ -""""""""""""""""""""""""" +************************* .. note:: Pour pouvoir adapter le maillage selon un champ il faut avoir au préalable désigné le fichier med contenant le champ. Cela se fait dans la fenêtre de construction de l'itération (voir :ref:`gui_create_iteration`). Le nom du fichier qui a été sélectionné est affiché sans modification possible ici : @@ -59,7 +59,7 @@ La m Adaptation selon une zone -""""""""""""""""""""""""" +************************* .. index:: single: zone Au démarrage, il faut créer une première zone par activation du bouton "*Nouveau*" (voir :ref:`gui_create_zone`) : @@ -74,7 +74,7 @@ Lorsque des zones ont d Filtrage par les groupes -"""""""""""""""""""""""" +************************ .. index:: single: groupe On peut restreindre l'application de l'hypothèse d'adaptation à des groupes. Ainsi les mailles n'appartenant pas à ces groupes ne seront pas modidiées, sauf par contamination ultérieure du raffinement pour assurer la conformité du maillage final. @@ -90,7 +90,7 @@ La liste des groupes de mailles pr Interpolation de champs -""""""""""""""""""""""" +*********************** .. index:: single: interpolation .. note:: @@ -108,7 +108,7 @@ Si on veut choisir les champs Les options avancées -"""""""""""""""""""" +******************** Si la case "Options avancées" n'est pas cochée, aucune contrainte supplémentaire n'est définie. Si la case est cochée, on définira les options avancées. @@ -124,7 +124,7 @@ Le dernier choix porte sur une sortie suppl .. index:: single: arbre d'étude L'arbre d'étude -""""""""""""""" +*************** .. index:: single: arbre d'étude L'arbre d'études contient les hypothèses créées et les itérations qui les utilisent. La description des zones qui leur sont éventuellement attachées est présente. @@ -135,5 +135,5 @@ L'arbre d' Méthodes python correspondantes -""""""""""""""""""""""""""""""" +******************************* Consulter :ref:`tui_create_hypothese` diff --git a/doc/fr/gui_create_iteration.rst b/doc/fr/gui_create_iteration.rst index 0b662fd0..ce4d4985 100644 --- a/doc/fr/gui_create_iteration.rst +++ b/doc/fr/gui_create_iteration.rst @@ -1,7 +1,7 @@ .. _gui_create_iteration: L'itération -=========== +########### .. index:: single: itération La définition d'une itération se fait par la donnée des informations suivantes : @@ -15,24 +15,24 @@ La d :align: center Le nom de l'itération -""""""""""""""""""""" +********************* Un nom de cas est proposé automatiquement : Iter_1, Iter_2, etc. Ce nom peut être modifié. Il ne doit pas avoir été utilisé pour une itération précédente. L'itération précédente -"""""""""""""""""""""" +********************** L'itération précédente est choisie dans l'arbre d'étude. Le nom du maillage correspondant sera affiché. .. index:: single: maillage;résultat Le nom du maillage résultat -""""""""""""""""""""""""""" +*************************** L'itération en cours de création produira un maillage. Ce maillage sera connu sous un nom. Ce nom est fourni en le tapant dans la zone de texte. Par défaut, on propose un nom identique à celui de l'itération précédente. .. index:: single: champ .. index:: single: MED Le champ -"""""""" +******** Pour créer ou utiliser une hypothèse d'adaptation basée sur un champ exprimé sur le maillage, on doit fournir le fichier où se trouve le champ. C'est également le cas si on veut interpoler des champs du maillage n au maillage n+1. Ce fichier est au format MED. Classiquement, il aura été produit par le logiciel de calcul avec lequel on travaille. Le nom du fichier peut être fourni, soit en tapant le nom dans la zone de texte, soit en activant la fonction de recherche. @@ -47,7 +47,7 @@ Dans le cas o .. index:: single: hypothèse L'hypothèse utilisée -"""""""""""""""""""" +******************** L'itération en cours pilotera l'adaptation par HOMARD selon un scénario défini dans une hypothèse. Celle-ci est choisie dans la liste des hypothèses existantes. Au démarrage, il faut créer une première hypothèse par activation du bouton "*Nouveau*" (voir :ref:`gui_create_hypothese`) : @@ -67,7 +67,7 @@ Ensuite, si une hypoth .. index:: single: arbre d'étude L'arbre d'étude -""""""""""""""" +*************** A l'issue de cette création d'itération, l'arbre d'études a été enrichi. On y trouve l'itération initiale, identifiée par le nom du maillage qui a été lu dans le fichier fourni, l'itération courante, identifiée par son nom. On trouve aussi l'hypothèse qui lui est attachée. L'icône en regard de l'itération permet de différencier les itérations calculées ou non. .. image:: images/create_iteration_6.png @@ -79,5 +79,5 @@ Quand plusieurs it :align: center Méthodes python correspondantes -""""""""""""""""""""""""""""""" +******************************* Consulter :ref:`tui_create_iteration` diff --git a/doc/fr/gui_create_zone.rst b/doc/fr/gui_create_zone.rst index b57e4725..699c957a 100644 --- a/doc/fr/gui_create_zone.rst +++ b/doc/fr/gui_create_zone.rst @@ -1,7 +1,7 @@ .. _gui_create_zone: La zone -======= +####### .. index:: single: zone .. index:: single: 2D @@ -28,11 +28,11 @@ conformit Les valeurs proposées par défaut pour les dimensions des zones tiennent compte de la géométrie du maillage. Nom de la zone -"""""""""""""" +************** Un nom de zone est proposé automatiquement : Zone_1, Zone_2, etc. Ce nom peut être modifié. Il ne doit pas avoir été déjà utilisé pour une autre zone. Un parallélépipède -"""""""""""""""""" +****************** .. index:: single: boite Le parallélépipède est obligatoirement parallèle aux axes de coordonnées. Il est défini par ses extrêmes dans chaque direction. @@ -41,7 +41,7 @@ Le parall :align: center Un cylindre -""""""""""" +*********** .. index:: single: cylindre Le cylindre est défini par son axe, un point de base positionné sur l'axe, sa hauteur et son rayon. L'axe est défini par un vecteur qui doit être correctement orienté : on retiendra le volume partant de la base dans la direction du vecteur jusqu'à la hauteur retenue. La norme de ce vecteur n'est pas nécessairement égale à 1. @@ -50,7 +50,7 @@ Le cylindre est d :align: center Un tuyau -"""""""" +******** .. index:: single: tuyau Le cylindre est défini par son axe, un point de base positionné sur l'axe, sa hauteur et ses rayons interne et externe. L'axe est défini par un vecteur qui doit être correctement orienté : on retiendra le volume partant de la base dans la direction du vecteur jusqu'à la hauteur retenue. La norme de ce vecteur n'est pas nécessairement égale à 1. @@ -59,7 +59,7 @@ Le cylindre est d :align: center Une sphère -"""""""""" +********** .. index:: single: sphere La sphère est définie par son centre et son rayon. @@ -68,7 +68,7 @@ La sph :align: center Un rectangle -"""""""""""" +************ .. index:: single: rectangle Le rectangle est obligatoirement parallèle aux axes de coordonnées. Il est défini par ses extrêmes dans chacune des directions valides. La coordonnée constante est affichée pour information, mais n'est pas modifiable. @@ -77,7 +77,7 @@ Le rectangle est obligatoirement parall :align: center Un disque -""""""""" +********* .. index:: single: disque Le disque est obligatoirement dans le plan des axes de coordonnées. Il est défini par son centre et son rayon. La coordonnée constante est affichée pour information, mais n'est pas modifiable. @@ -86,7 +86,7 @@ Le disque est obligatoirement dans le plan des axes de coordonn :align: center Un disque avec trou -""""""""""""""""""" +******************* .. index:: single: disque avec trou Le disque avec trou est obligatoirement dans le plan des axes de coordonnées. Il est défini par son centre et ses rayons externe et interne. La coordonnée constante est affichée pour information, mais n'est pas modifiable. @@ -97,5 +97,5 @@ Le disque avec trou est obligatoirement dans le plan des axes de coordonn Méthodes python correspondantes -""""""""""""""""""""""""""""""" +******************************* Consulter :ref:`tui_create_zone` diff --git a/doc/fr/gui_homard.rst b/doc/fr/gui_homard.rst index 1c95652d..71ede8a0 100644 --- a/doc/fr/gui_homard.rst +++ b/doc/fr/gui_homard.rst @@ -1,12 +1,12 @@ .. _gui_homard: Le calcul -========= +######### .. index:: single: itération .. index:: single: calcul Lancer une adaptation -""""""""""""""""""""" +********************* Lancer une adaptation s'obtient en sélectionnant l'itération à calculer. Elle est repérée par une icone "en attente". On choisit ensuite "*Calculer*" dans le menu HOMARD ou à la souris. .. image:: images/lancement_1.png @@ -15,7 +15,7 @@ Lancer une adaptation s'obtient en s .. index:: single: arbre d'étude L'arbre d'étude -""""""""""""""" +*************** A l'issue de ce calcul, l'arbre d'études a été enrichi. L'icone devant l'itération est validée. Sous l'itération, on trouve la référence aux fichiers de résultats créés, identifiés par leur nom dans le répertoire *rep* qui a été défini à la création du cas : @@ -32,7 +32,7 @@ Le fichier maill.(n+1).med est celui qui contient le maillage produit au format :align: center Consulter le résultat d'une adaptation -"""""""""""""""""""""""""""""""""""""" +************************************** Les deux fichiers de texte, Liste.n.vers.(n+1).log et apad.n.vers.(n+1).bilan, sont visibles en les sélectionnant. On choisit ensuite "*Afficher le fichier*" dans le menu HOMARD ou à la souris. .. image:: images/lancement_3.png @@ -45,6 +45,6 @@ Les deux fichiers de texte, Liste.n.vers.(n+1).log et apad.n.vers.(n+1).bilan, s "*HOMARD_EXE_PRIVATE*" définit le nom de l'exécutable dans ce répertoire, si ce nom est différent de "*homard*". Méthodes python correspondantes -""""""""""""""""""""""""""""""" +******************************* Consulter :ref:`tui_create_iteration` diff --git a/doc/fr/gui_mesh_info.rst b/doc/fr/gui_mesh_info.rst index 6ede3bcd..693a7a2f 100644 --- a/doc/fr/gui_mesh_info.rst +++ b/doc/fr/gui_mesh_info.rst @@ -1,7 +1,7 @@ .. _gui_mesh_info: Analyse de maillage -=================== +################### .. index:: single: analyse .. index:: single: information @@ -14,7 +14,7 @@ Si le maillage fait partie d'un cas enregistr Maillage à importer -""""""""""""""""""" +******************* La sélection de la fonction d'analyse est faite par le menu de la barre supérieure de la fenêtre : .. image:: images/mesh_info_1.png @@ -26,11 +26,11 @@ La fen :align: center Le nom du cas -------------- +============= Un nom de cas est proposé automatiquement : Case_1, Case_2, etc. Ce nom peut être modifié. Il ne doit pas avoir déjà été utilisé pour un autre cas. Le répertoire -------------- +============= Le répertoire est celui qui contiendra les fichiers produits par l'information. Par défaut, rien n'est proposé. Le choix est fait, soit en tapant le nom dans la zone de texte, soit en activant la fonction de recherche. C'est dans ce répertoire que seront exportés les fichiers d'information de nom ``Liste.log`` et ``info_av.00.bilan``. Ces fichiers seront visibles dans l'arbre d'études. .. image:: images/create_case_2.png @@ -40,7 +40,7 @@ Le r .. index:: single: MED Le maillage à analyser ----------------------- +====================== Le maillage à analyser doit se trouver dans un fichier au format MED. Le nom du fichier peut être fourni, soit en tapant le nom dans la zone de texte, soit en activant la fonction de recherche. .. image:: images/create_case_3.png @@ -53,7 +53,7 @@ Le maillage Le maillage ne doit pas être lui-même le produit d'une adaptation de maillage par HOMARD, sous peine de perdre l'analyse des différents niveaux de raffinement/déraffinement Options d'analyse ------------------ +================= L'analyse est faite selon les options cochées. - qualité des mailles - diamètre des mailles @@ -64,7 +64,7 @@ L'analyse est faite selon les options coch Le résultat de l'analyse est contenu dans le fichier ``info_av.00.bilan`` ; ce fichier est à consulter en l'affichant après sa désignation avec "*Afficher le fichier*" dans le menu HOMARD ou à la souris. L'arbre d'étude ---------------- +=============== A l'issue de cette demande d'information, l'arbre d'études a été enrichi de ce nouveau cas. On y trouve l'itération initiale, identifiée par le nom du maillage qui a été lu dans le fichier fourni, et les deux fichiers d'information de nom ``Liste.log`` et ``info_av.00.bilan``. .. image:: images/mesh_info_3.png @@ -72,7 +72,7 @@ A l'issue de cette demande d'information, l'arbre d' Itération calculée -"""""""""""""""""" +****************** Pour analyser le maillage produit par une itération d'adaptation de maillage, on désigne à la souris cette itération dans l'arbre d'études et on lance l'analyse. On retrouve le menu similaire au cas initial : @@ -87,6 +87,6 @@ Comme pour un maillage import Méthodes python correspondantes -""""""""""""""""""""""""""""""" +******************************* Consulter :ref:`tui_create_case` et :ref:`tui_create_iteration` diff --git a/doc/fr/images/dec_hex.gif b/doc/fr/images/dec_hex.gif new file mode 100644 index 0000000000000000000000000000000000000000..ce3083dcbfecff33c91c32e8fb4301bb078b0689 GIT binary patch literal 45865 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 Vz6fKCGR{b2jW*thqk;th06U^bXCnXr literal 0 HcmV?d00001 diff --git a/doc/fr/images/dec_tetr_1.gif b/doc/fr/images/dec_tetr_1.gif new file mode 100644 index 0000000000000000000000000000000000000000..c88833464c90f38d96f0912ab28f673d3bde6623 GIT binary patch literal 1842 zcmV-22hI3LNk%w1VMqaU0Pz3-|Ns900My+G1^@s6EC2ui07wCI009F3gpa8ku@9r1 zwAzca-W;?JhN9LuG^=fq7fuKDk(2dX$g%=ozLbp zS~FO$+^+2Np$@$}a9B)EtC5bU*1gV!&*-@Q{&3T`c$R+1*C&{EM)zhoC{j2UnCOTF zgIM<%vN$$LnMni(=hCTp(J6U&32N%+Gm3dSVW>*V8jI>F(I`uc@Ctj&%a&StV9WdY znOEG4+zP0>n=Hvp3YI~mtU1~qagHAQzAkR6 zYR|4eF9^@SiqgMw#sK!S^U9z+JP8RxSa@(yLthRF0fTqVV8kx}7%?*OxW=Q#eHAy7 zVK(v}!)+;5n(TwJZ?mvFl5MX$F>dIcrjyTmnT3Ttl%>M!7hu~ySt(C=EII90Uk{n zf@s*URd3a&dGBgDKoP~J@cH%cfIs-<*1g+uh6bXCM`#Y%x$P0gF{ehI+ydLV%$);| z9sD(NyuFW`!=9b91?UEq0$Ue#aWgU=9T9^@GMdI?@ln7YaQwk~d$fT3s z1VEaUnN_JIh6^C6%u-xBq0^d9bq61s);u8Rj&zpkBTsq?d6Sza)d(JKMUGOZooC{i zW|IVZ`4OY;nBbk1c)C_(nONQzmYaT};^-q`L@KG0pA`BXqKzUoRi}wUxldqs4(1&l zq~fRuYN_(cDXzVoL8_!w&T6J?rt*l`tq5)Ej14XSPDa>;w5^BerFoJiB(h&vJC3ZT zp2!}URu&2@vE`JdYG%5kFhIIlB@k|$CJuY$cem+cZMm1(yFj}7?yG}u@R|i5b1X=E z)J#lDwA8)|FU)Ym4(ltRztD7ZvnzobdfL zD7r}dnZS2PmiN|*=h^7BUP}%2frBgUYBm4=Nk%w-xM>xGUOmQ5&*X_)ZfLWV!xBl^UxFY?exfF?rq)7T$;W1>NGzutE49huXO%eT{4dU-i6;B?04?{ z_YUE#BmHTiLBN`lt$@e0{c*~D@AJ&Ckd%c1o=8x_lL~!a*9MPWkbw<^p99U2K*ZUO zf>lb>bvm~-(A|!K+u0Ucb_NZK)u~SCG0Y!YCNl(vZgj$Wq2hQ|s@nZ$CK6f{_o&pb z{vC^lQ9DaLGL$3|4)H!Q3W5TW2p1*)#^ElMY2u_HMY$2yjEYs<;BxY(#V!8DE{FPJ zRD4yl_nIIiKHv)*rjV7GLM1OoyexR!VrY2Fx2Uo@07DZ4xXnCgd8I(@y3)C zNXbtTERNGg`6cW)2T8Nh%N}3U%aDaqmY7;&d~zg5T(PoyD(o6HnMuUnoM=nT~ufI-oOM=0oFd{I%>Pz`f*;n9Aywgiuc z$aNuYC!siLBeP+xnrB27c4+Fpbv{x@!Z9DJ`lr%D-m9fu(iS7R)xpMDL{l=sDK;Z0 zCMcq5bNe)xqJ~OTd^#Yiz&Z^=<&!BoX7!GM3Zp5N>JQsMrK-&Afmzvv)^&395_Np_sSBwGVGTKv#WJ={ zJVPus`bmt*5*4(cysR(DQOeDp#1?xHZBc(wOVvsNoJV{~FX!M|)!ue(Z^=RrWQ(vW g7?z(xFfDLv`rD}u_qbyVlPEHr%3M))fdD7~J25(pp8x;= literal 0 HcmV?d00001 diff --git a/doc/fr/images/dec_tetr_2.gif b/doc/fr/images/dec_tetr_2.gif new file mode 100644 index 0000000000000000000000000000000000000000..1a4d2474460927efcf6c24e147105daba30ba18c GIT binary patch literal 1406 zcmV-^1%diUNk%w1VaWiW0Pz3-|Ns900My+G1^@s6EC2ui0LcKK009F3gpaAq?H0nD zwAzca-n@e-dE!Wx=2?Lt%C_zct1C>`_RXl@jQ9TUkwJLCqVbrB>_SVV^XXIW5IU&! zdYVZORjl`$*>0&su=$*1mWN}s`%7$-)Y^DrNK^%>S>pNk64cClp!rg5}t^H_TgC5DNz94WQK;0vs$=(hx z@NST=f0Zvz%a^)-{PyMh!Ve%OZM^gqRPfLXzjq23G5luG;lTv|5wT3vS8))%ChqX{ zbGH%UyNDs}pp!x{<%EtBHO{%`8u_TfR$|2{FAP2c*)qn-Pku7KRn+$4mgYdo`eE7)hlmAO9$+&vFWgp-FpZ|t_0M1q)X8pA{Aa4n- zQs6i*JO>{aWJTv74%qDn!6+J5SkrO{Ywp=+Ww)T9 zL|22dStwhFA{v)ia+2BThmGBtU8E3AI;WnS%GIPQmRhwap`JQAhYQ_}b?TlQ04GzZ zS~AwEs~U`!lB}Z2Rvf34+E$RRySAC0ufKjIEJ>*U7MrE5xOq7xDu&9}tg{d$J1nn= z8EdVobZ}N{w^z89Ww_!#LGG>Go;%4g7@EtjAI($;Z@h(kvu3^a#=yy<`tHkuRMmbu zFu(-L*JY^&uNP&(1TXvoE()9EFvPJeRWV8vTdXXzC9W$%wAfTNu^J$E;AO@xk*qQg zC!-u_H1sfcWuz*99Op7=C0Mh@x+VHDVHxDc!x}-Oj8sN9W04op{cap1RTQ7{m6b>@ z{V_;@{L9BcUh)Zb)XuOKHW1p~_iEWU_Vex0=@2Dc!ESrNQXX7O^UWS^s=am^equcj zCx@svcbRQH&3D8hrcGDkCUCb|;Ux&6?gf(n(+w(^fb)B{fSbE8ol$qAOIvT3V=k>< zrw=n&ZmT1my6TQYI`e$5gB@Gbw-ZPWSi3WR@zB46h~=}th1bsLP{=UvVzXzR-PNDd zz`XHf6JlC@%EP6%q|^5ZU|HL9zuZ)c@O9w$%Xbmf^PmqnqWbHv@X_}+^j4$%qzCH$ z`#fW+G5fvkJ^5LX$P{!y9AJwElQ|%?I5q+$iEM%5^3j?40zt!NX=jF^Uyzg<|7RXi5RlN9Fadng5opA1VbuUTJehNutg6oMmf!Baf^(g(Jquo#!K1bQEBuR zH1hC8D^@Rfh-jk%!&t{u*)a;G7(*QQIH5*-35|f{-Iugf$RY?~j)~L@^AgxdP2e$- M^P?mV34j6sJJxo$8UO$Q literal 0 HcmV?d00001 diff --git a/doc/fr/images/dec_tetr_3.gif b/doc/fr/images/dec_tetr_3.gif new file mode 100644 index 0000000000000000000000000000000000000000..e6471ee9031d182d3c9d5cdc3f071a0a2f8d5336 GIT binary patch literal 1079 zcmV-71jzeGNk%w1Ve|k>0Pz3-|NsBp2nGOv5dZ)HEC2ui0Q3M#009F3gpaAq?GWOd zwAzca-ZKUchLGop=82{%LYC`0wk=H8wkXRtm`nN&336(z>P7IEQ3iZR^H znp5rBy^VuPioCNB;>(dJ$he#qGn2n^CLj6(Ni!cBj|yMr3}(*YN1Q=-H2ZPkT*7%G z31y>t!eY~DL!rW4kkJy>EpjA!oT+tdF{@>Frc0?&Akv~rsd$>JHXKN=N$+y}E3in< zvP<{o-B-2AHmzp6{cQVcW){ER1`H7LxFcZ(Qzbi2tGI4f$$KoDzFbi3RRm#u8TE{5 z@Iid1YomU_ICem|uJLwAN}9CF6}F2TKaTu1$w$BsMSb1K4yyuXDn>mWdc*?^lr3|_=DMO8#NGD~OHioE*(RrEZre+dq0HmBih9sLVUI|mC zP5!x4jgU?!YhsB7$}66;${FD#gKj1!JhdKLsgjHTc4#VKw)YB* z*+2Z6E6zIxTl(x6H;j2OwUL6$ZLlHkS#g|YE`~8;pf*hGwe4<-;3pt6BO1fw!g$ca z5vxoMG8(&^@;v}61M$n{Qj>9}7;l52%R09T^k_nR8luM13_aIVO0Tx%oJ}sxG}0*I zi*wCVOzh*)Ra*#&sx)hTl3?lu>h;$?c2Ny%P$Q-XyKk#qVv!-G?eV^D`b@Wcy6rtO x%InVEciwgq4uw8c7jC#9i(^s8&5W1*cr0@;(>P#IwJ(206SL`8Q1^- literal 0 HcmV?d00001 diff --git a/doc/fr/images/dec_tetr_4.gif b/doc/fr/images/dec_tetr_4.gif new file mode 100644 index 0000000000000000000000000000000000000000..b41bbea47186271a7cac27060b304235ed659eff GIT binary patch literal 1450 zcmV;b1y%Y-Nk%w1VdVgH0Pz3-|NsBp2nGOv5dZ)HEC2ui0ObI5009F3gpaAq?GK}z zDp-oMj(7VHh9Y2DLN})A8K~|HQ{`O7HpaI1&VzIfVD*Lzfe}SaDh)rN;iy~oj5(?G z)>6AOQ*+i+`Nd|f#-KswgK2SsBx$xm^f4j z^3~`lC%|+!N$CRl2Zg8^u~zX3DzfJyNm}agwUD`raSF5c3Y$PXYD*@oma3|IAgbjA z48iMVN%C79luQi9%<()VybLT#;%d!2P3>HJo$LS}jk4YO9o--dM_wH0{(&7|I!{V( zYmT4Ms(ilMuNyRVfduvHWiyI0>4=PZQdg!K@=|uxbrWY!Sha?3X=yZ3%7YnKjyjh!=t_|? zl5X7gQ^C@#u$IQM3KOb3sU)e2b((8JlwW4SzM-lzqgzK@6Lj=i7nE0jYUk1&DzI(Y zy$vPQ{JVkF-os-EXJ9-?CW^Lx#lX#(7g*+}EiPB?0yl17w07ONh8?IU`}a^j(5d&?RL>_g0nxg)&rK^CER&tTRr~fC0?GyF%H)NT?KRIEUo+d zT@aOH?tJ|;Nt|?i_NU^*8wZd6*l0zo;cFwWRsCAb_6^7XDdC-e^aY6DR{@|ALUH=g zvtB#rVRGPmQ4!eSZSaiHTS<>q$i@%%1y~yeuo2-zO`%~WpbeaS2;zK|+()7b5GF{W zOW?G&qJtUwcMfGSc9u|bs~L8iL#D{50dRjyx9k6-rxi$VM<0 z_S8}c0x^grkIiUjO;G)nc8@}8iiydWa(O7`1y~vg!Io=Ucv?wDO^2pF4$?US5K3mr zicegYcV=3Aw5T1Qd=eUHcQ3r6=$iFib-Ft)7W^(_ z4|e&w$L2o$`U|hM)W)jSlMjH~Aq__k`p+~JZ#ZfnJkZN9vKLt*R-uCU@T*pbwP^lva-}mY=<ytIn^! z_3l5N71pK8M#^&^vb-m`{f$p+(n4V2>gT}kIH-9DYm@;+1H3s!Zhel*;7a1L;ru#QEFi3qg~PF7@Sdf& z!CfVF7JT8Yh&DtC#mli{MIt3nSJRzUNs5a8TLyf(oVi}%Tw-zwXk6#K}Ak8-eF}|@c zbYx_Q2+2RKdCiiOlH?en_(e{tPL%$z)h0>V4o?;?2d6|O`$%aCX&OkD<|U5j%ARSXw(?wU8+_CHj@Y@#3(izI+(U>o{f@m@@)=?l4?w7u z5_2}E*DjT5;C{tk>y$hOm!Vp8dVS?;8C5t^?B1&Fv^fmr$G1Y3r%)%@LRe@Ri0IL{ z$QbE3;WjC`M;R4yiK+Q$+3EQSSeY3mN?Dk?a7aqGdfMUonjyQzLRLbtETM}ijH~l(*V$}(-FIv&MBNq5-3^{3I<92SlbUVeeW$*ih%UprjtWl< zdLLiUUd(ULMjxX!?Q#hWSEk^(gVG4fC;`JAUk#8X3D0R%V2ZIkRTWkWNvCV7Y3*BO3mOnQXd(M8PGbWW>Qq zmf^#e1-S;ZI**&rcUfZ`6PNJr)DkAFck3CIp4Cs^KnmZR7)c5JzQiX2s zb?o|0=s|$Z9=AyR@^zwjO8*L&cGRMxh|^8){3v~aV$n_i%D-16?E!_9QUd))TwAsr zbB$f{n8TY_vFOFtLzhHo+6@E3<=s>7$Tz`xMr^1cHox$fV29tmz`|?>g2Dl1tG!oG zijr6qV`@hr28#(U#wOZB=iQK7k0ty_6$q?Q_uY6&dSK&=N*?q;ZhIifRgO_Eh})5tl_I@?vLYrtO&tmcO}> z(`<$!Q=*^yEV-9+SPk+Pi?luWRh4xsagQXfStnLdb#7Z%E8+U95z#x-@aRmgR06R97zqtSa literal 0 HcmV?d00001 diff --git a/doc/fr/images/dec_tetr_6.gif b/doc/fr/images/dec_tetr_6.gif new file mode 100644 index 0000000000000000000000000000000000000000..2a4d853305f54440edd7975f498cd37b39c98496 GIT binary patch literal 1132 zcmV-y1e5zmNk%w1VRQg=0P_F<|Ns900My+G1^|E&0000000000000000000000000 z00000000000000000000EC2ui0CWI!00RX75XecZy&we4yZ>M)j+Lg7XsWKHX|ixE zkM29)_*`dp?*Ac;;KU;Wk4TEJ=Sn(%Cc$tsX+E#Alhj!4VZW`-mRj4xM^;*wIH{@p%$&YDaFQpipj$w%+05|ah<-# zlF-qw-J{#Pk%}J|~>FiyuvifmL^q9z6MAz_S2*|iIe1A0RhN8fDq zqkJ#e7++JmaZ{F&0Rpoki$s#<)nqvShMb4`@#Kt^WRdpGcl>Ffq>Cbk7^R6G21e## z7~+H?VSnM1+Lj*-5RDcs&V?I4ctyqFK}67$W@V>YInG04i5AfgUMeP+Oc`)8ZR#ADvWT__RNI=&`M#Kc7C_a zS~`yCA7R6_WuaQUk=GvxoeiO4DE8bFaK;+(A?S4O0{ur`!qG1Y0;9mo;8g%eZAhqHEM}|{bc}4 z4eRWmP~)L=F4=x-HdvlMV%yv=%VRgaczbA_x*=(X%iD=CX&OkD<|U5j%ARSXw(?v#!Up5?&Leg#>Ir8W!R>Jf4wt5lQJ0J{r=iCa znUPYrkuI}q!9*DlGkX!S*%dAsj4@aA)haG_B&py$HOOJ0QYAY*b;NrRs)#0 z0>y}!_6S)bNtnZtcL^fJ*ob23S(Ok)SM~hu95XMNTGe?d{S$XE|y?53m=IFMjMMf&zFSQrc9w}$ol(fB8*p+jN+TrghLSg{}xk^XK~ zw3tz%DG4W4ejvhZbg9D=ggWJ@u8UfTl*4kJf2W<8Bs z1`<$WTdRtVAhYHVSln4FI8Zm}YrU(z0v>$w;M4~V*jk%VxJ%r%`H_sSd^zvr>8@ip zMqOC!$uJk{z8anZRCDIDi>5{5RZiSlYbS;Op)ov&=i8+JpTHVb`0(dm133t#NnhdB zXPP@?I7u6j<1H|JA0NJQadS+)J2z;YfJ$p~&DhoIuu} zjHaO&;!ClWSYu)mmJ<_@%B%#Sb2z3LWE>py*vyX#O*GVv1hLd(hbl(d){)+53D$^V zcxmL6L++%OmsPITppJk2ccu+o9>UyfT)KHrP=T3t&70!UVN-vTfN3QY5K@^Xl4QcA z4Px?X=Ru4m1vHtHj7CJwDppC_RindcszpWa)#s=XgLZ={UD6PCpcRC?Sm1t}J{kaP zbJF*!Y(>n9TBwLJIE}9D#1)ON^GsEYuuOT^kg?l1ctnY^Uj2iJv(6l2h_rQGCWf`B p4yv8Ds1lcLae#h%n`(xVD{2rajEgRK>$2OfG~UMRAS(o*06UHcpOpXr literal 0 HcmV?d00001 diff --git a/doc/fr/images/dec_tria_1.gif b/doc/fr/images/dec_tria_1.gif new file mode 100644 index 0000000000000000000000000000000000000000..e09ed1f35a42a7f0f0e394c9d93e238b953da8e1 GIT binary patch literal 1089 zcmV-H1it%6Nk%w1VUGb=0Pz3-|Ns900My+G1^@s6EC2ui0FMD!009F3gpaAq?H0nD zwAzca-n@Ghed0)#rW1wd%C_!HrV>oo_9d(L&i8(koBf8wkxEufDwmvNiV2N^bV#Z7 zT6{vZ*e;KI0DH&ek{ECu3PhU3sZo_d zzet5z$4bg@S8-LvYND&rufN19R0`IhCbSjF{@9w94H>v)*@iV65-$$DQ24U53)b&m zx1IpApc^-)9K@dl$25G?@n6VSBm*U!xF6*fmTzo!!MN6d0Xsf(?hFIToAhDZpm>j@ZPK@u+{AUu-6!00a?lowJAV#6y7cMPaYhh;J-hbp+`D`K z4nDm2?6TpgUPY6-`t|JF=S~`6y!`p}>w7OBZ+VULHl(Bf&pru&`~gG@eu@;gf(qI> zg54?lnem_v1`_hxX+kVW2!IX(2TO#ddFaR)8ul?_Gi@m|;Xs{Wct?YmfcRKO1O9;u zi*S^f4vc4U*p!Zo#bP5FIKKF!IVo}#RFGb{I2MgODsp5uUk!N$m9jhuTSPvV0*;bV zSh*3GD$W>%I$kotgq58GN`tWcJMTP?bb`Z?|c?Q)Bjx=y~LSGMGqtDKng_XR4MQT9n%_6!G0VJDHanu`!UF@iQHqe zsXaPz#l2ysv7;`ZR)(x8gX#^-8Q*Miu+PeD?v4*T{3FoC{zI>Amklbq`Hdeis9$-gJHlTxGc(%$89*t|=t17~s zo16qec;SX0j(FmVFV1-5jz6wA!jMl+dF7TGUyga^ns3f|=bk?<`RAgKPI~ElpN@J3 H1fT#rZ)Y2w literal 0 HcmV?d00001 diff --git a/doc/fr/images/dec_tria_2.gif b/doc/fr/images/dec_tria_2.gif new file mode 100644 index 0000000000000000000000000000000000000000..3530fc6519be4f5902ef05bbda6165ef35842737 GIT binary patch literal 991 zcmV<510eiINk%w1VUGb=0Pz3-|Ns900My+G1^@s6EC2ui0FMD!009F3gpaAq?H0nD zwAzca-n@Ghed0)#rW1wd%C_!HrV>oo_9d(L&i8(koBf8wkxEufDwmvNiV2N^bV#Z7 zT6{vZ*e;KI0DH&ek{ECu3PhU3sZo_d zzet5z$4bg@S8-LvYND&rufN19R0`IhCbSjF{@9w94H>v)*@iV65-$$DQ24U53)b&m zx1IpApc^-)9K@dl$25G?@n6VSBm*U!xF6*fmTzo!!MN6d0Xsf(?hFIToAhDZpm>j@ZPK@u+{AUu-6!00a?lowJAV#6y7cMPaV|f7ojGtXvL{gg z4nDm2+(`onI4=Ns_7$q{ZXYCll?3$kAGH@ptGlD(>j5n$$BY1*v)$#{-NSt=Ag(8 zO)t&`A}8z6m=RhgatC6L%CShGVK>%B#e!sKM}?`WKU2`_ +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 + +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. + +.. image:: ../images/dec_quad_1.png + :align: center + :alt: Découpage standard d'un quadrangle + :width: 399 + +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/dec_tetr_1.gif + :align: center + :alt: Découpage standard d'un tétraèdre - 1 + :width: 328 + :height: 115 + +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/dec_tetr_2.gif + :align: center + :alt: Découpage standard d'un tétraèdre - 2 + :width: 201 + :height: 159 + +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/dec_tetr_3.gif + :align: center + :alt: Découpage standard d'un tétraèdre - 3 + :width: 244 + :height: 74 + +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/dec_tetr_4.gif + :align: center + :alt: Découpage standard d'un tétraèdre - 4 + :width: 229 + :height: 116 + +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/dec_hex.png + :align: center + :alt: Découpage standard d'un hexaèdre + :scale: 70 + +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/dec.pent.png + :align: center + :alt: Découpage standard d'un pentaèdre + :scale: 20 + +Le découpage de mise en conformité +================================== + +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. + +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 + +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/dec_quad_2.png + :align: center + :alt: Découpage de conformité d'un quadrangle + :width: 399 + +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/dec_tetr_5.gif + :align: center + :alt: Découpage de conformité d'un tétraèdre - 1 + :width: 116 + :height: 116 + +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. + +.. image:: ../images/dec_tetr_6.gif + :align: center + :alt: Découpage de conformité d'un tétraèdre - 2 + :width: 116 + :height: 116 + +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_6.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. + +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/hexaface.png + :align: center + :alt: Découpage de conformité d'un hexaèdre - 1 face + :width: 384 + :height: 101 + +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/hexa1arete.png + :align: center + :alt: Découpage de conformité d'un hexaèdre - 1 arête + :width: 384 + :height: 101 + +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/hexa2aretes.png + :align: center + :alt: Découpage de conformité d'un hexaèdre - 2 arêtes + :width: 384 + :height: 101 + +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 + + + +L'algorithme +************ +.. index:: single: algorithme + +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. + +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 dans :ref:`applications` des exemples d'utilisations de l'adaptation de maillage. diff --git a/doc/images/dec.pent.png b/doc/images/dec.pent.png new file mode 100644 index 0000000000000000000000000000000000000000..3a90c7d8d77203ce4040d07d24709bba447675f0 GIT binary patch literal 52178 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 L6W#xZ_cs3t$BHIz literal 0 HcmV?d00001 diff --git a/doc/images/dec_hex.gif b/doc/images/dec_hex.gif new file mode 100644 index 0000000000000000000000000000000000000000..ce3083dcbfecff33c91c32e8fb4301bb078b0689 GIT binary patch literal 45865 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 Vz6fKCGR{b2jW*thqk;th06U^bXCnXr literal 0 HcmV?d00001 diff --git a/doc/images/dec_hex.png b/doc/images/dec_hex.png new file mode 100644 index 0000000000000000000000000000000000000000..26a7e26a780d56dd8c0a7963c95513ed4a17164d GIT binary patch literal 9527 zcmeHs`8(9__y2Q-$z)OnjVKvoOU9rQjk1m{dn(2{yogG&j6InqWZx?;l*QInVn%?sLw4?)yIHaYvb%=<#q1a{~at zW1vsC1OOaF0D!>YP*9RduVjG#_Iv6ReE{HqG5ZhlrTvWwC=?;&AI0Z$cySx7afT*7VLGyAz#=@X^(D)0!2*=;&OELrYSe|Dm zd>Ey=JWw%+&XtvF%L`9F`xRdPd5ABscVl}HoPhp(uk9`b07&PGdY9(bkM1gNzb{;@ zuS5etqPhOv;iZHLSw=h-4gd|W9R7$STf`A#Ic9wVasYaI<+nq6j6^YdvH9>>UjzWZ zff?D@_W6CCj1qFzy!`S{e|#m3;&Mf|ZtdSsT*RAc;n>JzSJw7dIiPUdgY(WWH*$(s z6IG?lB`~WJ1~hKz*0pdIl*DSFK8ISTY`nAqtQehetKYWdl$s{$46zSXESC_1$Y!Ot ze?bsE?Z&yEf_kFPCY-(Jp){9c#UtLIcRxJyfYhCMV&Wx>&~^B-Q(qX1EsrMtoz+Tg zK<2nJV+J8kPH}Cbw#yKQ3OpbhZ)Rg)wh3o?)k_?Jh_ryD+oKg^DnKH%iCUa2Q+zUFR+Pw*=jOHLmL);RG(BoWf;il`lzlq9UF5^D> z*W$WU17z-<8LYGBIRQU;FwjLa0wsk5#3t$|^S=9qwq-yDvBaV&%eJ!gnyVNhzWACW z%cjHwvPlmpFiV5o|At2p=_U1u;FNDaQIzZCXpLK_13j}?XNFo2*8P@CmB}EK?$%~v zp8X~&!#bxV5%v^o--l-fgjd2yO=C1B*Dx&{yU7_YGSf=Ew^Rws9$qQybPawGT2ec_iiF=s~4Kr@T`iB^KG7%2Xeuoz|Wq^gdXX<-IjDa-a%0;MZ(Ph-^o zvIZ&^2?-HLLftHfWq#?e{JWD37w0Y^8FL=snhS7#P!viIjY?24 z9|pyJ#GXofP$hNHm+@%*^#x!JGb~dcZ`RNW4`{jQO2i=eAY3btU>vf(i0qHEY`w@k zoUt=Y*vyiVHKt#O1M0w9uN=j`)R&vjQNCN8MDTI-N`t*Wd^YwAxMadIO9B$i#?P1$ zuY98&%h`GC-Qw(3W`sF@4pn!WzX*0GQGGy~884kWVF|H`FZ|H%bXQan$*WBqK<-03 zm0HkyH#p5y(CaR z56;+T$QkQ4gFX9JkWB15SeOD!D79OFkZ2~OyLe_K3m$Oes;fB-)+^)w>}op|62+V5 z@!e!p4f&QIBECw~`3GhDf!-#D*e9W-ah!%(PKBp}b2Yc;oI;BYHNc+P7>R2JPMfAHDO$U#_pK#CSi{cGvuqa40J<#=UzSK1=7t&LCt|@*7 zt3~XzaQvrnC`lLuNM@NR%7Ory$#*VfVn#d`lNS1k4c9bN!{bDV^y5*yO)G;kQ&JH# zO3x!|UZuk~ht!@(p~{QFKGjGu7GIzng{@uzPDk)O2YM-u?B-DOWb(d7RH?1f;@vebRq2xw;>HI+?xS zU)Asy2z}2>KWzD)iKDqOMgnSmd6bXRr-W3P5#Zbl&KPer2n+d!?c1~X_vKMZp4K{HF{5#=Z(&>TBOwOHZm;)R$5VN^ z`o9$}F6_2ZE9$jx97)5a!XYk0jTU!R`EpDSVMb=fGp0Ta+!rm&;oa1Iah`EB#M;j; zv9ezBu0AI(#1Rqmy=AZxrO(ZI7knhcaPyc-1Hl7AEP1z7Ev>{< zdF13SH?cca)c&j(llz*(u*h zJYU68gp7hX`9L_yCth>Eq<3x z2w0ok=5I3&dzNKcY+*ZaAG}S2#Gp{dC7O$^6K|DjQ}bTitusPFJpnKae7z3pyxJVb z7qO%zVNJnVW{TIOxrM8Za?`3`>xwR>E%ZLhcEZQ!YaLHSubjGlX*WyZBi8 z4ntCARzSI!q%r8!IBFsz<6ehqq~$4QHx)vA=3#*&r;s&!M#aH?k<;zs?&pes;OiH# zM^xV0j6iOM^H>pFzsK3bs_y)W*L;--SMLv2m0+T}#^-E>FZatFzs8_c){lKfoh9|Q z&|J2nM!XUnOu}l5-u-)UT336AmMeqUC)>L)mO_(%QA>x+rToOcnt~pb^bv8~qFbCj zb@ZozNHK|idC`GW)JE>TCydGYdXV7t$fa zYyK$}K9DOk#9L{<9+jZztuoflf+LwQjve0^r9e4%5{z3lrl5i{C@SZRkJZ}6`K2D3 zsj+~&Ff<%Ne-;r(tsX?QpPC~qdug)9v`F_Re8VcZie?3}78XWmf^F1$5ta4nkraxh z1)kN33{modh&)d`H9801`*?cjO3CKk(EI~#$DFlL2lT@ZT0K!R=Hx_)brU__K-CNn z#Q8vINfq(S>sy0w7bB+MTNts}hwV6+14=wUu^lFymJI?l9|%`l`p_UAb)Ro^++yzX!$ChBTb6yztc>yVp z$W=-%_DCX}r^{0%k^3RzUU`+V`(+EF3=aR?GFb`w~k&6a|re7}lPb zFY_;K>7)b`N5cgDAzLQ4|KlI?g$;!Sv)%2HUy3)cGcJ372ku)X9K^>R=eDpKdw-mZ$C*JPyy%?y4c@(gcDMt&_5o^d zIQh%m2BRpIT>oPEdVcr)j6{Eh09uL(dmiw7SY7 z(_6uKcXDCSz=e~lhNCs;@L#n>5|d{!R#696ACaS39L{8$s8P17ahERj0g2IgR!!ID z`j&fJZ94a8-9<9*=}L=?eJd$B30=L`=hCOxRZoV~%&HpDy1uh3klzz-h?oo@iHYRK^Xoo}FjH+>v4AyK&+FMLv=bHj}zLIp>pe;*nbYu%k#`idRJirQ}YndaY|<{%zN&Q{6MSZM6$JJv|#`igx2ShnlIO z#M8)ld$#|D^I31YUY9h@KjF23*-qPfJ^>E_X9ji@H%cudhDaxnEdn22-4>$U)*WX~3QvD7 zX;A8gM*NOUkXIgv4%Yl7NP71)z`9xrF_eD}SYZ`CGbu%@o;5~e7yqnTXYCjO=ZCj-+F zD%Qj8mxg7S?x`OeXS{J}=h9Yj34|Xy174t~L4pfb* zz+1DYmc5)^E1uRjQwL*Bz)DJEXl_~dv29;3Ml)xnzp9@op{lcOtI>VI@ZUq8#*fr7 z2)~{SNInQevMD@OtzUIOL(AuB=}d8nf*|ip=8Z+y{&<_nCaQL+G-!IZP=$i;Kr*i! z@{OPLcg+@B-k&R}@v;V!_rHb6H_fdZsy_5;UCUaiZqzIu(Ky7H^9KH6`Z2(tgpfya zs%WFa zW^`}bJ$fpF2owK$>}qj#qU+7=r(1CS*`QUY0|d(nt*NG1zp6|0r3-T()UVe}U1UIG z5O>uEeq1y{2~3g>E9_KjzvM{0+7!NYtN(*(xyyHClvzOwjOC_xW9@x~e8>BWGgZg? z$KEA$5;I@g4#XYgC3;e|Fqe0ILhrP7&4J~<`;!@Z5?m=zL6CmOVch1yda3b55Em`) z()jO?;*m4v81iz-;)sn^M(_G7*R4!NhlOfM$ZkC|t4hlAZ>tW`1eL+;3QFUdz+)C=qThFHmrHbcjg6i^B~&i0 ziXq0Bir=ohUFfGFfisxBJpHhXYc#}>o_zIo;>>Kv9sZg|d;lWm^nkC39GZ- zxbi=9TjT|_zg3xuUe9m@%OV-+sfV%+zq3RCaEPlZbUYEBB~*Frin^eJbjX!$#PK9J z2N%TaBIiI7EY(a+5NmN>>KZ4YdMWz=->6&#QDJG}^p^6gSHpd?LIvZsSE|1jSNugx zcV;Mv0~!aT6kKO+(Yhx~X9VBZ)yEG;DW#@t5DeIOc2PY;9&!GHW;HUWXL+qMScJ`a zmxOli)NKW({KV?rM;9AE1>I?@re51=vn%LELHwN=k}sl(T`}JgX#_aQCmn7B1~%Y& zr~K%u-F!=y*|X*10*B=1XQ7Kt)CgoI5b*voCPP)wGdexsYu6){7wYT}Qs7>-s=dHd zcjK4@bM;B*fPJFf_=eSKaM(;{lhi>M34doEojMU>=iz6>pKC7syb#WVe4}>NQ&8Qx zQ2*4%h?=s=Pd_%k!=whSW5G~o``y&Vbf1O-v7`&g_@Re36(WSE%v|fD3tz)0BXCR2 zF5F-DJ{h1c%WZ7fZd#bSIwsKD{kgMSgD?YC^DxC%z0YmBUsGg?v#->!J}QWlUh*Co zd9+J7ab8eiC#*)+-s$%23Z6*@jJH{C8RR)E+Y4*kT{7+n<;(4JRfZW#`{*x?!e(XK z*L1jBVP}l5ZMD8JD6L&sURxuNqjHvP>+CP*WiW&Ly`67jMuN9D7eVI5 z990pkecv98R=^ioL0cmLUG_2m7X-X&os5s zPCUR?_}Gd-%twFB=F-*0&B#Pp-nm`J^chAh0L+zF4Srt{2X{~Jz@IMG3O&=l*>Y2V zu`9mip@;gcUK<8+Hqd3)O(jKHlVH>aYOqeaYr>g(E%gkqe$BIQYO{^p6UyJ0Z;!Bi z9(sHda;9-D;)+L3sNGcq>YlI&X?MN1yKnV7NFO^Vcs{-^X~%tO!4$RTH7H12-j}lF zK01M*WY|P4r!Xg3V%qMNso&>?F9-*HHjUwPW}KX?MjxFud)+;*mCwaX&Qh~Da+A)* zNNLo&u{fxC$EZ>g@u4{2t0gLK{)Y+`ICX>1CJ;x0XwuDhPTGwRFa}bC)5(UYSVfw% z%rPh6W7blccib|=wyvAY(!`PU#sPNckH>V4r#iLZcFe3nnKPqSL9nxWH5NFiNH1?G zX$aq@3fzsGKa_ctlB*CbqqsrvY_mwq1ThO;=E`%i%HnlnKh!9T5kvKFmnXFgj#^7p zh)k&H|M{MtJ7`cAb4_y!no9vwsQ<&xom!BQ_3F@DmOim5B%gZvW=(eMNzy3M`uM=u z^M0KY(!KU^P9Sk(XSd2eYhlT*j**o>KB5sIT!9+6i7nwS|7v4>Jqp`&Nfam2`zr*@ zDo@KCVi<#2p~TE_jq4Y6s37`4d}ONR`5$`FT)~;gP^MraoKG1>oLa^+*B}Xdv+@UT z^c}?f`*!gr&#cy`{AVR99aNa`P{;|_AYFh$O;KNtSj5Vle|Bi~HKofwk;vFO1NXr9 z2>)?rbXN~Z^<2wInH7QnmkxpTBYa*-EzUUEHLmduIXH0G1Bze^fgzJrxO zOr}9uL-EL@ePUe00YD$u9But666B{YD+zX9#Tgmkc!gP17(pX)6o0u6*L^drkxO0e zt84IH&4)MsV}-{mFy{r$n(cW_FS|0xFN^NHjIg{%a7;;yfJntoY7j6F0;BByM zG`GeNx(Bl|8(K6yzgJLBaY_xEv{PGQVW)$@3n7MnX*wpt%mP((zB%e)?Xgcp+<`*#80*uyM@3TuWCV0+uJLu6Q_ zUiz#c@9LC;{LD-Gy|0Br5Xx!$7?;JhC%+nHNVpL*5&x?Pn!%|#F{_}RlQ%vL6ZCv`CCFZI*J_bgH54Uht!~2E8D)xBg*1{S-j|yus^@! zFh66m1N?05FFn}9-cwKjx8m9g4<~H?_Bm8J{F=APR)cfadq@Z6j6PDV5Nuj2_x| zpqN3P43AJjq;$YI63szF-5#Dr^gti9NHXoEsXn4&=yZz`2FNL?7i0;CKmf-H^&|D~ z?>_@KxQMB6#v;toD%QMAxbgQnr*;@ekN|rE1*ztgZkxjeCW7ewkvA^%PbF2`Cr*ZF zaA45xV#uExBi5f*L*ko zRB7u*FYiuda=D@Zf!pPCLg4mADL^Ai$*A2s3VdN+iujlN(T&pyj4tXxjF9vc=ITjh0 z{sz?}hYqnlDb4H{6$eYCi2xBteC%?hiFrPbt?|gb4_E}*WVADU3i`u4(6(iVYVz)7 z8`xX(A~9%+ZfewWfBP{C&)FBMDQ^8gv7@kSmU zjr69)HMg3*N=}OZY{nDpkxj#}M_v%H2d1c7^3;^oKD!^~Ab%#wwm{{0r^|50#fDHQ5$T3Rz$_trBGCmpg@w(QIE`hVc;*P5(S19%IAo{hikR7S)OCjpa2aP{$%d9 zlqL|AF3)`w&<}GVbMvFvObs1`0FZo+VJ40&Z}zed={Ry|2t_5DIDY-R{`R0JBPlR` zF&eWnj}2)A2ENlNoS zxFnb=uL;|t^4>J~tiTIB)ciFvTY;qH56%cZR8=#)G~YX7mLvQOGoXIjG6Nh-dVP}% zM&_PKgmJwx2&=&Ab8-UD7ylRUfvhz11o)%|0a9^KVKnG^6IDyN_m?sl*X6QOaP^h} zqS@E`Y_9+c_%O}yi8%rQCp1wRQ)k#D06+oXx&ffBa#wj920opW()T!y(;kEm50B1) zKLG6fAsia7lK`;PguxISQg7p_>HwK z3iA$JVd=dgHa;OfV%x^J1WRZ8*))!Kq7=g{F<-Cw%eM=Kw+?gM412LXnEvc@lL1&ZgvaAgJ|3#Ob?fcd zTh1`TYl>`ulzR4oe8jkYdKgx}fH#QyPSJm2zuX}KemZjP zd=5*mW8d00s=>o=!egWr_~EL2_^ThD2B&{D?0#VFuZGw1FZ^n_Kl1&rmU=8}e|?M_ zv*}m2T&{7h3bzbSE^tF(#pR-~!hR2U`Td=1H|@z_1WYGox{!{WacySr`oBj+Jf?Lc zPB_CavuAx@GH9$jfyX%-cJY1{=PE4;;V~#88rvXRsZ5UOCh(|JU~x;INj@vuAXQw` zETLY<#rcW72S5w(Fn8CNF7eMXjD93i=MUvC&ed8XS5#1cy;#}K(-~~emQ>pinK}=dDs@eaAM?|o zXP4^WPlIn-<&(%XA%iQ+`L})=3=E<#0T-cK5CG$ja!TrS2HQN9bB^c?_8gYD4$~Rz zn3@>xqBAJfPmB*Do)Ax@2PCd;IubFIfAKJzgp%Sl1oEgt!mSf& zgLMX_+q>8b$Q4`P@2j(yx)7f3=wy#u z<*lS=KtjffF7`0+<VR+(xF}KLnMJvCcd@G9rASsca`&5^K=H+2GKn&bq42%IJ`KW z!B2il%GRF-|Kjjo>ttr&+AQJ;ak~igB6YG57+Fcmp7-`Xe4CxU<;nM_-__r4<*``y ziL_TFGG;$E?~e8K>s-uB^KF#}?Ik^I_v@6m;nTi+>hDkPU-7kT+U~*ykr5N>9`~OH zVm*pvX1wjot6Nf+C5(k%c3$A{4(r^Q2IxhtC6ch8C98mmIjwT>Kr(^m9)ib_%nja3 ziXlO$aPh+t^lLzAyn@eKsDq#y;8{aF4Se^exA$W#jF?)^*CQs`=8(keXq8K^5hgdh z`5=?W;_jXSUF;6B-$VEJoCQy0OQ_raHLiDcox*sp1m7+r2mrOfa!aI%_Y={kf7n&^ zc}7I^AxP~wa$N?#IFv|m7jpQNGal{zMdxVH{0;2MI)HWD9H=*oXw=e`CKEX+jcxds zrF8unx?Dk%FnCN9dw8}ULTWzekzlIDJ18`bJgW6 z;d9s&4!NyG;d!8vvX>x2j?cg8{AW-*iL@NDu>y)0oZu-FfyB_8O*l|I2qGxZ=DHYK zNNO$d^n%$>%pVH#m+RVQ#bPCe>?6j{tO*DLe7o4Cmf8r9LoW#eWHC(YFoAQmzO5J* z3&!tS9t0!-9HWV+dpoLj*hWO>1=IB#btz~8H1-qqzTu`!eg${WPm|zGA<1ELcatL$ zJp2ja-k09EcvutmiZ}+Jbm5ugNbnA#vv7rT+UJ1YR^ZrL-SpOwpBiF8h|5jqr#mLG zp_xndwB9wDcCooKVtUS;_HnQ-PpaVSDRk|<4%EYlcF=P;o&VAy>G-wAT!X zh&~AFn&kxe+kJv#aER!4<#L(4(A>SZNP=5x%FrQ6H3)nmCSwenz+uypR5<+LrFE`p zCCpw$%-#yKn?^)CgBYfT^$1p=8W(sPi=G$*L3>0*CoC;`@3qKv-Ul4d6N$0zjiar@ z-DfUPQgTYPiTM+Jvx7}0hM7xc@>#6zutEu5I#$byGteG_h+gRcxVzT2Ra3y+R;}?c zE~IrRdXgrBaY{sI4IFSb>5ON=({#f4mv?crEx5ZaAjv$eHGTrhk|5~zJ2Lq|R`IFHUGTnFPtP}5!uxVevj`2F zPCP9qy6Lj*Rd}G?oFtepXdjuhf^qJr_e<&MN)Vq^TF z<2n1a)yK9_fPDcOnU$J&+J>Gw27z(A>N*AB_CT{#hZ0XAM4{V)@#910q4_lHi;q<| zQpa|qB!x#!;PAqZ9zeeL2uSB@apYXbXynT$z}5KPhjYE_^uJ57AZcgkS;vJvaFllZ z5s6{`@8)6Ho2o%=Q}G9IG#_s63R6Co%vMY(?%5-wn9{ZpkaB5~6!xwq`q-DHZu;WG zPh}Nn@euH!6IjUz_KU8%vCciGm5UI?#%}mjyyYOtKLhvOrCd9zGMz1b$%HoU#P=)T>WYrvTZS_iv=}Z5(M9v{yRiNl8e7m~T3jDbk3DJi_^rbtH z%NQoM7ty+bf#D-SIx7OCzEcr4*_2Zp*ywY&EOWas`I&%0%q@etV}bzXJ%JkkveDe& zz7V<31@{Y%f&0f&G~%=1{_Wo^n+4$h87FXmG?*?g+eF%yuJwyHL$*D@cG!BbZ3vF% zEPt!9O)F3wQ$3-)o{zFw?5vOZMPuj9b6CJ8xML`6DLx7Lf)k$sH$Q-{#~lpf8)NfH zadTcv@u%dOdP1ne4$3_?)-f9rxs}o=29Pl9^+I((%mj`BS_Gu5<8n-D1=>@_7L(cz zds>PulV#X9q-~D0hk^DaBL%5#zE~ZQ4BBw^)R*dkHp3INC1a0hwDVhvbCXwMYoH&5 z&jjt#iJ-k@aRaHHu|OSQ4B86llu~kj_>au0LL*XGSIf10=AzmzC&u)`>6xsLHi8y zJp1^OG(D^jCG=)JDKBTJn+#J%rNVw6>j~R?!2y#l^^4}t9;ETTe381z74+>9ZYJ{; zH!y4^q||JrEy>7IClM{>IG2Ug?G&NrSm|gHjj^Ik!}gG}1QoOt{f8*F5oJhyE~wwm zC?dTVTZ?+F`x7v_KwtWp4TuGY^ftw?N_e`L6zPa8G>Z zQ#1<>l~Ar%L>h2QjYRQo;6B>8h|5ipJPYLVC=Ix!b49&gDH+^QK(ErS5zw=A7ty4N znHuz7`>V(0L$Se~7Dlzbi_jef@}bolxw*Hxoj-9fI<#Y(8WJJAaz8ai>@CrRrwVdg z0_9dZ803b&zk!^Y+JbjfWNE6k=|lo&eT7G;r6mkFRlgk#H~<5tY$WRyJ7*`{1sjy+ zOjxRHCeJn0$0`HV6zcR?jeP4=;eV(8iyn9kR=U!wH4q@iDNsn=f;GJ`=Z}`^p^$!5 zR(AFuApq{%0tJKhh(1^s8|kkFfD27E09w*Ty(s`7+%D(`g`@&I zv9D8wsjV@QWUmdnbyyVt>Z}nH+9mgJi~thk5-o4R>rVw}Je)mMI1w@kH&GPE{3yh) zuoDRedrlRQ{9^o`=HIDahe_d}%8i*Ogb6mBic?c2ub^sD{C8!j+pa1con{zQZ=wl4 zTwtpydxK|c1|&w!6s~x}umgs5l_QM9v${pJoTUw#B(z;>5nX^Jq6#xz`kqR`q}$W{ zqb(1f)MTN@ZlSvJn!!=%4ngzpqZs2wcEZ$zVHyyn(;xXq1BfyJ(dTRr0@3CCp9+TY z-x?Id&$@^%{mGLV4u_mdOuXfh|FQwBR9^mTPj6# zXj(M)E>HuGKbTYKzi9p~e$nMyu4_;{RIyCm{}t}$Z+Z7Vn;|uXVJ*xa1g2YoBB<%G z2210#7TgErdiW;PESUK%`1#e&WTr4{XdP+IU@}5!vQuH!*f}5 zs43Y0059y1slw;8@IH6ay&&1x)gl_)$>Cf(R6gNodtfV@2M0k= zu0OrSyE1`TdW`oV%=R8l;EjoFgL5;Q+j?J6<1}HaCjisbiRR9Qxu@fOaCQPIWBuHH z9Y?-1{GvP1&N&|uf?*9i09)Br=+`h}i0$_OP9_+XKy^Fhqv>CX64Q{7rj1@g^m<3`Q-fno~y^ zUM^4!w33xTs{{Fv`4e}ZNZ=g<=(0KxbmJg&GrSM3$dGGOY~aRZzM7H=zPv`uDpuvA zZgOzyh6@mob3Yf9>;nG6F%$b8;figUDpY&(u0RU_aZX(f895iGPe8?rC5RG^Tj70h zs{?Xr#0^-JpyO!`Rw?GkQC37ZWt-mgl!|W`ytgLZCvzts6x_a@pzy%O!JLG>k z5BnRm=9bPyY_%LNqMdCJ!{rSk#i*XR-i3a|^$#Ng0mESWMNg;~Zz09U?=B52OW*~9 zXBP?2BFhpM@wUK43+NidvF++duVKqjL~)0EAY|HX1pRCPY>YviM8IvnNSzF(_migg zE{vHsHrOryAaM9U#1o9Y)NP`TED#a^>O*Q}@;Rb}DG0Jy0$I5y-eAm|w{G3?E~y<7 zJ{p~`Y5mYi9AcN=X z?;Ulie$rpF{iBaVKktEEt#r@wJ6O;iYtaRY1sv)j1;=(8Y^eY1a=>LDb-+NdH~}W^ zDeQvtPWdXgMsXQR9rp@oeLIxlwCFw@4*=2r>!IdcA^e!LvbZIbcYtW$VWOP|pEA?= znXoqs7za~*e@UfC6Hi8C^)|6;s?2~uYvr^bFqb z5kCK9bmWBW(_f%d4k?&NLq@J16-V{s~j)5k{JP0Sx zy22GwXg6=sw*Z3Dod(=Dfdz`=@@m0Ze(aXCBMUGreD=xCtVkx$@#)^nRH5P5H!ptt zX!aV;Rm17A^mO)2_U;)qwz2`W=nnnge5d1b^{njyvP`J%@C!Qw7w~Lg0g)XL#XGKi zDE}?67JCP0QmMH_^(m6c4Jxr0F6Pr>J|7vDU=7t!Bw8Qn%@YkaTwHadrJ7rm*ekzv zEB43(Ob?V8@zYcTKxqR9aOE%mD%lZ_bh?5aA5M}vmB8-sWJ!&(y=&3~em z@9@4U5K?=k&b&PDw z`=UXjbei1hW4(A5)JyotNu(3sAe|0*qiNIObB!;#tW#qza;~E6bC1nxr26pwnGIX} zIpz}L#|>}>_h9(A%EVWwk5nZ^Q$zpwH$#bEe21vqwghNdQo~%-+*LL zrJJ0(tzSHl!)-h)4?F6`$q0zqWp7j#K%cj$$HNXu?`l5lVQwksDdG-R@5!417tNSQ z1ALm{GE%=CEhNC00qyl-|AyuCSg1SL7+T5f;qFknC-1(T9#|{Ajpo{x%StV55TEi5 z{W&TGu9dlC&OabV5eLHed92j?^1dm>gE>=z8&{X~927 zP5B4rde{XYlmyl?RsioX$Sq@qQ}_9k_kYG{v!e=UhFq6?uFEtpuZ68aDSYBm?!{XZ z`sgQK&hsG4H7lw)SGQUloJXiK(o=Y(EO$m6$jh7ejimbq!)hq!X3y z|L~{l7hqKQiTgx)EXSf1I>lNx;BLLRy@LPaA5^XIMbhQ~NOchX$MsC}477>n&W&VR z4#11fw#u`~3@+e}hu0L?*9!g-AT}FqBs%PHvqKAc|D?iKB}4+@>!d&+19!2qzsSVV zArHBO%i)?t+f&rSc4A;I$_XhVi2EVc+pz+evjnyDBJbG zDfoWM9bSOI(Z5>Hc74Y%6#pV1%k)U*+GX_1&o%LPPk{Jc<}2ItOdR71klz=;@1;)E z*b2Ud*6%(y@H<(=`QMF9^EPx8;SPyphL6CD=C;bOX#M_*Q0gq_f8Aznkb=%)j9E_9 z9uvF>E>o2x2hu3JG9WnEW)23TTt!a85NpBNL`+9(EV zRX)mbpwtT69}LQb3M#4c6xup_9k*iG?AFfmNJRF#4Zt9i&?RW8eF9$o}j^O;cu;EV$V1aKLzb{**% zfNC82tf6Cr7+x=)DTR`T4fp7QO(;D0v>`0r#IY9Lk6>`#F;1uW!)Hsu14@v&j*0~Q z0pu50VYtnjSB=mN_rT3md9028%CKb;!t+MBwgu0db0pPHw(HG_lY}Cd1y=z@aLISG z*cCB+;VZ%^ppJi>H4m*dSce;KR+qz4&sWy$t0&<66vHIKTivDl+hwGu2Xei+h+_Dy zUYu~0v-V&yI_QNCY(Sp3`6_GdY}cdJ1;bzsDw}~9!K<`4!+?ko-{qZ=OrS4($gvid z-7w-L54R6-LW)1U=4=u`bUuHvc;9w?jlL7B2F84AmG?t|Du@&LyH(%*`lzVGZ-aY_ zl})>e@%2Ynpz+>n3cSfE_GT-@M^NQ7MX4xX8^n~Jcj`gbDa|Km_Fc9e*1OaQ_VpKU zi{Vp?-QSK(;2a-?7wJ{lp7$`42``L$_dP`J)Zf^oz~C6M<4zNP z6;YCVs7dhL9WP?lD4X=w#`D}K-iOnqfMWQY6II5f$8(Em?VkiN4z_MU0^C>Gxtz|ya?8ltP>p7 zG;JTzL!UqKOdO}9;~jTwBom13lqM-=Ya8Ssc&8B%5m>wYA4DElMwZ*ioc2qK`*Z`~ zjyYf^3?S}kU^liLHeb1t;)A*YRqz=TY(gW6^t{PoH3aga;N|KhZFez@J1i;QD#&Q4 zM_GO_S(cYeX-w#1^N1v)I6L6x!o+1{ei}-Jr7SOv;twYuRUFYV5DsuOrn!zZA=ZnY zLW)1E7xT;EqbnT_P$zpkyaHw+vPqXjGLPo6GCh?6rrM@E0FDt;%xu?N6UW@X99AZS zXJeX3d#-b`r%+N{D#$2CHH*1GTQkFpHnhrXwW|%a|JoY&dd{T5d+dCk{b&}XsUDrT z$zANsJwx>paNQl=(Ax$4iY3-;8)5<(FUrQEXpewD)RI^nZtw;rsoDc5nTH-lLNdcm zEs7p(X2xveOvxnL%P+rUIZ#$yd^3|RW=(CZF7_FP_AFC3Gs7n;!)jPe!X&aGRJhtCO8%HL|xDacMbQ_P*H2-?)?QY^{Z0 zlq>zh_)K%;AlL)#o7KhRb^co_5%c<(k2@0yPmpBMrExy7ih9w@x# zLZc_yM*jAl>`x`y1lZlE#wX-v>>?5{zD+#0P3#rV;n`}#ll~187-zcti9G18Ip=UJQ1vo^}Aaf2MKgn&=g*buHt{E0ZYyqD&i~z~hnd-1Fo)$29N?f@Y8-BivNMV;8E}95H2vCyXQDl*SOMUG1?$IY!vc1qs;A8l;!XV z7D-f#qB=mqNjG3fC%fv9S8@sRQOq;iRbu2H3p#VPKK5|qY0IrfUh_soXWrrc4vE^O zkOyUGVfu8t8o!;Jk)4lVIuj+E5G^~e-^nib(Gs;^)lNzDt<7#gK_s?`vmc2!LvsD{ zwKyu|#tiH4e#k(11Mk~yUKA8p&U~%@6X4C{QSSz$5K8A+^!;Jf7$V?XWoaEqdf86N zO$w|<7%w#)=8OOC;Rox zxuo(}G0W<3JZ-Zsv}$0(q|8hv3cW4g$S@P0XKGWE0dcwe`4aPD&eVZhIlRT%X|2*= zn$z2?ixB9ans{kYj;!Cbns!hKRmv`#^$0TVkv1`^#vTu?!>vG}e$fI_+2sZ=4QerU zw|43>(@u8Bu9X_)m5;_RK9Vg>(AupW<;?7N@%GpsKJi$TDO_1hu>1JeW7F5A9!3u*~H$SW3imq(e+Pc z`Jukyz&A3y08{8wcb)z=1Age3Y+ifP; z{}vC1T5_~7dkP7voTO=|X>=F5{;4Y;R_%HWDXGdaGMovH*=rY^w3je<THKY`b(@yBfOya&F)F*DJz5HK|)e{hR>zH|mM?i9CSkkJb(@5^SFwpDFg77{657`zN6aWAK literal 0 HcmV?d00001 diff --git a/doc/images/dec_quad_2.png b/doc/images/dec_quad_2.png new file mode 100644 index 0000000000000000000000000000000000000000..7e384921d1f8725d3b1021423b36186fb029dfad GIT binary patch literal 15465 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 LT^&o7Q1|^0zSX%R literal 0 HcmV?d00001 diff --git a/doc/images/dec_tetr_1.gif b/doc/images/dec_tetr_1.gif new file mode 100644 index 0000000000000000000000000000000000000000..c88833464c90f38d96f0912ab28f673d3bde6623 GIT binary patch literal 1842 zcmV-22hI3LNk%w1VMqaU0Pz3-|Ns900My+G1^@s6EC2ui07wCI009F3gpa8ku@9r1 zwAzca-W;?JhN9LuG^=fq7fuKDk(2dX$g%=ozLbp zS~FO$+^+2Np$@$}a9B)EtC5bU*1gV!&*-@Q{&3T`c$R+1*C&{EM)zhoC{j2UnCOTF zgIM<%vN$$LnMni(=hCTp(J6U&32N%+Gm3dSVW>*V8jI>F(I`uc@Ctj&%a&StV9WdY znOEG4+zP0>n=Hvp3YI~mtU1~qagHAQzAkR6 zYR|4eF9^@SiqgMw#sK!S^U9z+JP8RxSa@(yLthRF0fTqVV8kx}7%?*OxW=Q#eHAy7 zVK(v}!)+;5n(TwJZ?mvFl5MX$F>dIcrjyTmnT3Ttl%>M!7hu~ySt(C=EII90Uk{n zf@s*URd3a&dGBgDKoP~J@cH%cfIs-<*1g+uh6bXCM`#Y%x$P0gF{ehI+ydLV%$);| z9sD(NyuFW`!=9b91?UEq0$Ue#aWgU=9T9^@GMdI?@ln7YaQwk~d$fT3s z1VEaUnN_JIh6^C6%u-xBq0^d9bq61s);u8Rj&zpkBTsq?d6Sza)d(JKMUGOZooC{i zW|IVZ`4OY;nBbk1c)C_(nONQzmYaT};^-q`L@KG0pA`BXqKzUoRi}wUxldqs4(1&l zq~fRuYN_(cDXzVoL8_!w&T6J?rt*l`tq5)Ej14XSPDa>;w5^BerFoJiB(h&vJC3ZT zp2!}URu&2@vE`JdYG%5kFhIIlB@k|$CJuY$cem+cZMm1(yFj}7?yG}u@R|i5b1X=E z)J#lDwA8)|FU)Ym4(ltRztD7ZvnzobdfL zD7r}dnZS2PmiN|*=h^7BUP}%2frBgUYBm4=Nk%w-xM>xGUOmQ5&*X_)ZfLWV!xBl^UxFY?exfF?rq)7T$;W1>NGzutE49huXO%eT{4dU-i6;B?04?{ z_YUE#BmHTiLBN`lt$@e0{c*~D@AJ&Ckd%c1o=8x_lL~!a*9MPWkbw<^p99U2K*ZUO zf>lb>bvm~-(A|!K+u0Ucb_NZK)u~SCG0Y!YCNl(vZgj$Wq2hQ|s@nZ$CK6f{_o&pb z{vC^lQ9DaLGL$3|4)H!Q3W5TW2p1*)#^ElMY2u_HMY$2yjEYs<;BxY(#V!8DE{FPJ zRD4yl_nIIiKHv)*rjV7GLM1OoyexR!VrY2Fx2Uo@07DZ4xXnCgd8I(@y3)C zNXbtTERNGg`6cW)2T8Nh%N}3U%aDaqmY7;&d~zg5T(PoyD(o6HnMuUnoM=nT~ufI-oOM=0oFd{I%>Pz`f*;n9Aywgiuc z$aNuYC!siLBeP+xnrB27c4+Fpbv{x@!Z9DJ`lr%D-m9fu(iS7R)xpMDL{l=sDK;Z0 zCMcq5bNe)xqJ~OTd^#Yiz&Z^=<&!BoX7!GM3Zp5N>JQsMrK-&Afmzvv)^&395_Np_sSBwGVGTKv#WJ={ zJVPus`bmt*5*4(cysR(DQOeDp#1?xHZBc(wOVvsNoJV{~FX!M|)!ue(Z^=RrWQ(vW g7?z(xFfDLv`rD}u_qbyVlPEHr%3M))fdD7~J25(pp8x;= literal 0 HcmV?d00001 diff --git a/doc/images/dec_tetr_2.gif b/doc/images/dec_tetr_2.gif new file mode 100644 index 0000000000000000000000000000000000000000..1a4d2474460927efcf6c24e147105daba30ba18c GIT binary patch literal 1406 zcmV-^1%diUNk%w1VaWiW0Pz3-|Ns900My+G1^@s6EC2ui0LcKK009F3gpaAq?H0nD zwAzca-n@e-dE!Wx=2?Lt%C_zct1C>`_RXl@jQ9TUkwJLCqVbrB>_SVV^XXIW5IU&! zdYVZORjl`$*>0&su=$*1mWN}s`%7$-)Y^DrNK^%>S>pNk64cClp!rg5}t^H_TgC5DNz94WQK;0vs$=(hx z@NST=f0Zvz%a^)-{PyMh!Ve%OZM^gqRPfLXzjq23G5luG;lTv|5wT3vS8))%ChqX{ zbGH%UyNDs}pp!x{<%EtBHO{%`8u_TfR$|2{FAP2c*)qn-Pku7KRn+$4mgYdo`eE7)hlmAO9$+&vFWgp-FpZ|t_0M1q)X8pA{Aa4n- zQs6i*JO>{aWJTv74%qDn!6+J5SkrO{Ywp=+Ww)T9 zL|22dStwhFA{v)ia+2BThmGBtU8E3AI;WnS%GIPQmRhwap`JQAhYQ_}b?TlQ04GzZ zS~AwEs~U`!lB}Z2Rvf34+E$RRySAC0ufKjIEJ>*U7MrE5xOq7xDu&9}tg{d$J1nn= z8EdVobZ}N{w^z89Ww_!#LGG>Go;%4g7@EtjAI($;Z@h(kvu3^a#=yy<`tHkuRMmbu zFu(-L*JY^&uNP&(1TXvoE()9EFvPJeRWV8vTdXXzC9W$%wAfTNu^J$E;AO@xk*qQg zC!-u_H1sfcWuz*99Op7=C0Mh@x+VHDVHxDc!x}-Oj8sN9W04op{cap1RTQ7{m6b>@ z{V_;@{L9BcUh)Zb)XuOKHW1p~_iEWU_Vex0=@2Dc!ESrNQXX7O^UWS^s=am^equcj zCx@svcbRQH&3D8hrcGDkCUCb|;Ux&6?gf(n(+w(^fb)B{fSbE8ol$qAOIvT3V=k>< zrw=n&ZmT1my6TQYI`e$5gB@Gbw-ZPWSi3WR@zB46h~=}th1bsLP{=UvVzXzR-PNDd zz`XHf6JlC@%EP6%q|^5ZU|HL9zuZ)c@O9w$%Xbmf^PmqnqWbHv@X_}+^j4$%qzCH$ z`#fW+G5fvkJ^5LX$P{!y9AJwElQ|%?I5q+$iEM%5^3j?40zt!NX=jF^Uyzg<|7RXi5RlN9Fadng5opA1VbuUTJehNutg6oMmf!Baf^(g(Jquo#!K1bQEBuR zH1hC8D^@Rfh-jk%!&t{u*)a;G7(*QQIH5*-35|f{-Iugf$RY?~j)~L@^AgxdP2e$- M^P?mV34j6sJJxo$8UO$Q literal 0 HcmV?d00001 diff --git a/doc/images/dec_tetr_3.gif b/doc/images/dec_tetr_3.gif new file mode 100644 index 0000000000000000000000000000000000000000..e6471ee9031d182d3c9d5cdc3f071a0a2f8d5336 GIT binary patch literal 1079 zcmV-71jzeGNk%w1Ve|k>0Pz3-|NsBp2nGOv5dZ)HEC2ui0Q3M#009F3gpaAq?GWOd zwAzca-ZKUchLGop=82{%LYC`0wk=H8wkXRtm`nN&336(z>P7IEQ3iZR^H znp5rBy^VuPioCNB;>(dJ$he#qGn2n^CLj6(Ni!cBj|yMr3}(*YN1Q=-H2ZPkT*7%G z31y>t!eY~DL!rW4kkJy>EpjA!oT+tdF{@>Frc0?&Akv~rsd$>JHXKN=N$+y}E3in< zvP<{o-B-2AHmzp6{cQVcW){ER1`H7LxFcZ(Qzbi2tGI4f$$KoDzFbi3RRm#u8TE{5 z@Iid1YomU_ICem|uJLwAN}9CF6}F2TKaTu1$w$BsMSb1K4yyuXDn>mWdc*?^lr3|_=DMO8#NGD~OHioE*(RrEZre+dq0HmBih9sLVUI|mC zP5!x4jgU?!YhsB7$}66;${FD#gKj1!JhdKLsgjHTc4#VKw)YB* z*+2Z6E6zIxTl(x6H;j2OwUL6$ZLlHkS#g|YE`~8;pf*hGwe4<-;3pt6BO1fw!g$ca z5vxoMG8(&^@;v}61M$n{Qj>9}7;l52%R09T^k_nR8luM13_aIVO0Tx%oJ}sxG}0*I zi*wCVOzh*)Ra*#&sx)hTl3?lu>h;$?c2Ny%P$Q-XyKk#qVv!-G?eV^D`b@Wcy6rtO x%InVEciwgq4uw8c7jC#9i(^s8&5W1*cr0@;(>P#IwJ(206SL`8Q1^- literal 0 HcmV?d00001 diff --git a/doc/images/dec_tetr_4.gif b/doc/images/dec_tetr_4.gif new file mode 100644 index 0000000000000000000000000000000000000000..b41bbea47186271a7cac27060b304235ed659eff GIT binary patch literal 1450 zcmV;b1y%Y-Nk%w1VdVgH0Pz3-|NsBp2nGOv5dZ)HEC2ui0ObI5009F3gpaAq?GK}z zDp-oMj(7VHh9Y2DLN})A8K~|HQ{`O7HpaI1&VzIfVD*Lzfe}SaDh)rN;iy~oj5(?G z)>6AOQ*+i+`Nd|f#-KswgK2SsBx$xm^f4j z^3~`lC%|+!N$CRl2Zg8^u~zX3DzfJyNm}agwUD`raSF5c3Y$PXYD*@oma3|IAgbjA z48iMVN%C79luQi9%<()VybLT#;%d!2P3>HJo$LS}jk4YO9o--dM_wH0{(&7|I!{V( zYmT4Ms(ilMuNyRVfduvHWiyI0>4=PZQdg!K@=|uxbrWY!Sha?3X=yZ3%7YnKjyjh!=t_|? zl5X7gQ^C@#u$IQM3KOb3sU)e2b((8JlwW4SzM-lzqgzK@6Lj=i7nE0jYUk1&DzI(Y zy$vPQ{JVkF-os-EXJ9-?CW^Lx#lX#(7g*+}EiPB?0yl17w07ONh8?IU`}a^j(5d&?RL>_g0nxg)&rK^CER&tTRr~fC0?GyF%H)NT?KRIEUo+d zT@aOH?tJ|;Nt|?i_NU^*8wZd6*l0zo;cFwWRsCAb_6^7XDdC-e^aY6DR{@|ALUH=g zvtB#rVRGPmQ4!eSZSaiHTS<>q$i@%%1y~yeuo2-zO`%~WpbeaS2;zK|+()7b5GF{W zOW?G&qJtUwcMfGSc9u|bs~L8iL#D{50dRjyx9k6-rxi$VM<0 z_S8}c0x^grkIiUjO;G)nc8@}8iiydWa(O7`1y~vg!Io=Ucv?wDO^2pF4$?US5K3mr zicegYcV=3Aw5T1Qd=eUHcQ3r6=$iFib-Ft)7W^(_ z4|e&w$L2o$`U|hM)W)jSlMjH~Aq__k`p+~JZ#ZfnJkZN9vKLt*R-uCU@T*pbwP^lva-}mY=<ytIn^! z_3l5N71pK8M#^&^vb-m`{f$p+(n4V2>gT}kIH-9DYm@;+1H3s!Zhel*;7a1L;ru#QEFi3qg~PF7@Sdf& z!CfVF7JT8Yh&DtC#mli{MIt3nSJRzUNs5a8TLyf(oVi}%Tw-zwXk6#K}Ak8-eF}|@c zbYx_Q2+2RKdCiiOlH?en_(e{tPL%$z)h0>V4o?;?2d6|O`$%aCX&OkD<|U5j%ARSXw(?wU8+_CHj@Y@#3(izI+(U>o{f@m@@)=?l4?w7u z5_2}E*DjT5;C{tk>y$hOm!Vp8dVS?;8C5t^?B1&Fv^fmr$G1Y3r%)%@LRe@Ri0IL{ z$QbE3;WjC`M;R4yiK+Q$+3EQSSeY3mN?Dk?a7aqGdfMUonjyQzLRLbtETM}ijH~l(*V$}(-FIv&MBNq5-3^{3I<92SlbUVeeW$*ih%UprjtWl< zdLLiUUd(ULMjxX!?Q#hWSEk^(gVG4fC;`JAUk#8X3D0R%V2ZIkRTWkWNvCV7Y3*BO3mOnQXd(M8PGbWW>Qq zmf^#e1-S;ZI**&rcUfZ`6PNJr)DkAFck3CIp4Cs^KnmZR7)c5JzQiX2s zb?o|0=s|$Z9=AyR@^zwjO8*L&cGRMxh|^8){3v~aV$n_i%D-16?E!_9QUd))TwAsr zbB$f{n8TY_vFOFtLzhHo+6@E3<=s>7$Tz`xMr^1cHox$fV29tmz`|?>g2Dl1tG!oG zijr6qV`@hr28#(U#wOZB=iQK7k0ty_6$q?Q_uY6&dSK&=N*?q;ZhIifRgO_Eh})5tl_I@?vLYrtO&tmcO}> z(`<$!Q=*^yEV-9+SPk+Pi?luWRh4xsagQXfStnLdb#7Z%E8+U95z#x-@aRmgR06R97zqtSa literal 0 HcmV?d00001 diff --git a/doc/images/dec_tetr_6.gif b/doc/images/dec_tetr_6.gif new file mode 100644 index 0000000000000000000000000000000000000000..2a4d853305f54440edd7975f498cd37b39c98496 GIT binary patch literal 1132 zcmV-y1e5zmNk%w1VRQg=0P_F<|Ns900My+G1^|E&0000000000000000000000000 z00000000000000000000EC2ui0CWI!00RX75XecZy&we4yZ>M)j+Lg7XsWKHX|ixE zkM29)_*`dp?*Ac;;KU;Wk4TEJ=Sn(%Cc$tsX+E#Alhj!4VZW`-mRj4xM^;*wIH{@p%$&YDaFQpipj$w%+05|ah<-# zlF-qw-J{#Pk%}J|~>FiyuvifmL^q9z6MAz_S2*|iIe1A0RhN8fDq zqkJ#e7++JmaZ{F&0Rpoki$s#<)nqvShMb4`@#Kt^WRdpGcl>Ffq>Cbk7^R6G21e## z7~+H?VSnM1+Lj*-5RDcs&V?I4ctyqFK}67$W@V>YInG04i5AfgUMeP+Oc`)8ZR#ADvWT__RNI=&`M#Kc7C_a zS~`yCA7R6_WuaQUk=GvxoeiO4DE8bFaK;+(A?S4O0{ur`!qG1Y0;9mo;8g%eZAhqHEM}|{bc}4 z4eRWmP~)L=F4=x-HdvlMV%yv=%VRgaczbA_x*=(X%iD=CX&OkD<|U5j%ARSXw(?v#!Up5?&Leg#>Ir8W!R>Jf4wt5lQJ0J{r=iCa znUPYrkuI}q!9*DlGkX!S*%dAsj4@aA)haG_B&py$HOOJ0QYAY*b;NrRs)#0 z0>y}!_6S)bNtnZtcL^fJ*ob23S(Ok)SM~hu95XMNTGe?d{S$XE|y?53m=IFMjMMf&zFSQrc9w}$ol(fB8*p+jN+TrghLSg{}xk^XK~ zw3tz%DG4W4ejvhZbg9D=ggWJ@u8UfTl*4kJf2W<8Bs z1`<$WTdRtVAhYHVSln4FI8Zm}YrU(z0v>$w;M4~V*jk%VxJ%r%`H_sSd^zvr>8@ip zMqOC!$uJk{z8anZRCDIDi>5{5RZiSlYbS;Op)ov&=i8+JpTHVb`0(dm133t#NnhdB zXPP@?I7u6j<1H|JA0NJQadS+)J2z;YfJ$p~&DhoIuu} zjHaO&;!ClWSYu)mmJ<_@%B%#Sb2z3LWE>py*vyX#O*GVv1hLd(hbl(d){)+53D$^V zcxmL6L++%OmsPITppJk2ccu+o9>UyfT)KHrP=T3t&70!UVN-vTfN3QY5K@^Xl4QcA z4Px?X=Ru4m1vHtHj7CJwDppC_RindcszpWa)#s=XgLZ={UD6PCpcRC?Sm1t}J{kaP zbJF*!Y(>n9TBwLJIE}9D#1)ON^GsEYuuOT^kg?l1ctnY^Uj2iJv(6l2h_rQGCWf`B p4yv8Ds1lcLae#h%n`(xVD{2rajEgRK>$2OfG~UMRAS(o*06UHcpOpXr literal 0 HcmV?d00001 diff --git a/doc/images/dec_tria_1.gif b/doc/images/dec_tria_1.gif new file mode 100644 index 0000000000000000000000000000000000000000..e09ed1f35a42a7f0f0e394c9d93e238b953da8e1 GIT binary patch literal 1089 zcmV-H1it%6Nk%w1VUGb=0Pz3-|Ns900My+G1^@s6EC2ui0FMD!009F3gpaAq?H0nD zwAzca-n@Ghed0)#rW1wd%C_!HrV>oo_9d(L&i8(koBf8wkxEufDwmvNiV2N^bV#Z7 zT6{vZ*e;KI0DH&ek{ECu3PhU3sZo_d zzet5z$4bg@S8-LvYND&rufN19R0`IhCbSjF{@9w94H>v)*@iV65-$$DQ24U53)b&m zx1IpApc^-)9K@dl$25G?@n6VSBm*U!xF6*fmTzo!!MN6d0Xsf(?hFIToAhDZpm>j@ZPK@u+{AUu-6!00a?lowJAV#6y7cMPaYhh;J-hbp+`D`K z4nDm2?6TpgUPY6-`t|JF=S~`6y!`p}>w7OBZ+VULHl(Bf&pru&`~gG@eu@;gf(qI> zg54?lnem_v1`_hxX+kVW2!IX(2TO#ddFaR)8ul?_Gi@m|;Xs{Wct?YmfcRKO1O9;u zi*S^f4vc4U*p!Zo#bP5FIKKF!IVo}#RFGb{I2MgODsp5uUk!N$m9jhuTSPvV0*;bV zSh*3GD$W>%I$kotgq58GN`tWcJMTP?bb`Z?|c?Q)Bjx=y~LSGMGqtDKng_XR4MQT9n%_6!G0VJDHanu`!UF@iQHqe zsXaPz#l2ysv7;`ZR)(x8gX#^-8Q*Miu+PeD?v4*T{3FoC{zI>Amklbq`Hdeis9$-gJHlTxGc(%$89*t|=t17~s zo16qec;SX0j(FmVFV1-5jz6wA!jMl+dF7TGUyga^ns3f|=bk?<`RAgKPI~ElpN@J3 H1fT#rZ)Y2w literal 0 HcmV?d00001 diff --git a/doc/images/dec_tria_2.gif b/doc/images/dec_tria_2.gif new file mode 100644 index 0000000000000000000000000000000000000000..3530fc6519be4f5902ef05bbda6165ef35842737 GIT binary patch literal 991 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 GL;ne@-OX(P literal 0 HcmV?d00001 diff --git a/doc/images/hexa2aretes.png b/doc/images/hexa2aretes.png new file mode 100644 index 0000000000000000000000000000000000000000..5d258733b09c56d3aca0e9fc50461f97e8da9285 GIT binary patch literal 3677 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 literal 0 HcmV?d00001 diff --git a/doc/images/hexaface.png b/doc/images/hexaface.png new file mode 100644 index 0000000000000000000000000000000000000000..6eff557bfdda506140d6bff3da592983f858e1c4 GIT binary patch literal 3431 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 Tf2V|beTcSOs^jO>e+v39e}4I1 literal 0 HcmV?d00001 -- 2.39.2