]> SALOME platform Git repositories - modules/homard.git/blob - doc/en/intro.rst
Salome HOME
images en anglais
[modules/homard.git] / doc / en / intro.rst
1 .. _intro:
2
3 Introduction
4 ############
5
6 General presentation
7 ********************
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é.
9
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.
11
12 HOMARD sait traiter des maillages en 2 ou 3 dimensions et comportant les mailles suivantes :
13    - mesh-points
14    - segments
15    - triangles
16    - quadrangles
17    - tetrahedra
18    - hexahaedra
19    - prisms
20
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.
23
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`).
25
26 Plusieurs motivations apparaissent pour adapter un maillage :
27
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.
31
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.
33
34
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.
36
37 .. image:: images/intro_1.png
38    :align: center
39
40 The complete chain starts from the initial meshing, then incorporates successive links (calculation of indicator / adaptation).
41
42 .. image:: ../images/intro_2.png
43    :align: center
44
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.
46
47 .. note::
48   For a extensive description of HOMARD, see :download:`Description générale de HOMARD <../files/HOMARD_0.pdf>`.
49
50 .. note::
51   To quote HOMARD, please refer to:
52
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
54
55
56   `Available here <http://dx.doi.org/10.1016/j.finel.2012.11.008>`_
57
58 Methods for splitting the elements
59 **********************************
60 .. index:: single: splitting
61 .. index:: single: conformity
62
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.
64
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.
66
67 The various splitting modes have been choosen to preserve the mesh quality, all along the adaptive process.
68
69 Standard splitting
70 ==================
71 Standard element splitting is carried out with a view to restricting the number of cases. Thus, edges are split into two equal sections.
72
73 To split a triangle, the three edges are split into two sections each, thus producing four similar triangles. They retain the same quality.
74
75 .. image:: ../images/dec_tria_1.gif
76    :align: center
77    :alt: Découpage standard d'un triangle
78    :width: 399
79    :height: 88
80
81 To split a quadrangle, the four edges are split into two sections each, thus producing four non-similar quadrangles with different quality.
82
83 .. image:: ../images/dec_quad_1.png
84    :align: center
85    :alt: Découpage standard d'un quadrangle
86    :width: 399
87
88 Tetrahedrons are split in eight. First, each of the triangular faces is split into 4 similar triangular faces.
89
90 .. image:: ../images/dec_tetr_1.gif
91    :align: center
92    :alt: Découpage standard d'un tétraèdre - 1
93    :width: 328
94    :height: 115
95
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.
97
98 .. image:: ../images/dec_tetr_2.gif
99    :align: center
100    :alt: Découpage standard d'un tétraèdre - 2
101    :width: 201
102    :height: 159
103
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.
105
106 .. image:: ../images/dec_tetr_3.gif
107    :align: center
108    :alt: Découpage standard d'un tétraèdre - 3
109    :width: 244
110    :height: 74
111
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.
113
114 .. image:: ../images/dec_tetr_4.gif
115    :align: center
116    :alt: Découpage standard d'un tétraèdre - 4
117    :width: 229
118    :height: 116
119
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.
121
122 .. image:: ../images/dec_hex.png
123    :align: center
124    :alt: Découpage standard d'un hexaèdre
125    :scale: 70
126
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.
128
129 .. image:: ../images/dec.pent.png
130    :align: center
131    :alt: Découpage standard d'un pentaèdre
132    :scale: 20
133
134 Splitting for the conformity
135 ============================
136
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.
138
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.
140
141 .. image:: ../images/dec_tria_2.gif
142    :align: center
143    :alt: Découpage de conformité d'un triangle
144    :width: 399
145    :height: 88
146
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.
148
149 .. image:: ../images/dec_quad_2.png
150    :align: center
151    :alt: Découpage de conformité d'un quadrangle
152    :width: 399
153
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.
155
156 .. image:: ../images/dec_tetr_5.gif
157    :align: center
158    :alt: Découpage de conformité d'un tétraèdre - 1
159    :width: 116
160    :height: 116
161
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.
163
164 .. image:: ../images/dec_tetr_6.gif
165    :align: center
166    :alt: Découpage de conformité d'un tétraèdre - 2
167    :width: 116
168    :height: 116
169
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.
171
172 .. image:: ../images/dec_tetr_6.gif
173    :align: center
174    :alt: Découpage de conformité d'un tétraèdre - 3
175    :width: 116
176    :height: 116
177
178 The conformal strategy for the hexaedrons is based on tetraedrons and pyramids. The situation depends on the number of non conformities.
179
180 For an hexaedron with one face cut, we create 4 edges, 4 tetraedrons and 5 pyramids.
181
182 .. image:: ../images/hexaface.png
183    :align: center
184    :alt: Découpage de conformité d'un hexaèdre - 1 face
185    :width: 384
186    :height: 101
187
188 For an hexaedron with only one edge cut, we create deux internal edges and four pyramids.
189
190 .. image:: ../images/hexa1arete.png
191    :align: center
192    :alt: Découpage de conformité d'un hexaèdre - 1 arête
193    :width: 384
194    :height: 101
195
196 For an hexaedron with two edges cut, we create one central point 10 edges, 12 tetraedrons and 2 pyramids.
197
198 .. image:: ../images/hexa2aretes.png
199    :align: center
200    :alt: Découpage de conformité d'un hexaèdre - 2 arêtes
201    :width: 384
202    :height: 101
203
204 For an hexaedron with three edges cut, we create one central point, 11 edges and 18 tetraedrons.
205
206 .. image:: ../images/hexa3aretes.png
207    :align: center
208    :alt: Découpage de conformité d'un hexaèdre - 3 arêtes
209    :width: 384
210    :height: 101
211
212
213
214 Algorithm
215 *********
216 .. index:: single: algorithm
217
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.
219
220 The algorithm is:
221
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.
227
228
229 Some illustrations of adapted meshes
230 ************************************
231 .. index:: single: illustration
232
233 Some examples of use case can be found into :ref:`applications` .
234
235 +---------------------------------------------------------------+
236 +---------------------------------------------------------------+
237 |                                                               |
238 | .. image:: ../images/intro_3.png                              |
239 |    :align: center                                             |
240 |                                                               |
241 +---------------------------------------------------------------+
242 |                                                               |
243 | .. image:: ../images/intro_4.png                              |
244 |    :align: center                                             |
245 |                                                               |
246 +---------------------------------------------------------------+
247 |                                                               |
248 | .. image:: ../images/intro_5.png                              |
249 |    :align: center                                             |
250 |                                                               |
251 +---------------------------------------------------------------+
252 |                                                               |
253 | .. image:: ../images/intro_6.png                              |
254 |    :align: center                                             |
255 |                                                               |
256 +---------------------------------------------------------------+
257 |                                                               |
258 | .. image:: ../images/intro_7.png                              |
259 |    :align: center                                             |
260 |                                                               |
261 +---------------------------------------------------------------+
262 |                                                               |
263 | .. image:: ../images/intro_8.gif                              |
264 |    :align: center                                             |
265 |                                                               |
266 +---------------------------------------------------------------+
267