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