Arcane  v4.1.7.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IndexedItemConnectivityView.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 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/* IndexedItemConnectivityView.h (C) 2000-2026 */
9/* */
10/* Vues sur les connectivités utilisant des index. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_INDEXEDITEMCONNECTIVITYVIEW_H
13#define ARCANE_CORE_INDEXEDITEMCONNECTIVITYVIEW_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "ArcaneTypes.h"
18#include "arcane/core/Item.h"
19#include "arcane/core/IItemFamily.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29/*!
30 * \brief Classe de base d'une vue sur une connectivité non structurée.
31 *
32 * Comme toutes les vues, les instances de cette classe sont temporaires et
33 * ne doivent pas être conservées entre deux évolutions du maillage.
34 */
35class ARCANE_CORE_EXPORT IndexedItemConnectivityViewBase
36{
37 friend class IndexedItemConnectivityViewBase2;
38
39 public:
40
41 IndexedItemConnectivityViewBase() = default;
42 constexpr IndexedItemConnectivityViewBase(ItemConnectivityContainerView container_view,
43 eItemKind source_kind, eItemKind target_kind)
44 : m_container_view(container_view)
45 , m_source_kind(source_kind)
46 , m_target_kind(target_kind)
47 {
48 }
49
50 public:
51
52 //! Nombre d'entités source
53 constexpr ARCCORE_HOST_DEVICE Int32 nbSourceItem() const { return m_container_view.nbItem(); }
54 //! Nombre d'entités connectées à l'entité \a lid
55 constexpr ARCCORE_HOST_DEVICE Int32 nbItem(ItemLocalId lid) const { return m_container_view.m_nb_connected_items[lid]; }
56 //! Liste des entités connectées à l'entité \a lid
57 constexpr ARCCORE_HOST_DEVICE ItemLocalIdListViewT<Item> items(ItemLocalId lid) const
58 {
59 return m_container_view.itemsIds<Item>(lid);
60 }
61 eItemKind sourceItemKind() const { return m_source_kind; }
62 eItemKind targetItemKind() const { return m_target_kind; }
63
64 //! Initialise la vue
65 ARCANE_DEPRECATED_REASON("Y2022: This method is internal to Arcane and should be replaced by call to constructor")
66 void init(SmallSpan<const Int32> nb_item, SmallSpan<const Int32> indexes,
67 SmallSpan<const Int32> list_data, eItemKind source_kind, eItemKind target_kind)
68 {
69 SmallSpan<Int32> mutable_list_data(const_cast<Int32*>(list_data.data()),list_data.size());
70 m_container_view = ItemConnectivityContainerView(mutable_list_data, indexes, nb_item);
71 m_source_kind = source_kind;
72 m_target_kind = target_kind;
73 }
74
75 public:
76
78 {
79 m_container_view = view.m_container_view;
80 m_source_kind = view.m_source_kind;
81 m_target_kind = view.m_target_kind;
82 }
83
84 protected:
85
86 ItemConnectivityContainerView m_container_view;
87 eItemKind m_source_kind = IK_Unknown;
88 eItemKind m_target_kind = IK_Unknown;
89
90 protected:
91
92 [[noreturn]] void _badConversion(eItemKind k1, eItemKind k2) const;
93
94 public:
95
96 void _checkValid(eItemKind k1, eItemKind k2) const
97 {
98 if (k1 != m_source_kind || k2 != m_target_kind)
99 _badConversion(k1, k2);
100 }
101};
102
103/*---------------------------------------------------------------------------*/
104/*---------------------------------------------------------------------------*/
105/*!
106 * \brief Classe de base d'une vue sur une connectivité non structurée.
107 *
108 * Comme toutes les vues, les instances de cette classe sont temporaires et
109 * ne doivent pas être conservées entre deux évolutions du maillage.
110 */
111class ARCANE_CORE_EXPORT IndexedItemConnectivityViewBase2
112{
113 public:
114
115 IndexedItemConnectivityViewBase2() = default;
116
117 protected:
118
119 explicit IndexedItemConnectivityViewBase2(IndexedItemConnectivityViewBase view)
120 : m_container_view(view.m_container_view)
121 {
122 }
123
124 public:
125
126 //! Nombre d'entités source
127 constexpr ARCCORE_HOST_DEVICE Int32 nbSourceItem() const { return m_container_view.nbItem(); }
128 //! Nombre d'entités connectées à l'entité \a lid
129 constexpr ARCCORE_HOST_DEVICE Int32 nbItem(ItemLocalId lid) const { return m_container_view.m_nb_connected_items[lid]; }
130 //! Liste des entités connectées à l'entité \a lid
131 constexpr ARCCORE_HOST_DEVICE ItemLocalIdListViewT<Item> items(ItemLocalId lid) const
132 {
133 return m_container_view.itemsIds<Item>(lid);
134 }
135
136 protected:
137
138 ItemConnectivityContainerView m_container_view;
139};
140
141/*---------------------------------------------------------------------------*/
142/*---------------------------------------------------------------------------*/
143/*!
144 * \brief Vue spécialisée sur une connectivité non structurée entre deux entités.
145 */
146template<typename ItemType1,typename ItemType2>
147class IndexedItemConnectivityGenericViewT
148: public IndexedItemConnectivityViewBase2
149{
150 public:
151
152 using ItemType1Type = ItemType1;
153 using ItemType2Type = ItemType2;
154 using ItemLocalId1 = ItemType1::LocalIdType;
155 using ItemLocalId2 = ItemType2::LocalIdType;
156 using ItemLocalIdViewType = ItemLocalIdListViewT<ItemType2>;
157
158 public:
159
160 explicit(false) IndexedItemConnectivityGenericViewT(IndexedItemConnectivityViewBase view)
161 : IndexedItemConnectivityViewBase2(view)
162 {
163#ifdef ARCANE_CHECK
166 view._checkValid(k1,k2);
167#endif
168 }
169 IndexedItemConnectivityGenericViewT() = default;
170
171 public:
172
173 //! Liste des entités connectées à l'entité \a lid
174 constexpr ARCCORE_HOST_DEVICE ItemLocalIdViewType items(ItemLocalId1 lid) const
175 {
176 return m_container_view.itemsIds<ItemType2>(lid);
177 }
178
179 //! Liste des entités connectées à l'entité \a lid
180 constexpr ARCCORE_HOST_DEVICE ItemLocalIdViewType itemIds(ItemLocalId1 lid) const
181 {
182 return m_container_view.itemsIds<ItemType2>(lid);
183 }
184
185 //! i-ème entitée connectée à l'entité \a lid
186 constexpr ARCCORE_HOST_DEVICE ItemLocalId2 itemId(ItemLocalId1 lid, Int32 index) const
187 {
188 return m_container_view.itemId<ItemLocalId2>(lid, index);
189 }
190};
191
192/*---------------------------------------------------------------------------*/
193/*---------------------------------------------------------------------------*/
194/*!
195 * \brief Vue sur une connectivité ItemType->Node.
196 */
197template<typename ItemType>
198class IndexedItemConnectivityViewT<ItemType,Node>
199: public IndexedItemConnectivityGenericViewT<ItemType,Node>
200{
201 public:
202
203 using BaseClass = IndexedItemConnectivityGenericViewT<ItemType, Node>;
204 using ItemLocalIdType = ItemType::LocalIdType;
205 using ItemLocalIdViewType = BaseClass::ItemLocalIdViewType;
206 using ItemLocalId2 = BaseClass::ItemLocalId2;
207
208 public:
209
210 explicit(false) IndexedItemConnectivityViewT(IndexedItemConnectivityViewBase view)
211 : BaseClass(view)
212 {}
213 IndexedItemConnectivityViewT() = default;
214
215 public:
216
217 //! Nombre de noeuds connectés à l'entité \a lid
218 constexpr ARCCORE_HOST_DEVICE Int32 nbNode(ItemLocalIdType lid) const
219 {
220 return BaseClass::nbItem(lid);
221 }
222 //! Liste des noeuds connectés à l'entité \a lid
223 constexpr ARCCORE_HOST_DEVICE ItemLocalIdViewType nodes(ItemLocalIdType lid) const
224 {
225 return BaseClass::items(lid);
226 }
227 //! Liste des noeuds connectés à l'entité \a lid
228 constexpr ARCCORE_HOST_DEVICE ItemLocalIdViewType nodeIds(ItemLocalIdType lid) const
229 {
230 return BaseClass::itemIds(lid);
231 }
232 //! i-ème noeud connecté à l'entité \a lid
233 constexpr ARCCORE_HOST_DEVICE ItemLocalId2 nodeId(ItemLocalIdType lid, Int32 index) const
234 {
235 return BaseClass::itemId(lid, index);
236 }
237};
238
239/*---------------------------------------------------------------------------*/
240/*---------------------------------------------------------------------------*/
241/*!
242 * \brief Vue sur une connectivité ItemType->Edge.
243 */
244template<typename ItemType>
245class IndexedItemConnectivityViewT<ItemType, Edge>
246: public IndexedItemConnectivityGenericViewT<ItemType, Edge>
247{
248 public:
249
250 using BaseClass = IndexedItemConnectivityGenericViewT<ItemType, Edge>;
251 using ItemLocalIdType = ItemType::LocalIdType;
252 using ItemLocalIdViewType = BaseClass::ItemLocalIdViewType;
253 using ItemLocalId2 = BaseClass::ItemLocalId2;
254
255 public:
256
257 explicit(false) IndexedItemConnectivityViewT(IndexedItemConnectivityViewBase view)
258 : BaseClass(view)
259 {}
260 IndexedItemConnectivityViewT() = default;
261
262 public:
263
264 //! Nombre d'arêtes connectées à l'entité \a lid
265 constexpr ARCCORE_HOST_DEVICE Int32 nbEdge(ItemLocalIdType lid) const
266 {
267 return BaseClass::nbItem(lid);
268 }
269 //! Liste des arêtes connectées à l'entité \a lid
270 constexpr ARCCORE_HOST_DEVICE ItemLocalIdViewType edges(ItemLocalIdType lid) const
271 {
272 return BaseClass::items(lid);
273 }
274 //! Liste des arêtes connectées à l'entité \a lid
275 constexpr ARCCORE_HOST_DEVICE ItemLocalIdViewType edgeIds(ItemLocalIdType lid) const
276 {
277 return BaseClass::items(lid);
278 }
279 //! i-ème arête connectée à l'entité \a lid
280 constexpr ARCCORE_HOST_DEVICE ItemLocalId2 edgeId(ItemLocalIdType lid, Int32 index) const
281 {
282 return BaseClass::itemId(lid, index);
283 }
284};
285
286/*---------------------------------------------------------------------------*/
287/*---------------------------------------------------------------------------*/
288/*!
289 * \brief Vue sur une connectivité ItemType->Face.
290 */
291template<typename ItemType>
292class IndexedItemConnectivityViewT<ItemType, Face>
293: public IndexedItemConnectivityGenericViewT<ItemType, Face>
294{
295 public:
296
297 using BaseClass = IndexedItemConnectivityGenericViewT<ItemType, Face>;
298 using ItemLocalIdType = ItemType::LocalIdType;
299 using ItemLocalIdViewType = BaseClass::ItemLocalIdViewType;
300 using ItemLocalId2 = BaseClass::ItemLocalId2;
301
302 public:
303
304 explicit(false) IndexedItemConnectivityViewT(IndexedItemConnectivityViewBase view)
305 : BaseClass(view)
306 {}
307 IndexedItemConnectivityViewT() = default;
308
309 public:
310
311 //! Nombre de faces connectées à l'entité \a lid
312 constexpr ARCCORE_HOST_DEVICE Int32 nbFace(ItemLocalIdType lid) const
313 {
314 return BaseClass::nbItem(lid);
315 }
316 //! Liste des faces connectées à l'entité \a lid
317 constexpr ARCCORE_HOST_DEVICE ItemLocalIdViewType faces(ItemLocalIdType lid) const
318 {
319 return BaseClass::items(lid);
320 }
321 //! Liste des faces connectées à l'entité \a lid
322 constexpr ARCCORE_HOST_DEVICE ItemLocalIdViewType faceIds(ItemLocalIdType lid) const
323 {
324 return BaseClass::items(lid);
325 }
326 //! i-ème face connectée à l'entité \a lid
327 constexpr ARCCORE_HOST_DEVICE ItemLocalId2 faceId(ItemLocalIdType lid, Int32 index) const
328 {
329 return BaseClass::itemId(lid, index);
330 }
331};
332
333/*---------------------------------------------------------------------------*/
334/*---------------------------------------------------------------------------*/
335/*!
336 * \brief Vue sur une connectivité ItemType->Cell.
337 */
338template <typename ItemType>
339class IndexedItemConnectivityViewT<ItemType, Cell>
340: public IndexedItemConnectivityGenericViewT<ItemType, Cell>
341{
342 public:
343
344 using BaseClass = IndexedItemConnectivityGenericViewT<ItemType, Cell>;
345 using ItemLocalIdType = ItemType::LocalIdType;
346 using ItemLocalIdViewType = BaseClass::ItemLocalIdViewType;
347 using ItemLocalId2 = BaseClass::ItemLocalId2;
348
349 public:
350
351 explicit(false) IndexedItemConnectivityViewT(IndexedItemConnectivityViewBase view)
352 : BaseClass(view)
353 {}
354 IndexedItemConnectivityViewT() = default;
355
356 public:
357
358 //! Nombre de mailles connectées à l'entité \a lid
359 constexpr ARCCORE_HOST_DEVICE Int32 nbCell(ItemLocalIdType lid) const
360 {
361 return BaseClass::nbItem(lid);
362 }
363 //! Liste des mailles connectées à l'entité \a lid
364 constexpr ARCCORE_HOST_DEVICE ItemLocalIdViewType cells(ItemLocalIdType lid) const
365 {
366 return BaseClass::items(lid);
367 }
368 //! Liste des mailles connectées à l'entité \a lid
369 constexpr ARCCORE_HOST_DEVICE ItemLocalIdViewType cellIds(ItemLocalIdType lid) const
370 {
371 return BaseClass::items(lid);
372 }
373 //! i-ème maille connectée à l'entité \a lid
374 constexpr ARCCORE_HOST_DEVICE ItemLocalId2 cellId(ItemLocalIdType lid, Int32 index) const
375 {
376 return BaseClass::itemId(lid, index);
377 }
378};
379
380/*---------------------------------------------------------------------------*/
381/*---------------------------------------------------------------------------*/
382/*!
383 * \brief Vue sur une connectivité ItemType->Dof.
384 */
385template <typename ItemType>
386class IndexedItemConnectivityViewT<ItemType, DoF>
387: public IndexedItemConnectivityGenericViewT<ItemType, DoF>
388{
389 public:
390
391 using BaseClass = IndexedItemConnectivityGenericViewT<ItemType, DoF>;
392 using ItemLocalIdType = ItemType::LocalIdType;
393 using ItemLocalIdViewType = BaseClass::ItemLocalIdViewType;
394 using ItemLocalId2 = BaseClass::ItemLocalId2;
395
396 public:
397
398 explicit(false) IndexedItemConnectivityViewT(IndexedItemConnectivityViewBase view)
399 : BaseClass(view)
400 {}
401 IndexedItemConnectivityViewT() = default;
402
403 public:
404
405 //! Nombre de DoFs connectés à l'entité \a lid
406 constexpr ARCCORE_HOST_DEVICE Int32 nbDof(ItemLocalIdType lid) const
407 {
408 return BaseClass::nbItem(lid);
409 }
410 //! Liste des DoFs connectées à l'entité \a lid
411 constexpr ARCCORE_HOST_DEVICE ItemLocalIdViewType dofs(ItemLocalIdType lid) const
412 {
413 return BaseClass::items(lid);
414 }
415 //! Liste des DoFs connectées à l'entité \a lid
416 constexpr ARCCORE_HOST_DEVICE ItemLocalIdViewType dofIds(ItemLocalIdType lid) const
417 {
418 return BaseClass::items(lid);
419 }
420 //! i-ème DoF connecté à l'entité \a lid
421 constexpr ARCCORE_HOST_DEVICE ItemLocalId2 dofId(ItemLocalIdType lid, Int32 index) const
422 {
423 return BaseClass::itemId(lid, index);
424 }
425};
426
427/*---------------------------------------------------------------------------*/
428/*---------------------------------------------------------------------------*/
429/*!
430 * \brief Vue sur une connectivité Particle->Cell.
431 *
432 * Il n'y a qu'une seule maille associée à une particule.
433 */
434class ARCANE_CORE_EXPORT IndexedParticleCellConnectivityView
435: public IndexedItemConnectivityGenericViewT<Particle, Cell>
436{
437 public:
438
439 using BaseClass = IndexedItemConnectivityGenericViewT<Particle, Cell>;
440 using ItemLocalIdType = Particle::LocalIdType;
441 using ItemLocalIdViewType = BaseClass::ItemLocalIdViewType;
442 using ItemLocalId2 = BaseClass::ItemLocalId2;
443
444 public:
445
446 explicit(false) IndexedParticleCellConnectivityView(IndexedItemConnectivityViewBase view)
447 : BaseClass(view)
448 {}
449 explicit IndexedParticleCellConnectivityView(IParticleFamily* pf);
450 explicit IndexedParticleCellConnectivityView(IItemFamily* pf);
451 IndexedParticleCellConnectivityView() = default;
452
453 public:
454
455 //! Indique si la particule \a lid est connectée à une maille
456 constexpr ARCCORE_HOST_DEVICE bool hasCell(ItemLocalIdType lid) const
457 {
458 return !cellId(lid).isNull();
459 }
460 //! Maille connectée à l'entité \a lid
461 constexpr ARCCORE_HOST_DEVICE ItemLocalId2 cellId(ItemLocalIdType lid) const
462 {
463 return BaseClass::itemId(lid, 0);
464 }
465};
466
467/*---------------------------------------------------------------------------*/
468/*---------------------------------------------------------------------------*/
469/*!
470 * \brief Vue modifiable sur une connectivité Particle->Cell.
471 *
472 * Cette vue permet de modifier la maille à laquelle appartient une particule.
473 */
474class ARCANE_CORE_EXPORT MutableIndexedParticleCellConnectivityView
475: public IndexedParticleCellConnectivityView
476{
477 public:
478
480 using ItemLocalIdType = Particle::LocalIdType;
481 using ItemLocalIdViewType = BaseClass::ItemLocalIdViewType;
482 using ItemLocalId2 = BaseClass::ItemLocalId2;
483
484 public:
485
486 explicit MutableIndexedParticleCellConnectivityView(IParticleFamily* pf);
487 explicit MutableIndexedParticleCellConnectivityView(IItemFamily* pf);
488
489 public:
490
491 //! Maille connectée à l'entité \a lid
492 ARCCORE_HOST_DEVICE void setCellId(ParticleLocalId particle_lid, CellLocalId cell_lid) const
493 {
494 m_container_view._setParticleCellId(particle_lid, cell_lid);
495 }
496
497 private:
498
499 IItemFamily* m_family = nullptr;
500};
501
502/*---------------------------------------------------------------------------*/
503/*---------------------------------------------------------------------------*/
504
505using IndexedCellNodeConnectivityView = IndexedItemConnectivityViewT<Cell,Node>;
506using IndexedCellEdgeConnectivityView = IndexedItemConnectivityViewT<Cell,Edge>;
507using IndexedCellFaceConnectivityView = IndexedItemConnectivityViewT<Cell,Face>;
508using IndexedCellCellConnectivityView = IndexedItemConnectivityViewT<Cell,Cell>;
509using IndexedCellDoFConnectivityView = IndexedItemConnectivityViewT<Cell,DoF>;
510
511using IndexedFaceNodeConnectivityView = IndexedItemConnectivityViewT<Face,Node>;
512using IndexedFaceEdgeConnectivityView = IndexedItemConnectivityViewT<Face,Edge>;
513using IndexedFaceFaceConnectivityView = IndexedItemConnectivityViewT<Face,Face>;
514using IndexedFaceCellConnectivityView = IndexedItemConnectivityViewT<Face,Cell>;
515using IndexedFaceDoFConnectivityView = IndexedItemConnectivityViewT<Face,DoF>;
516
517using IndexedEdgeNodeConnectivityView = IndexedItemConnectivityViewT<Edge,Node>;
518using IndexedEdgeEdgeConnectivityView = IndexedItemConnectivityViewT<Edge,Edge>;
519using IndexedEdgeFaceConnectivityView = IndexedItemConnectivityViewT<Edge,Face>;
520using IndexedEdgeCellConnectivityView = IndexedItemConnectivityViewT<Edge,Cell>;
521using IndexedEdgeDoFConnectivityView = IndexedItemConnectivityViewT<Edge,DoF>;
522
523using IndexedNodeNodeConnectivityView = IndexedItemConnectivityViewT<Node,Node>;
524using IndexedNodeEdgeConnectivityView = IndexedItemConnectivityViewT<Node,Edge>;
525using IndexedNodeFaceConnectivityView = IndexedItemConnectivityViewT<Node,Face>;
526using IndexedNodeCellConnectivityView = IndexedItemConnectivityViewT<Node,Cell>;
527using IndexedNodeDoFConnectivityView = IndexedItemConnectivityViewT<Node,DoF>;
528
529using IndexedDoFNodeConnectivityView = IndexedItemConnectivityViewT<DoF,Node>;
530using IndexedDoFEdgeConnectivityView = IndexedItemConnectivityViewT<DoF,Edge>;
531using IndexedDoFFaceConnectivityView = IndexedItemConnectivityViewT<DoF,Face>;
532using IndexedDoFCellConnectivityView = IndexedItemConnectivityViewT<DoF,Cell>;
533using IndexedDoFDoFConnectivityView = IndexedItemConnectivityViewT<DoF,DoF>;
534
535/*---------------------------------------------------------------------------*/
536/*---------------------------------------------------------------------------*/
537
538} // End namespace Arcane
539
540/*---------------------------------------------------------------------------*/
541/*---------------------------------------------------------------------------*/
542
543#endif
Déclarations des types généraux de Arcane.
Maille d'un maillage.
Definition Item.h:1214
classe degré de liberté.
Definition Item.h:1532
Arête d'une maille.
Definition Item.h:826
Face d'une maille.
Definition Item.h:964
Interface d'une famille d'entités.
Definition IItemFamily.h:84
Interface d'une famille de particules.
Vue spécialisée sur une connectivité non structurée entre deux entités.
constexpr __host__ __device__ ItemLocalId2 itemId(ItemLocalId1 lid, Int32 index) const
i-ème entitée connectée à l'entité lid
constexpr __host__ __device__ ItemLocalIdViewType items(ItemLocalId1 lid) const
Liste des entités connectées à l'entité lid.
constexpr __host__ __device__ ItemLocalIdViewType itemIds(ItemLocalId1 lid) const
Liste des entités connectées à l'entité lid.
constexpr __host__ __device__ ItemLocalIdListViewT< Item > items(ItemLocalId lid) const
Liste des entités connectées à l'entité lid.
constexpr __host__ __device__ Int32 nbItem(ItemLocalId lid) const
Nombre d'entités connectées à l'entité lid.
constexpr __host__ __device__ Int32 nbSourceItem() const
Nombre d'entités source.
Classe de base d'une vue sur une connectivité non structurée.
constexpr __host__ __device__ Int32 nbSourceItem() const
Nombre d'entités source.
void init(SmallSpan< const Int32 > nb_item, SmallSpan< const Int32 > indexes, SmallSpan< const Int32 > list_data, eItemKind source_kind, eItemKind target_kind)
Initialise la vue.
constexpr __host__ __device__ ItemLocalIdListViewT< Item > items(ItemLocalId lid) const
Liste des entités connectées à l'entité lid.
constexpr __host__ __device__ Int32 nbItem(ItemLocalId lid) const
Nombre d'entités connectées à l'entité lid.
constexpr __host__ __device__ ItemLocalIdViewType cellIds(ItemLocalIdType lid) const
Liste des mailles connectées à l'entité lid.
constexpr __host__ __device__ ItemLocalIdViewType cells(ItemLocalIdType lid) const
Liste des mailles connectées à l'entité lid.
constexpr __host__ __device__ Int32 nbCell(ItemLocalIdType lid) const
Nombre de mailles connectées à l'entité lid.
constexpr __host__ __device__ ItemLocalId2 cellId(ItemLocalIdType lid, Int32 index) const
i-ème maille connectée à l'entité lid
constexpr __host__ __device__ Int32 nbDof(ItemLocalIdType lid) const
Nombre de DoFs connectés à l'entité lid.
constexpr __host__ __device__ ItemLocalId2 dofId(ItemLocalIdType lid, Int32 index) const
i-ème DoF connecté à l'entité lid
constexpr __host__ __device__ ItemLocalIdViewType dofIds(ItemLocalIdType lid) const
Liste des DoFs connectées à l'entité lid.
constexpr __host__ __device__ ItemLocalIdViewType dofs(ItemLocalIdType lid) const
Liste des DoFs connectées à l'entité lid.
constexpr __host__ __device__ ItemLocalId2 edgeId(ItemLocalIdType lid, Int32 index) const
i-ème arête connectée à l'entité lid
constexpr __host__ __device__ ItemLocalIdViewType edges(ItemLocalIdType lid) const
Liste des arêtes connectées à l'entité lid.
constexpr __host__ __device__ ItemLocalIdViewType edgeIds(ItemLocalIdType lid) const
Liste des arêtes connectées à l'entité lid.
constexpr __host__ __device__ Int32 nbEdge(ItemLocalIdType lid) const
Nombre d'arêtes connectées à l'entité lid.
constexpr __host__ __device__ ItemLocalIdViewType faces(ItemLocalIdType lid) const
Liste des faces connectées à l'entité lid.
constexpr __host__ __device__ Int32 nbFace(ItemLocalIdType lid) const
Nombre de faces connectées à l'entité lid.
constexpr __host__ __device__ ItemLocalId2 faceId(ItemLocalIdType lid, Int32 index) const
i-ème face connectée à l'entité lid
constexpr __host__ __device__ ItemLocalIdViewType faceIds(ItemLocalIdType lid) const
Liste des faces connectées à l'entité lid.
constexpr __host__ __device__ Int32 nbNode(ItemLocalIdType lid) const
Nombre de noeuds connectés à l'entité lid.
constexpr __host__ __device__ ItemLocalIdViewType nodes(ItemLocalIdType lid) const
Liste des noeuds connectés à l'entité lid.
constexpr __host__ __device__ ItemLocalId2 nodeId(ItemLocalIdType lid, Int32 index) const
i-ème noeud connecté à l'entité lid
constexpr __host__ __device__ ItemLocalIdViewType nodeIds(ItemLocalIdType lid) const
Liste des noeuds connectés à l'entité lid.
constexpr __host__ __device__ bool hasCell(ItemLocalIdType lid) const
Indique si la particule lid est connectée à une maille.
constexpr __host__ __device__ ItemLocalId2 cellId(ItemLocalIdType lid) const
Maille connectée à l'entité lid.
Vue typée sur une liste d'entités d'une connectivité.
Index d'un Item dans une variable.
Definition ItemLocalId.h:41
static eItemKind kind()
Genre de l'entité
Definition ItemTypes.h:624
Classe de base d'un élément de maillage.
Definition Item.h:83
__host__ __device__ void setCellId(ParticleLocalId particle_lid, CellLocalId cell_lid) const
Maille connectée à l'entité lid.
Noeud d'un maillage.
Definition Item.h:582
ParticleLocalId LocalIdType
Type du localId()
Definition Item.h:1446
Vue d'un tableau d'éléments de type T.
Definition Span.h:801
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eItemKind
Genre d'entité de maillage.
std::int32_t Int32
Type entier signé sur 32 bits.