Arcane  v4.1.1.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
CartesianMeshNumberingMng.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* CartesianMeshNumberingMng.h (C) 2000-2025 */
9/* */
10/* Gestionnaire de numérotation de maillage cartesian. La numérotation */
11/* utilisée ici est la même que celle utilisée dans la renumérotation V2. */
12/*---------------------------------------------------------------------------*/
13/*---------------------------------------------------------------------------*/
14
15#ifndef ARCANE_CARTESIANMESH_CARTESIANMESHNUMBERINGMNG_H
16#define ARCANE_CARTESIANMESH_CARTESIANMESHNUMBERINGMNG_H
17
18/*---------------------------------------------------------------------------*/
19/*---------------------------------------------------------------------------*/
20
21#include "arcane/cartesianmesh/CartesianMeshGlobal.h"
22
23#include "arcane/utils/Ref.h"
24#include "arcane/core/Item.h"
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
29namespace Arcane
30{
31
32/*---------------------------------------------------------------------------*/
33/*---------------------------------------------------------------------------*/
34
35class ICartesianMeshNumberingMngInternal;
36
37/*---------------------------------------------------------------------------*/
38/*---------------------------------------------------------------------------*/
39
40/*!
41 * \brief Interface de gestionnaire de numérotation pour maillage cartesian.
42 *
43 * Dans ces gestionnaires, on considère que l'on a un intervalle d'uniqueIds
44 * attribué à chaque niveau du maillage.
45 *
46 * \warning Le maillage ne doit pas être renuméroté si cette numérotation est
47 * utilisée.
48 */
49class ARCANE_CARTESIANMESH_EXPORT CartesianMeshNumberingMng
50{
51 public:
52
53 explicit CartesianMeshNumberingMng(ICartesianMesh* mesh);
54
55 public:
56
57 /*!
58 * \brief Méthode permettant de décrire l'état de l'objet.
59 */
60 void printStatus() const;
61
62 /*!
63 * \brief Méthode permettant de récupérer le premier unique id utilisé par les mailles d'un niveau.
64 * L'appel de cette méthode avec level et level+1 permet de récupérer l'intervalle des uniqueids
65 * d'un niveau.
66 *
67 * \param level Le niveau.
68 * \return Le premier uid des mailles du niveau.
69 */
70 Int64 firstCellUniqueId(Integer level) const;
71
72 /*!
73 * \brief Méthode permettant de récupérer le premier unique id utilisé par les noeuds d'un niveau.
74 * L'appel de cette méthode avec level et level+1 permet de récupérer l'intervalle des uniqueids
75 * d'un niveau.
76 *
77 * \param level Le niveau.
78 * \return Le premier uid des noeuds du niveau.
79 */
80 Int64 firstNodeUniqueId(Integer level) const;
81
82 /*!
83 * \brief Méthode permettant de récupérer le premier unique id utilisé par les faces d'un niveau.
84 * L'appel de cette méthode avec level et level+1 permet de récupérer l'intervalle des uniqueids
85 * d'un niveau.
86 *
87 * \param level Le niveau.
88 * \return Le premier uid des faces du niveau.
89 */
90 Int64 firstFaceUniqueId(Integer level) const;
91
92 /*!
93 * \brief Méthode permettant de récupérer le nombre de mailles global en X d'un niveau.
94 *
95 * \param level Le niveau.
96 * \return Le nombre de mailles en X.
97 */
98 Int64 globalNbCellsX(Integer level) const;
99
100 /*!
101 * \brief Méthode permettant de récupérer le nombre de mailles global en Y d'un niveau.
102 *
103 * \param level Le niveau.
104 * \return Le nombre de mailles en Y.
105 */
106 Int64 globalNbCellsY(Integer level) const;
107
108 /*!
109 * \brief Méthode permettant de récupérer le nombre de mailles global en Z d'un niveau.
110 *
111 * \param level Le niveau.
112 * \return Le nombre de mailles en Z.
113 */
114 Int64 globalNbCellsZ(Integer level) const;
115
116 /*!
117 * \brief Méthode permettant de récupérer le nombre de noeuds global en X d'un niveau.
118 *
119 * \param level Le niveau.
120 * \return Le nombre de noeuds en X.
121 */
122 Int64 globalNbNodesX(Integer level) const;
123
124 /*!
125 * \brief Méthode permettant de récupérer le nombre de noeuds global en Y d'un niveau.
126 *
127 * \param level Le niveau.
128 * \return Le nombre de noeuds en Y.
129 */
130 Int64 globalNbNodesY(Integer level) const;
131
132 /*!
133 * \brief Méthode permettant de récupérer le nombre de noeuds global en Z d'un niveau.
134 *
135 * \param level Le niveau.
136 * \return Le nombre de noeuds en Z.
137 */
138 Int64 globalNbNodesZ(Integer level) const;
139
140 /*!
141 * \brief Méthode permettant de récupérer le nombre de faces global en X d'un niveau.
142 *
143 * Admettons que l'on ai les faces suivantes :
144 * ┌─0──┬──2─┐
145 * 4│ 6│ 8│
146 * ├─5──┼─7──┤
147 * 9│ 11│ 13│
148 * └─10─┴─12─┘
149 *
150 * Donc, on a 2x2 mailles.
151 * En X, on a 3 faces.
152 *
153 * Pour le nombre de faces en vue cartésienne, voir \a globalNbFacesXCartesianView.
154 *
155 * \param level Le niveau.
156 * \return Le nombre de faces en X.
157 */
158 Int64 globalNbFacesX(Integer level) const;
159
160 /*!
161 * \brief Méthode permettant de récupérer le nombre de faces global en Y d'un niveau.
162 *
163 * Admettons que l'on ai les faces suivantes :
164 * ┌─0──┬──2─┐
165 * 4│ 6│ 8│
166 * ├─5──┼─7──┤
167 * 9│ 11│ 13│
168 * └─10─┴─12─┘
169 *
170 * Donc, on a 2x2 mailles.
171 * En Y, on a 3 faces.
172 *
173 * Pour le nombre de faces en vue cartésienne, voir \a globalNbFacesYCartesianView.
174 *
175 * \param level Le niveau.
176 * \return Le nombre de faces en Y.
177 */
178 Int64 globalNbFacesY(Integer level) const;
179
180 /*!
181 * \brief Méthode permettant de récupérer le nombre de faces global en Z d'un niveau.
182 *
183 * Admettons que l'on ai les faces suivantes :
184 * ┌─0──┬──2─┐
185 * 4│ 6│ 8│
186 * ├─5──┼─7──┤
187 * 9│ 11│ 13│
188 * └─10─┴─12─┘
189 *
190 * Si on a 2x2x2 mailles, on aura, en Z, 3 faces.
191 *
192 * Pour le nombre de faces en vue cartésienne, voir \a globalNbFacesZCartesianView.
193 *
194 * \param level Le niveau.
195 * \return Le nombre de faces en Z.
196 */
197 Int64 globalNbFacesZ(Integer level) const;
198
199 /*!
200 * \brief Méthode permettant de récupérer la taille de la vue "grille cartésienne"
201 * contenant les faces.
202 *
203 * En 2D, on peut avoir cette vue (pour un maillage de 2x2 mailles) :
204 * x = 0 1 2 3 4
205 * ┌──┬──┬──┬──┬──┐
206 * y = -1 │ 0│ │ 2│ │ 4│
207 * ┌──┬──┬──┬──┬──┐
208 * y │ │ 1│ │ 3│ │
209 * ├──┼──┼──┼──┼──┤
210 * y = 1 │ 5│ │ 7│ │ 9│
211 * ├──┼──┼──┼──┼──┤
212 * y = 2 │ │ 6│ │ 8│ │
213 * ├──┼──┼──┼──┼──┤
214 * y = 3 │10│ │12│ │14│
215 * ├──┼──┼──┼──┼──┤
216 * y = 4 │ │11│ │13│ │
217 * └──┴──┴──┴──┴──┘
218 * (dans cette vue, les mailles se situent aux X et Y impaires
219 * (donc ici, [1, 1], [3, 1], [1, 3] et [3, 3])).
220 *
221 * \note En 2D, on considère que l'on a un niveau imaginaire y=-1.
222 * \warning Afin de commencer la numérotation à 0, dans les méthodes
223 * retournant un uniqueId de face 2D, on fait FaceUID-1.
224 *
225 * Et en 3D (pour un maillage de 2x2x2 mailles) :
226 * z │ z = 1 │ z = 2 │ z = 3 │ z = 4
227 * x = 0 1 2 3 4 │ 0 1 2 3 4 │ 0 1 2 3 4 │ 0 1 2 3 4 │ 0 1 2 3 4
228 * ┌──┬──┬──┬──┬──┐ │ ┌──┬──┬──┬──┬──┐ │ ┌──┬──┬──┬──┬──┐ │ ┌──┬──┬──┬──┬──┐ │ ┌──┬──┬──┬──┬──┐
229 * y │ │ │ │ │ │ │ │ │24│ │25│ │ │ │ │ │ │ │ │ │ │ │30│ │31│ │ │ │ │ │ │ │ │
230 * ├──┼──┼──┼──┼──┤ │ ├──┼──┼──┼──┼──┤ │ ├──┼──┼──┼──┼──┤ │ ├──┼──┼──┼──┼──┤ │ ├──┼──┼──┼──┼──┤
231 * y = 1 │ │ 0│ │ 1│ │ │ │12│ │13│ │14│ │ │ │ 4│ │ 5│ │ │ │18│ │19│ │20│ │ │ │ 8│ │ 9│ │
232 * ├──┼──┼──┼──┼──┤ │ ├──┼──┼──┼──┼──┤ │ ├──┼──┼──┼──┼──┤ │ ├──┼──┼──┼──┼──┤ │ ├──┼──┼──┼──┼──┤
233 * y = 2 │ │ │ │ │ │ │ │ │26│ │27│ │ │ │ │ │ │ │ │ │ │ │32│ │33│ │ │ │ │ │ │ │ │
234 * ├──┼──┼──┼──┼──┤ │ ├──┼──┼──┼──┼──┤ │ ├──┼──┼──┼──┼──┤ │ ├──┼──┼──┼──┼──┤ │ ├──┼──┼──┼──┼──┤
235 * y = 3 │ │ 2│ │ 3│ │ │ │15│ │16│ │17│ │ │ │ 6│ │ 7│ │ │ │21│ │22│ │23│ │ │ │10│ │11│ │
236 * ├──┼──┼──┼──┼──┤ │ ├──┼──┼──┼──┼──┤ │ ├──┼──┼──┼──┼──┤ │ ├──┼──┼──┼──┼──┤ │ ├──┼──┼──┼──┼──┤
237 * y = 4 │ │ │ │ │ │ │ │ │28│ │29│ │ │ │ │ │ │ │ │ │ │ │34│ │35│ │ │ │ │ │ │ │ │
238 * └──┴──┴──┴──┴──┘ │ └──┴──┴──┴──┴──┘ │ └──┴──┴──┴──┴──┘ │ └──┴──┴──┴──┴──┘ │ └──┴──┴──┴──┴──┘
239 * │ │ │ │
240 *
241 * (dans cette vue, les mailles se situent aux X, Y et Z impaires
242 * (donc ici, [1, 1, 1], [3, 1, 1], [1, 3, 1], &c)).
243 *
244 * \param level Le niveau.
245 * \return La taille de la grille en X.
246 */
248
249 /*!
250 * \brief Méthode permettant de récupérer la taille de la vue "grille cartésienne"
251 * contenant les faces.
252 *
253 * Un exemple de cette vue est disponible dans la documentation de \a globalNbFacesXCartesianView.
254 *
255 * \param level Le niveau.
256 * \return La taille de la grille en Y.
257 */
259
260 /*!
261 * \brief Méthode permettant de récupérer la taille de la vue "grille cartésienne"
262 * contenant les faces.
263 *
264 * Un exemple de cette vue est disponible dans la documentation de \a globalNbFacesXCartesianView.
265 *
266 * \param level Le niveau.
267 * \return La taille de la grille en Z.
268 */
270
271 /*!
272 * \brief Méthode permettant de récupérer le nombre de mailles total dans un niveau.
273 *
274 * \param level Le niveau.
275 * \return Le nombre de mailles dans le niveau.
276 */
277 Int64 nbCellInLevel(Integer level) const;
278
279 /*!
280 * \brief Méthode permettant de récupérer le nombre de noeuds total dans un niveau.
281 *
282 * \param level Le niveau.
283 * \return Le nombre de noeuds dans le niveau.
284 */
285 Int64 nbNodeInLevel(Integer level) const;
286
287 /*!
288 * \brief Méthode permettant de récupérer le nombre de faces total dans un niveau.
289 *
290 * \param level Le niveau.
291 * \return Le nombre de faces dans le niveau.
292 */
293 Int64 nbFaceInLevel(Integer level) const;
294
295 /*!
296 * \brief Méthode permettant de récupérer le pattern de raffinement utilisé dans chaque maille.
297 * Par exemple, si le pattern vaut 2, chaque maille parente aura 2*2 mailles filles (2*2*2 en 3D).
298 *
299 * \return Le pattern de raffinement.
300 */
301 Integer pattern() const;
302
303 /*!
304 * \brief Méthode permettant de récupérer le niveau d'une maille avec son uid.
305 *
306 * \param uid L'uniqueId de la maille.
307 * \return Le niveau de la maille.
308 */
309 Int32 cellLevel(Int64 uid) const;
310
311 /*!
312 * \brief Méthode permettant de récupérer le niveau d'un noeud avec son uid.
313 *
314 * \param uid L'uniqueId du noeud.
315 * \return Le niveau du noeud.
316 */
317 Int32 nodeLevel(Int64 uid) const;
318
319 /*!
320 * \brief Méthode permettant de récupérer le niveau d'une face avec son uid.
321 *
322 * \param uid L'uniqueId de la face.
323 * \return Le niveau de la face.
324 */
325 Int32 faceLevel(Int64 uid) const;
326
327 /*!
328 * \brief Méthode permettant d'obtenir la position du premier noeud/maille fille à partir de la position
329 * du noeud/maille parent.
330 *
331 * Exemple : si l'on a un maillage 2D de 2*2 mailles et un pattern de raffinement de 2,
332 * on sait que la grille de niveau 1 (pour les patchs de niveau 1) sera de 4*4 mailles.
333 * Le premier noeud/maille fille du noeud/maille parent (Xp=1,Yp=0) aura la position Xf=Xp*Pattern=2 (idem pour Y).
334 *
335 * \param coord La position X ou Y ou Z du noeud/maille parent.
336 * \param level_from Le niveau parent.
337 * \param level_to Le niveau enfant.
338 * \return La position de la première fille du noeud/maille parent.
339 */
340 Int64 offsetLevelToLevel(Int64 coord, Integer level_from, Integer level_to) const;
341
342 /*!
343 * \brief Méthode permettant d'obtenir la position de la première face enfant à partir de la position
344 * de la face parente.
345 *
346 * Attention, les coordonnées utilisées ici sont les coordonnées des faces en "vue cartésienne"
347 * (voir \a globalNbFacesXCartesianView ).
348 *
349 * \param coord La position X ou Y ou Z de la face parente.
350 * \param level_from Le niveau parent.
351 * \param level_to Le niveau enfant.
352 * \return La position du premier enfant de la face parente.
353 */
354 Int64 faceOffsetLevelToLevel(Int64 coord, Integer level_from, Integer level_to) const;
355
356 /*!
357 * \brief Méthode permettant de récupérer la coordonnée en X d'une maille grâce à son uniqueId.
358 *
359 * \param uid L'uniqueId de la maille.
360 * \param level Le niveau de la maille.
361 * \return La position en X de la maille.
362 */
363 Int64 cellUniqueIdToCoordX(Int64 uid, Integer level) const;
364
365 /*!
366 * \brief Méthode permettant de récupérer la coordonnée en X d'une maille.
367 *
368 * \param cell La maille.
369 * \return La position en X de la maille.
370 */
371 Int64 cellUniqueIdToCoordX(Cell cell) const;
372
373 /*!
374 * \brief Méthode permettant de récupérer la coordonnée en Y d'une maille grâce à son uniqueId.
375 *
376 * \param uid L'uniqueId de la maille.
377 * \param level Le niveau de la maille.
378 * \return La position en Y de la maille.
379 */
380 Int64 cellUniqueIdToCoordY(Int64 uid, Integer level) const;
381
382 /*!
383 * \brief Méthode permettant de récupérer la coordonnée en Y d'une maille.
384 *
385 * \param cell La maille.
386 * \return La position en Y de la maille.
387 */
388 Int64 cellUniqueIdToCoordY(Cell cell) const;
389
390 /*!
391 * \brief Méthode permettant de récupérer la coordonnée en Z d'une maille grâce à son uniqueId.
392 *
393 * \param uid L'uniqueId de la maille.
394 * \param level Le niveau de la maille.
395 * \return La position en Z de la maille.
396 */
397 Int64 cellUniqueIdToCoordZ(Int64 uid, Integer level) const;
398
399 /*!
400 * \brief Méthode permettant de récupérer la coordonnée en Z d'une maille.
401 *
402 * \param cell La maille.
403 * \return La position en Z de la maille.
404 */
405 Int64 cellUniqueIdToCoordZ(Cell cell) const;
406
407 /*!
408 * \brief Méthode permettant de récupérer la coordonnée en X d'un noeud grâce à son uniqueId.
409 *
410 * \param uid L'uniqueId du noeud.
411 * \param level Le niveau du noeud.
412 * \return La position en X du noeud.
413 */
414 Int64 nodeUniqueIdToCoordX(Int64 uid, Integer level) const;
415
416 /*!
417 * \brief Méthode permettant de récupérer la coordonnée en X d'un noeud.
418 *
419 * \param node Le noeud.
420 * \return La position en X du noeud.
421 */
422 Int64 nodeUniqueIdToCoordX(Node node) const;
423
424 /*!
425 * \brief Méthode permettant de récupérer la coordonnée en Y d'un noeud grâce à son uniqueId.
426 *
427 * \param uid L'uniqueId du noeud.
428 * \param level Le niveau du noeud.
429 * \return La position en Y du noeud.
430 */
431 Int64 nodeUniqueIdToCoordY(Int64 uid, Integer level) const;
432
433 /*!
434 * \brief Méthode permettant de récupérer la coordonnée en Y d'un noeud.
435 *
436 * \param node Le noeud.
437 * \return La position en Y du noeud.
438 */
439 Int64 nodeUniqueIdToCoordY(Node node) const;
440
441 /*!
442 * \brief Méthode permettant de récupérer la coordonnée en Z d'un noeud grâce à son uniqueId.
443 *
444 * \param uid L'uniqueId du noeud.
445 * \param level Le niveau du noeud.
446 * \return La position en Z du noeud.
447 */
448 Int64 nodeUniqueIdToCoordZ(Int64 uid, Integer level) const;
449
450 /*!
451 * \brief Méthode permettant de récupérer la coordonnée en Z d'un noeud.
452 *
453 * \param node Le noeud.
454 * \return La position en Z du noeud.
455 */
456 Int64 nodeUniqueIdToCoordZ(Node node) const;
457
458 /*!
459 * \brief Méthode permettant de récupérer la coordonnée en X d'une face grâce à son uniqueId.
460 *
461 * Attention, les coordonnées utilisées ici sont les coordonnées des faces en "vue cartésienne"
462 * (voir \a globalNbFacesXCartesianView ).
463 *
464 * \param uid L'uniqueId de la face.
465 * \param level Le niveau de la face.
466 * \return La position en X de la face.
467 */
468 Int64 faceUniqueIdToCoordX(Int64 uid, Integer level) const;
469
470 /*!
471 * \brief Méthode permettant de récupérer la coordonnée en X d'une face.
472 *
473 * Attention, les coordonnées utilisées ici sont les coordonnées des faces en "vue cartésienne"
474 * (voir \a globalNbFacesXCartesianView ).
475 *
476 * \param face La face.
477 * \return La position en X de la face.
478 */
479 Int64 faceUniqueIdToCoordX(Face face) const;
480
481 /*!
482 * \brief Méthode permettant de récupérer la coordonnée en Y d'une face grâce à son uniqueId.
483 *
484 * Attention, les coordonnées utilisées ici sont les coordonnées des faces en "vue cartésienne"
485 * (voir \a globalNbFacesXCartesianView ).
486 *
487 * \param uid L'uniqueId de la face.
488 * \param level Le niveau de la face.
489 * \return La position en Y de la face.
490 */
491 Int64 faceUniqueIdToCoordY(Int64 uid, Integer level) const;
492
493 /*!
494 * \brief Méthode permettant de récupérer la coordonnée en Y d'une face.
495 *
496 * Attention, les coordonnées utilisées ici sont les coordonnées des faces en "vue cartésienne"
497 * (voir \a globalNbFacesXCartesianView ).
498 *
499 * \param face La face.
500 * \return La position en Y de la face.
501 */
502 Int64 faceUniqueIdToCoordY(Face face) const;
503
504 /*!
505 * \brief Méthode permettant de récupérer la coordonnée en Z d'une face grâce à son uniqueId.
506 *
507 * Attention, les coordonnées utilisées ici sont les coordonnées des faces en "vue cartésienne"
508 * (voir \a globalNbFacesXCartesianView ).
509 *
510 * \param uid L'uniqueId de la face.
511 * \param level Le niveau de la face.
512 * \return La position en Z de la face.
513 */
514 Int64 faceUniqueIdToCoordZ(Int64 uid, Integer level) const;
515
516 /*!
517 * \brief Méthode permettant de récupérer la coordonnée en Z d'une face.
518 *
519 * Attention, les coordonnées utilisées ici sont les coordonnées des faces en "vue cartésienne"
520 * (voir \a globalNbFacesXCartesianView ).
521 *
522 * \param face La face.
523 * \return La position en Z de la face.
524 */
525 Int64 faceUniqueIdToCoordZ(Face face) const;
526
527 /*!
528 * \brief Méthode permettant de récupérer l'uniqueId d'une maille à partir de sa position et de son niveau.
529 *
530 * \param cell_coord La position de la maille.
531 * \param level Le niveau de la maille.
532 * \return L'uniqueId de la maille.
533 */
534 Int64 cellUniqueId(Int64x3 cell_coord, Integer level) const;
535
536 /*!
537 * \brief Méthode permettant de récupérer l'uniqueId d'une maille à partir de sa position et de son niveau.
538 *
539 * \param cell_coord La position de la maille.
540 * \param level Le niveau de la maille.
541 * \return L'uniqueId de la maille.
542 */
543 Int64 cellUniqueId(Int64x2 cell_coord, Integer level) const;
544
545 /*!
546 * \brief Méthode permettant de récupérer l'uniqueId d'un noeud à partir de sa position et de son niveau.
547 *
548 * \param node_coord La position du noeud.
549 * \param level Le niveau du noeud.
550 * \return L'uniqueId du noeud.
551 */
552 Int64 nodeUniqueId(Int64x3 node_coord, Integer level) const;
553
554 /*!
555 * \brief Méthode permettant de récupérer l'uniqueId d'un noeud à partir de sa position et de son niveau.
556 *
557 * \param node_coord La position du noeud.
558 * \param level Le niveau du noeud.
559 * \return L'uniqueId du noeud.
560 */
561 Int64 nodeUniqueId(Int64x2 node_coord, Integer level) const;
562
563 /*!
564 * \brief Méthode permettant de récupérer l'uniqueId d'une face à partir de sa position et de son niveau.
565 *
566 * Attention, les coordonnées utilisées ici sont les coordonnées des faces en "vue cartésienne"
567 * (voir \a globalNbFacesXCartesianView ).
568 *
569 * \param face_coord La position de la face.
570 * \param level Le niveau de la face.
571 * \return L'uniqueId de la face.
572 */
573 Int64 faceUniqueId(Int64x3 face_coord, Integer level) const;
574
575 /*!
576 * \brief Méthode permettant de récupérer l'uniqueId d'une face à partir de sa position et de son niveau.
577 *
578 * Attention, les coordonnées utilisées ici sont les coordonnées des faces en "vue cartésienne"
579 * (voir \a globalNbFacesXCartesianView ).
580 *
581 * \param face_coord La position de la face.
582 * \param level Le niveau de la face.
583 * \return L'uniqueId de la face.
584 */
585 Int64 faceUniqueId(Int64x2 face_coord, Integer level) const;
586
587 /*!
588 * \brief Méthode permettant de récupérer le nombre de noeuds dans une maille.
589 *
590 * \return Le nombre de noeuds d'une maille.
591 */
592 Integer nbNodeByCell() const;
593
594 /*!
595 * \brief Méthode permettant de récupérer les uniqueIds des noeuds d'une maille à partir de
596 * ses coordonnées.
597 *
598 * L'ordre dans lequel les uniqueIds sont placés correspond à l'ordre d'énumération des noeuds
599 * d'une maille d'Arcane.
600 * 3--2
601 * ^y | |
602 * | 0--1
603 * ->x
604 *
605 * \param cell_coord La position de la maille.
606 * \param level Le niveau de la maille (et donc des noeuds).
607 * \param uid [OUT] Les uniqueIds de la maille. La taille de l'ArrayView doit être égal à nbNodeByCell().
608 */
609 void cellNodeUniqueIds(Int64x3 cell_coord, Integer level, ArrayView<Int64> uid) const;
610
611 /*!
612 * \brief Méthode permettant de récupérer les uniqueIds des noeuds d'une maille à partir de
613 * ses coordonnées.
614 *
615 * L'ordre dans lequel les uniqueIds sont placés correspond à l'ordre d'énumération des noeuds
616 * d'une maille d'Arcane.
617 * 3--2
618 * ^y | |
619 * | 0--1
620 * ->x
621 *
622 * \param cell_coord La position de la maille.
623 * \param level Le niveau de la maille (et donc des noeuds).
624 * \param uid [OUT] Les uniqueIds de la maille. La taille de l'ArrayView doit être égal à nbNodeByCell().
625 */
626 void cellNodeUniqueIds(Int64x2 cell_coord, Integer level, ArrayView<Int64> uid) const;
627
628 /*!
629 * \brief Méthode permettant de récupérer les uniqueIds des noeuds d'une maille à partir de
630 * son uniqueId.
631 *
632 * L'ordre dans lequel les uniqueIds sont placés correspond à l'ordre d'énumération des noeuds
633 * d'une maille d'Arcane.
634 * 3--2
635 * ^y | |
636 * | 0--1
637 * ->x
638 *
639 * \param cell_uid L'uniqueId de la maille.
640 * \param level Le niveau de la maille (et donc des noeuds).
641 * \param uid [OUT] Les uniqueIds de la maille. La taille de l'ArrayView doit être égal à nbNodeByCell().
642 */
643 void cellNodeUniqueIds(Int64 cell_uid, Integer level, ArrayView<Int64> uid) const;
644
645 /*!
646 * \brief Méthode permettant de récupérer les uniqueIds des noeuds d'une maille.
647 *
648 * L'ordre dans lequel les uniqueIds sont placés correspond à l'ordre d'énumération des noeuds
649 * d'une maille d'Arcane.
650 * 3--2
651 * ^y | |
652 * | 0--1
653 * ->x
654 *
655 * \param cell La maille.
656 * \param uid [OUT] Les uniqueIds de la maille. La taille de l'ArrayView doit être égal à nbNodeByCell().
657 */
658 void cellNodeUniqueIds(Cell cell, ArrayView<Int64> uid) const;
659
660 /*!
661 * \brief Méthode permettant de récupérer le nombre de faces dans une maille.
662 *
663 * \return Le nombre de faces d'une maille.
664 */
665 Integer nbFaceByCell() const;
666
667 /*!
668 * \brief Méthode permettant de récupérer les uniqueIds des faces d'une maille à partir de
669 * ses coordonnées.
670 *
671 * L'ordre dans lequel les uniqueIds sont placés correspond à l'ordre d'énumération des faces
672 * d'une maille d'Arcane.
673 * -2-
674 * ^y 3 1
675 * | -0-
676 * ->x
677 *
678 * \param cell_coord La position de la maille.
679 * \param level Le niveau de la maille (et donc des faces).
680 * \param uid [OUT] Les uniqueIds de la maille. La taille de l'ArrayView doit être égal à nbFaceByCell().
681 */
682 void cellFaceUniqueIds(Int64x3 cell_coord, Integer level, ArrayView<Int64> uid) const;
683
684 /*!
685 * \brief Méthode permettant de récupérer les uniqueIds des faces d'une maille à partir de
686 * ses coordonnées.
687 *
688 * L'ordre dans lequel les uniqueIds sont placés correspond à l'ordre d'énumération des faces
689 * d'une maille d'Arcane.
690 * -2-
691 * ^y 3 1
692 * | -0-
693 * ->x
694 *
695 * \param cell_coord La position de la maille.
696 * \param level Le niveau de la maille (et donc des faces).
697 * \param uid [OUT] Les uniqueIds de la maille. La taille de l'ArrayView doit être égal à nbFaceByCell().
698 */
699 void cellFaceUniqueIds(Int64x2 cell_coord, Integer level, ArrayView<Int64> uid) const;
700
701 /*!
702 * \brief Méthode permettant de récupérer les uniqueIds des faces d'une maille à partir de
703 * son uniqueId.
704 *
705 * L'ordre dans lequel les uniqueIds sont placés correspond à l'ordre d'énumération des faces
706 * d'une maille d'Arcane.
707 * -2-
708 * ^y 3 1
709 * | -0-
710 * ->x
711 *
712 * \param cell_uid L'uniqueId de la maille.
713 * \param level Le niveau de la maille (et donc des faces).
714 * \param uid [OUT] Les uniqueIds de la maille. La taille de l'ArrayView doit être égal à nbFaceByCell().
715 */
716 void cellFaceUniqueIds(Int64 cell_uid, Integer level, ArrayView<Int64> uid) const;
717
718 /*!
719 * \brief Méthode permettant de récupérer les uniqueIds des faces d'une maille.
720 *
721 * L'ordre dans lequel les uniqueIds sont placés correspond à l'ordre d'énumération des faces
722 * d'une maille d'Arcane.
723 * -2-
724 * ^y 3 1
725 * | -0-
726 * ->x
727 *
728 * \param cell La maille.
729 * \param uid [OUT] Les uniqueIds de la maille. La taille de l'ArrayView doit être égal à nbFaceByCell().
730 */
731 void cellFaceUniqueIds(Cell cell, ArrayView<Int64> uid) const;
732
733 /*!
734 * \brief Méthode permettant de récupérer les uniqueIds des mailles autour d'une maille.
735 *
736 * S'il n'y a pas de maille à un endroit autour (si on est au bord du maillage par exemple),
737 * on met un uniqueId = -1.
738 *
739 * La vue passée en paramètre doit faire une taille de 27.
740 *
741 * \param cell_coord La position de la maille.
742 * \param level Le niveau de la maille au centre.
743 * \param uid [OUT] Les uniqueIds des mailles autour.
744 */
745 void cellUniqueIdsAroundCell(Int64x3 cell_coord, Int32 level, ArrayView<Int64> uid) const;
746
747 /*!
748 * \brief Méthode permettant de récupérer les uniqueIds des mailles autour d'une maille.
749 *
750 * S'il n'y a pas de maille à un endroit autour (si on est au bord du maillage par exemple),
751 * on met un uniqueId = -1.
752 *
753 * La vue passée en paramètre doit faire une taille de 9.
754 *
755 * \param cell_coord La position de la maille.
756 * \param level Le niveau de la maille au centre.
757 * \param uid [OUT] Les uniqueIds des mailles autour.
758 */
759 void cellUniqueIdsAroundCell(Int64x2 cell_coord, Int32 level, ArrayView<Int64> uid) const;
760
761 /*!
762 * \brief Méthode permettant de récupérer les uniqueIds des mailles autour de la maille passée
763 * en paramètre.
764 *
765 * S'il n'y a pas de maille à un endroit autour (si on est au bord du maillage par exemple),
766 * on met un uniqueId = -1.
767 *
768 * La vue passée en paramètre doit faire une taille de 9 en 2D et de 27 en 3D.
769 *
770 * \param cell_uid L'uniqueId de la maille au centre.
771 * \param level Le niveau de la maille au centre.
772 * \param uid [OUT] Les uniqueIds des mailles autour.
773 */
774 void cellUniqueIdsAroundCell(Int64 cell_uid, Int32 level, ArrayView<Int64> uid) const;
775
776 /*!
777 * \brief Méthode permettant de récupérer les uniqueIds des mailles autour de la maille passée
778 * en paramètre.
779 *
780 * S'il n'y a pas de maille à un endroit autour (si on est au bord du maillage par exemple),
781 * on met un uniqueId = -1.
782 *
783 * La vue passée en paramètre doit faire une taille de 9 en 2D et de 27 en 3D.
784 *
785 * \param cell La maille au centre.
786 * \param uid [OUT] Les uniqueIds des mailles autour.
787 */
788 void cellUniqueIdsAroundCell(Cell cell, ArrayView<Int64> uid) const;
789
790 /*!
791 * \brief Méthode permettant de récupérer les uniqueIds des mailles autour d'un noeud.
792 *
793 * S'il n'y a pas de maille à un endroit autour (si on est au bord du maillage par exemple),
794 * on met un uniqueId = -1.
795 *
796 * La vue passée en paramètre doit faire une taille de 8.
797 *
798 * \param node_coord La position du noeud.
799 * \param level Le niveau du noeud.
800 * \param uid [OUT] Les uniqueIds des mailles autour.
801 */
802 void cellUniqueIdsAroundNode(Int64x3 node_coord, Int32 level, ArrayView<Int64> uid) const;
803
804 /*!
805 * \brief Méthode permettant de récupérer les uniqueIds des mailles autour d'un noeud.
806 *
807 * S'il n'y a pas de maille à un endroit autour (si on est au bord du maillage par exemple),
808 * on met un uniqueId = -1.
809 *
810 * La vue passée en paramètre doit faire une taille de 4.
811 *
812 * \param node_coord La position du noeud.
813 * \param level Le niveau du noeud.
814 * \param uid [OUT] Les uniqueIds des mailles autour.
815 */
816 void cellUniqueIdsAroundNode(Int64x2 node_coord, Int32 level, ArrayView<Int64> uid) const;
817
818 /*!
819 * \brief Méthode permettant de récupérer les uniqueIds des mailles autour du noeud passée
820 * en paramètre.
821 *
822 * S'il n'y a pas de maille à un endroit autour (si on est au bord du maillage par exemple),
823 * on met un uniqueId = -1.
824 *
825 * La vue passée en paramètre doit faire une taille de 4 en 2D ou de 8 en 3D.
826 *
827 * \param node_uid L'uniqueId du noeud.
828 * \param level Le niveau du noeud.
829 * \param uid [OUT] Les uniqueIds des mailles autour.
830 */
831 void cellUniqueIdsAroundNode(Int64 node_uid, Int32 level, ArrayView<Int64> uid) const;
832
833 /*!
834 * \brief Méthode permettant de récupérer les uniqueIds des mailles autour du noeud passée
835 * en paramètre.
836 *
837 * S'il n'y a pas de maille à un endroit autour (si on est au bord du maillage par exemple),
838 * on met un uniqueId = -1.
839 *
840 * La vue passée en paramètre doit faire une taille de 4 en 2D ou de 8 en 3D.
841 *
842 * \param node Le noeud.
843 * \param uid [OUT] Les uniqueIds des mailles autour.
844 */
845 void cellUniqueIdsAroundNode(Node node, ArrayView<Int64> uid) const;
846
847 /*!
848 * \brief Méthode permettant de récupérer l'uniqueId du parent d'une maille.
849 *
850 * Si \a do_fatal est vrai, une erreur fatale est générée si le parent n'existe
851 * pas, sinon l'uniqueId retourné a pour valeur NULL_ITEM_UNIQUE_ID.
852 *
853 * \param uid L'uniqueId de la maille enfant.
854 * \param level Le niveau de la maille enfant.
855 * \return L'uniqueId de la maille parent de la maille passé en paramètre.
856 */
857 Int64 parentCellUniqueIdOfCell(Int64 uid, Integer level, bool do_fatal = true) const;
858
859 /*!
860 * \brief Méthode permettant de récupérer l'uniqueId du parent d'une maille.
861 *
862 * Si \a do_fatal est vrai, une erreur fatale est générée si le parent n'existe
863 * pas, sinon l'uniqueId retourné a pour valeur NULL_ITEM_UNIQUE_ID.
864 *
865 * \param cell La maille enfant.
866 * \return L'uniqueId de la maille parent de la maille passé en paramètre.
867 */
868 Int64 parentCellUniqueIdOfCell(Cell cell, bool do_fatal = true) const;
869
870 /*!
871 * \brief Méthode permettant de récupérer l'uniqueId d'une maille enfant d'une maille parent
872 * à partir de la position de la maille enfant dans la maille parent.
873 *
874 * \param cell La maille parent.
875 * \param child_coord_in_parent La position de l'enfant dans la maille parent.
876 * \return L'uniqueId de la maille enfant demandée.
877 */
878 Int64 childCellUniqueIdOfCell(Cell cell, Int64x3 child_coord_in_parent) const;
879
880 /*!
881 * \brief Méthode permettant de récupérer l'uniqueId d'une maille enfant d'une maille parent
882 * à partir de la position de la maille enfant dans la maille parent.
883 *
884 * \param cell La maille parent.
885 * \param child_coord_in_parent La position de l'enfant dans la maille parent.
886 * \return L'uniqueId de la maille enfant demandée.
887 */
888 Int64 childCellUniqueIdOfCell(Cell cell, Int64x2 child_coord_in_parent) const;
889
890 /*!
891 * \brief Méthode permettant de récupérer l'uniqueId d'une maille enfant d'une maille parent
892 * à partir de l'index de la maille enfant dans la maille parent.
893 *
894 * \param cell La maille parent.
895 * \param child_index_in_parent L'index de l'enfant dans la maille parent.
896 * \return L'uniqueId de la maille enfant demandée.
897 */
898 Int64 childCellUniqueIdOfCell(Cell cell, Int64 child_index_in_parent) const;
899
900 /*!
901 * \brief Méthode permettant de récupérer une maille enfant d'une maille parent
902 * à partir de la position de la maille enfant dans la maille parent.
903 *
904 * \param cell La maille parent.
905 * \param child_coord_in_parent La position de l'enfant dans la maille parent.
906 * \return La maille enfant demandée.
907 */
908 Cell childCellOfCell(Cell cell, Int64x3 child_coord_in_parent) const;
909
910 /*!
911 * \brief Méthode permettant de récupérer une maille enfant d'une maille parent
912 * à partir de la position de la maille enfant dans la maille parent.
913 *
914 * \param cell La maille parent.
915 * \param child_coord_in_parent La position de l'enfant dans la maille parent.
916 * \return La maille enfant demandée.
917 */
918 Cell childCellOfCell(Cell cell, Int64x2 child_coord_in_parent) const;
919
920 /*!
921 * \brief Méthode permettant de récupérer l'uniqueId du parent d'un noeud.
922 *
923 * Si \a do_fatal est vrai, une erreur fatale est générée si le parent n'existe
924 * pas, sinon l'uniqueId retourné a pour valeur NULL_ITEM_UNIQUE_ID.
925 *
926 * \param uid L'uniqueId du noeud enfant.
927 * \param level Le niveau du noeud enfant.
928 * \return L'uniqueId du noeud parent du noeud enfant.
929 */
930 Int64 parentNodeUniqueIdOfNode(Int64 uid, Integer level, bool do_fatal = true) const;
931
932 /*!
933 * \brief Méthode permettant de récupérer l'uniqueId du parent d'un noeud.
934 *
935 * Si \a do_fatal est vrai, une erreur fatale est générée si le parent n'existe
936 * pas, sinon l'uniqueId retourné a pour valeur NULL_ITEM_UNIQUE_ID.
937 *
938 * \param node Le noeud enfant.
939 * \return L'uniqueId du noeud parent du noeud passé en paramètre.
940 */
941 Int64 parentNodeUniqueIdOfNode(Node node, bool do_fatal = true) const;
942
943 /*!
944 * \brief Méthode permettant de récupérer l'uniqueId d'un noeud enfant d'un noeud parent.
945 *
946 * \param uid L'uniqueId du noeud enfant.
947 * \param level Le niveau du noeud enfant.
948 * \return L'uniqueId du noeud enfant demandée.
949 */
950 Int64 childNodeUniqueIdOfNode(Int64 uid, Integer level) const;
951
952 /*!
953 * \brief Méthode permettant de récupérer l'uniqueId d'un noeud enfant d'un noeud parent.
954 *
955 * \param node Le noeud parent.
956 * \return L'uniqueId du noeud enfant demandée.
957 */
959
960 /*!
961 * \brief Méthode permettant de récupérer l'uniqueId du parent d'une face.
962 *
963 * Si \a do_fatal est vrai, une erreur fatale est générée si le parent n'existe
964 * pas, sinon l'uniqueId retourné a pour valeur NULL_ITEM_UNIQUE_ID.
965 *
966 * \param uid L'uniqueId de la face enfant.
967 * \param level Le niveau de la face enfant.
968 * \return L'uniqueId de la face parent de la face enfant.
969 */
970 Int64 parentFaceUniqueIdOfFace(Int64 uid, Integer level, bool do_fatal = true) const;
971
972 /*!
973 * \brief Méthode permettant de récupérer l'uniqueId du parent d'une face.
974 *
975 * Si \a do_fatal est vrai, une erreur fatale est générée si le parent n'existe
976 * pas, sinon l'uniqueId retourné a pour valeur NULL_ITEM_UNIQUE_ID.
977 *
978 * \param face La face enfant.
979 * \return L'uniqueId de la face parent de la face passé en paramètre.
980 */
981 Int64 parentFaceUniqueIdOfFace(Face face, bool do_fatal = true) const;
982
983 /*!
984 * \brief Méthode permettant de récupérer l'uniqueId d'une face enfant d'une face parent
985 * à partir de l'index de la face enfant dans la face parent.
986 *
987 * \param uid L'uniqueId de la face parent.
988 * \param level Le niveau de la face parent.
989 * \param child_index_in_parent L'index de l'enfant dans la face parent.
990 * \return L'uniqueId de la face enfant demandée.
991 */
992 Int64 childFaceUniqueIdOfFace(Int64 uid, Integer level, Int64 child_index_in_parent) const;
993
994 /*!
995 * \brief Méthode permettant de récupérer l'uniqueId d'une face enfant d'une face parent
996 * à partir de l'index de la face enfant dans la face parent.
997 *
998 * \param face La face parent.
999 * \param child_index_in_parent L'index de l'enfant dans la face parent.
1000 * \return L'uniqueId de la face enfant demandée.
1001 */
1002 Int64 childFaceUniqueIdOfFace(Face face, Int64 child_index_in_parent) const;
1003
1004 public:
1005
1006 ICartesianMeshNumberingMngInternal* _internalApi() const;
1007
1008 private:
1009
1011};
1012
1013/*---------------------------------------------------------------------------*/
1014/*---------------------------------------------------------------------------*/
1015
1016} // End namespace Arcane
1017
1018/*---------------------------------------------------------------------------*/
1019/*---------------------------------------------------------------------------*/
1020
1021#endif //ARCANE_CARTESIANMESH_CARTESIANMESHNUMBERINGMNG_H
Vue modifiable d'un tableau d'un type T.
Int64 globalNbCellsX(Integer level) const
Méthode permettant de récupérer le nombre de mailles global en X d'un niveau.
Int64 nbFaceInLevel(Integer level) const
Méthode permettant de récupérer le nombre de faces total dans un niveau.
Int64 childNodeUniqueIdOfNode(Int64 uid, Integer level) const
Méthode permettant de récupérer l'uniqueId d'un noeud enfant d'un noeud parent.
Integer nbNodeByCell() const
Méthode permettant de récupérer le nombre de noeuds dans une maille.
void cellNodeUniqueIds(Int64x3 cell_coord, Integer level, ArrayView< Int64 > uid) const
Méthode permettant de récupérer les uniqueIds des noeuds d'une maille à partir de ses coordonnées.
Int64 parentNodeUniqueIdOfNode(Int64 uid, Integer level, bool do_fatal=true) const
Méthode permettant de récupérer l'uniqueId du parent d'un noeud.
Int64 globalNbNodesZ(Integer level) const
Méthode permettant de récupérer le nombre de noeuds global en Z d'un niveau.
Int64 faceOffsetLevelToLevel(Int64 coord, Integer level_from, Integer level_to) const
Méthode permettant d'obtenir la position de la première face enfant à partir de la position de la fac...
void cellUniqueIdsAroundNode(Int64x3 node_coord, Int32 level, ArrayView< Int64 > uid) const
Méthode permettant de récupérer les uniqueIds des mailles autour d'un noeud.
Int64 childCellUniqueIdOfCell(Cell cell, Int64x3 child_coord_in_parent) const
Méthode permettant de récupérer l'uniqueId d'une maille enfant d'une maille parent à partir de la pos...
Int64 cellUniqueIdToCoordZ(Int64 uid, Integer level) const
Méthode permettant de récupérer la coordonnée en Z d'une maille grâce à son uniqueId.
void cellUniqueIdsAroundCell(Int64x3 cell_coord, Int32 level, ArrayView< Int64 > uid) const
Méthode permettant de récupérer les uniqueIds des mailles autour d'une maille.
Integer pattern() const
Méthode permettant de récupérer le pattern de raffinement utilisé dans chaque maille....
Int64 globalNbNodesX(Integer level) const
Méthode permettant de récupérer le nombre de noeuds global en X d'un niveau.
Int64 globalNbCellsZ(Integer level) const
Méthode permettant de récupérer le nombre de mailles global en Z d'un niveau.
Int64 nbCellInLevel(Integer level) const
Méthode permettant de récupérer le nombre de mailles total dans un niveau.
void printStatus() const
Méthode permettant de décrire l'état de l'objet.
Int64 globalNbCellsY(Integer level) const
Méthode permettant de récupérer le nombre de mailles global en Y d'un niveau.
Int64 firstFaceUniqueId(Integer level) const
Méthode permettant de récupérer le premier unique id utilisé par les faces d'un niveau....
Int64 faceUniqueIdToCoordY(Int64 uid, Integer level) const
Méthode permettant de récupérer la coordonnée en Y d'une face grâce à son uniqueId.
Int64 globalNbFacesX(Integer level) const
Méthode permettant de récupérer le nombre de faces global en X d'un niveau.
Int64 nodeUniqueId(Int64x3 node_coord, Integer level) const
Méthode permettant de récupérer l'uniqueId d'un noeud à partir de sa position et de son niveau.
Int64 globalNbFacesZ(Integer level) const
Méthode permettant de récupérer le nombre de faces global en Z d'un niveau.
Int64 faceUniqueIdToCoordZ(Int64 uid, Integer level) const
Méthode permettant de récupérer la coordonnée en Z d'une face grâce à son uniqueId.
Int64 globalNbFacesYCartesianView(Integer level) const
Méthode permettant de récupérer la taille de la vue "grille cartésienne" contenant les faces.
Int64 globalNbFacesZCartesianView(Integer level) const
Méthode permettant de récupérer la taille de la vue "grille cartésienne" contenant les faces.
Int64 globalNbNodesY(Integer level) const
Méthode permettant de récupérer le nombre de noeuds global en Y d'un niveau.
Int64 globalNbFacesY(Integer level) const
Méthode permettant de récupérer le nombre de faces global en Y d'un niveau.
Int64 cellUniqueId(Int64x3 cell_coord, Integer level) const
Méthode permettant de récupérer l'uniqueId d'une maille à partir de sa position et de son niveau.
Int64 firstNodeUniqueId(Integer level) const
Méthode permettant de récupérer le premier unique id utilisé par les noeuds d'un niveau....
Cell childCellOfCell(Cell cell, Int64x3 child_coord_in_parent) const
Méthode permettant de récupérer une maille enfant d'une maille parent à partir de la position de la m...
Int64 faceUniqueId(Int64x3 face_coord, Integer level) const
Méthode permettant de récupérer l'uniqueId d'une face à partir de sa position et de son niveau.
Int64 cellUniqueIdToCoordY(Int64 uid, Integer level) const
Méthode permettant de récupérer la coordonnée en Y d'une maille grâce à son uniqueId.
Int32 nodeLevel(Int64 uid) const
Méthode permettant de récupérer le niveau d'un noeud avec son uid.
Int64 globalNbFacesXCartesianView(Integer level) const
Méthode permettant de récupérer la taille de la vue "grille cartésienne" contenant les faces.
Int64 parentCellUniqueIdOfCell(Int64 uid, Integer level, bool do_fatal=true) const
Méthode permettant de récupérer l'uniqueId du parent d'une maille.
Int64 cellUniqueIdToCoordX(Int64 uid, Integer level) const
Méthode permettant de récupérer la coordonnée en X d'une maille grâce à son uniqueId.
Int64 nodeUniqueIdToCoordZ(Int64 uid, Integer level) const
Méthode permettant de récupérer la coordonnée en Z d'un noeud grâce à son uniqueId.
Int32 cellLevel(Int64 uid) const
Méthode permettant de récupérer le niveau d'une maille avec son uid.
Int64 faceUniqueIdToCoordX(Int64 uid, Integer level) const
Méthode permettant de récupérer la coordonnée en X d'une face grâce à son uniqueId.
Int64 nodeUniqueIdToCoordX(Int64 uid, Integer level) const
Méthode permettant de récupérer la coordonnée en X d'un noeud grâce à son uniqueId.
Int64 firstCellUniqueId(Integer level) const
Méthode permettant de récupérer le premier unique id utilisé par les mailles d'un niveau....
Int64 nbNodeInLevel(Integer level) const
Méthode permettant de récupérer le nombre de noeuds total dans un niveau.
Int32 faceLevel(Int64 uid) const
Méthode permettant de récupérer le niveau d'une face avec son uid.
Int64 parentFaceUniqueIdOfFace(Int64 uid, Integer level, bool do_fatal=true) const
Méthode permettant de récupérer l'uniqueId du parent d'une face.
Int64 offsetLevelToLevel(Int64 coord, Integer level_from, Integer level_to) const
Méthode permettant d'obtenir la position du premier noeud/maille fille à partir de la position du noe...
Integer nbFaceByCell() const
Méthode permettant de récupérer le nombre de faces dans une maille.
Int64 nodeUniqueIdToCoordY(Int64 uid, Integer level) const
Méthode permettant de récupérer la coordonnée en Y d'un noeud grâce à son uniqueId.
Int64 childFaceUniqueIdOfFace(Int64 uid, Integer level, Int64 child_index_in_parent) const
Méthode permettant de récupérer l'uniqueId d'une face enfant d'une face parent à partir de l'index de...
void cellFaceUniqueIds(Int64x3 cell_coord, Integer level, ArrayView< Int64 > uid) const
Méthode permettant de récupérer les uniqueIds des faces d'une maille à partir de ses coordonnées.
Maille d'un maillage.
Definition Item.h:1214
Face d'une maille.
Definition Item.h:964
Interface d'un maillage cartésien.
Noeud d'un maillage.
Definition Item.h:582
Référence à une instance.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
std::int64_t Int64
Type entier signé sur 64 bits.
Int32 Integer
Type représentant un entier.
std::int32_t Int32
Type entier signé sur 32 bits.