8 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é.
10 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.
12 HOMARD sait traiter des maillages en 2 ou 3 dimensions et comportant les mailles suivantes :
21 Ces mailles peuvent être présentes simultanément. Par exemple, HOMARD saura adapter un maillage comportant des triangles et des quadrangles.
22 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 asee 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.
24 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`).
26 Plusieurs motivations apparaissent pour adapter un maillage :
28 - on veut simplifier la réalisation du maillage d'une géométrie complexe : on part d'un maillage grossier et on confie à un processus automatique la charge de le raffiner.
29 - on veut s'assurer de la convergence de la solution numérique : plutôt que de réaliser à la main des maillages de plus en plus fins, on laisse le logiciel chercher lui-même les endroits où il faudrait affiner le maillage pour augmenter la précision du résultat.
30 - 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.
32 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.
35 Broadly speaking, an iteration for meshing adaptation is as shown on the figure below. The finite element software calculates the numerical solution on meshing Mk, then, from that, deduces the values for the error indicator over the whole meshing. Based on the knowledge of meshing #k and indicator #k, HOMARD generates a new meshing #k+1.
37 .. image:: images/intro_1.png
40 The complete chain starts from the initial meshing, then incorporates successive links (calculation of indicator / adaptation).
42 .. image:: ../images/intro_2.png
45 Some variations may exist. If no error indicator is available, another filed can be used to drive the adaptation. A stress field in mechanics can be used: the refinement of the elements where the stress is high is often efficient to improve the quality of the results. It is also possible to drive the adaptation according the variation of a filed from one element to its neighbours. The refinement can be filtered by zones or groups of elements.
48 For a extensive description of HOMARD, see :download:`Description générale de HOMARD <../files/HOMARD_0.pdf>`.
51 To quote HOMARD, please refer to:
53 G. Nicolas and T. Fouquet, Adaptive Mesh Refinement for Conformal Hexahedral Meshes, "*Finite Elements in Analysis and Design*", Vol. 67, pp. 1-12, 2013, doi:10.1016/j.finel.2012.11.008
56 `Available here <http://dx.doi.org/10.1016/j.finel.2012.11.008>`_
58 Methods for splitting the elements
59 **********************************
60 .. index:: single: splitting
61 .. index:: single: conformity
63 All in all, the process of meshing adaptation by splitting element is a two-tier process. First, all element specified by the error indicator are split. The resulting meshing is uncorrect : nodes are pending at the junction between areas to be refined, and an area to be retained. The second stage aims at solving all of these conformity problems.
65 There are different splitting methods for the two phases. During the first phase, all of the element are split in the same manner ; this is the so-called standard splitting. During the second phase, some of the meshing conformity conflicts in the junction area are settled by the same standard splitting of element, while others are settled by special splitting.
67 The various splitting modes have been choosen to preserve the mesh quality, all along the adaptive process.
71 Standard element splitting is carried out with a view to restricting the number of cases. Thus, edges are split into two equal sections.
73 To split a triangle, the three edges are split into two sections each, thus producing four similar triangles. They retain the same quality.
75 .. image:: ../images/dec_tria_1.gif
77 :alt: Découpage standard d'un triangle
81 To split a quadrangle, the four edges are split into two sections each, thus producing four non-similar quadrangles with different quality.
83 .. image:: ../images/dec_quad_1.png
85 :alt: Découpage standard d'un quadrangle
88 Tetrahedrons are split in eight. First, each of the triangular faces is split into 4 similar triangular faces.
90 .. image:: ../images/dec_tetr_1.gif
92 :alt: Découpage standard d'un tétraèdre - 1
96 Face splitting produces four tetrahedrons at the angles of the initial tetrahedron. It should be noted that the four new tetrahedrons are homothetic to the initial tetrahedron. Therefore, they retain the same qualities.
98 .. image:: ../images/dec_tetr_2.gif
100 :alt: Découpage standard d'un tétraèdre - 2
104 At the core of the tetrahedron, there remains a block shaped like two pyramids joined at their bases. An edge is generated using one of the three possible diagonals, then the four faces containing the edge, and two external edges.
106 .. image:: ../images/dec_tetr_3.gif
108 :alt: Découpage standard d'un tétraèdre - 3
112 This, in turn, creates 4 new tetrahedrons. It should be noted that they are similar two by two but that they can never be similar to the initial tetrahedron. They can therefore never have the same quality as the initial tetrahedron. However, different results are obtained, depending on the diagonal selected for splitting the internal pyramidal block. Where quality is concerned, it is always best to select the smallest of the three possible diagonals.
114 .. image:: ../images/dec_tetr_4.gif
116 :alt: Découpage standard d'un tétraèdre - 4
120 Hexaedrons are split in eight. Each of the quadrangular faces is split into 4 quadrangular faces. Edges are created connecting each centre of opposite faces. This generates a new point located at the centre of the hexaedron.
122 .. image:: ../images/dec_hex.png
124 :alt: Découpage standard d'un hexaèdre
127 Pentaedrons are split in eight. Each of the quadrangular faces is split into 4 quadrangular faces and the two triangles are split into 4. Edges are created connecting each centre of quadrangular faces. Those 3 edges create 4 triangles at the centre of the pentaedron. Six quandrangular faces are created to complete the construction of the height pentaedrons.
129 .. image:: ../images/dec.pent.png
131 :alt: Découpage standard d'un pentaèdre
134 Splitting for the conformity
135 ============================
137 Splitting for conformity is applicable to the elements at the interface between two different levels of refinement. Such splitting may produce element of lower quality compared to the initial element, and in the general algorithm, one sees how this drawback is reckoned with to reduce its consequences.
139 For triangles, one of the three edges is split in two. Its middle is joined to the opposite vertex to form two additional triangles.
141 .. image:: ../images/dec_tria_2.gif
143 :alt: Découpage de conformité d'un triangle
147 For quadrangles, one of the four edges is split in two. Its middle is joined to the opposite vertex to form three triangles. The mesh obtained is then mixed.
149 .. image:: ../images/dec_quad_2.png
151 :alt: Découpage de conformité d'un quadrangle
154 For a tetrahedron with three split edges, this is possible only if the edges are concurrent. Therefore, one of the four faces is split in four. The middles of the split edges are joined to the opposite vertexes. The three other faces are thus split in two, and four tetrahedrons are created.
156 .. image:: ../images/dec_tetr_5.gif
158 :alt: Découpage de conformité d'un tétraèdre - 1
162 For a tetrahedron with two split edges, this is possible only if the edges are opposite. All the middles of these edges are joined to the other apexes, as well as the edge middles. The four faces are split in two, and four tetrahedrons are created.
164 .. image:: ../images/dec_tetr_6.gif
166 :alt: Découpage de conformité d'un tétraèdre - 2
170 For a tetrahedron with one split edge, the middle of the split edge is joined to the opposite apex, and two tetrahedrons are created.
172 .. image:: ../images/dec_tetr_6.gif
174 :alt: Découpage de conformité d'un tétraèdre - 3
178 The conformal strategy for the hexaedrons is based on tetraedrons and pyramids. The situation depends on the number of non conformities.
180 For an hexaedron with one face cut, we create 4 edges, 4 tetraedrons and 5 pyramids.
182 .. image:: ../images/hexaface.png
184 :alt: Découpage de conformité d'un hexaèdre - 1 face
188 For an hexaedron with only one edge cut, we create deux internal edges and four pyramids.
190 .. image:: ../images/hexa1arete.png
192 :alt: Découpage de conformité d'un hexaèdre - 1 arête
196 For an hexaedron with two edges cut, we create one central point 10 edges, 12 tetraedrons and 2 pyramids.
198 .. image:: ../images/hexa2aretes.png
200 :alt: Découpage de conformité d'un hexaèdre - 2 arêtes
204 For an hexaedron with three edges cut, we create one central point, 11 edges and 18 tetraedrons.
206 .. image:: ../images/hexa3aretes.png
208 :alt: Découpage de conformité d'un hexaèdre - 3 arêtes
216 .. index:: single: algorithm
218 The strategy adopted for the algorithm in HOMARD consists in forcing splitting in four for all faces with two hanging nodes. Eventually, only the faces with non conformity points are faces where one and only edge is split. The simplest possible solution is thus used for conformity as seen before. The latter stage of conformity introduces element of modified quality compared to that of the element it originated from. This drawback remains under control as we have chosen to grant a temporary status to the conformity element: they exist to produce a meshing acceptable by the calculation softwares, but they disappear if they are required to be further split. As a consequence, quality loss does not propagate along iterations of meshing adaptation, and remains restricted in value as well as in number of element concerned.
222 * Transfer of refining or coarsening indications over element into decisions to split or group edges, triangles and quadrangles.
223 * Removal of temporary compliance element.
224 * By considering all triangles and quadrangles from the lowest splitting level to the highest splitting level, conflict solving on coarsening using the basic rules.
225 * By considering all triangles and quadrangles from the lowest splitting level to the highest splitting level, conflict solving on refining using the basic rules.
226 * Effective generation of new meshing : standard splitting, compliance tracking.
229 Some illustrations of adapted meshes
230 ************************************
231 .. index:: single: illustration
233 Some examples of use case can be found into :ref:`applications` .
235 +---------------------------------------------------------------+
236 +---------------------------------------------------------------+
238 | .. image:: ../images/intro_3.png |
241 +---------------------------------------------------------------+
243 | .. image:: ../images/intro_4.png |
246 +---------------------------------------------------------------+
248 | .. image:: ../images/intro_5.png |
251 +---------------------------------------------------------------+
253 | .. image:: ../images/intro_6.png |
256 +---------------------------------------------------------------+
258 | .. image:: ../images/intro_7.png |
261 +---------------------------------------------------------------+
263 | .. image:: ../images/intro_8.gif |
266 +---------------------------------------------------------------+