Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ItemInfoListView.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/* ItemInfoListView.h (C) 2000-2024 */
9/* */
10/* Vue sur une liste pour obtenir des informations sur les entités. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_ITEMINFOLISTVIEW_H
13#define ARCANE_ITEMINFOLISTVIEW_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/core/ItemGenericInfoListView.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
39class ARCANE_CORE_EXPORT ItemInfoListView
41{
43 friend class mesh::ItemFamily;
44 friend ItemVector;
45 friend ItemPairEnumerator;
47 template <int Extent> friend class ItemConnectedListView;
48 template <typename ItemType> friend class ItemEnumeratorBaseT;
49
50 // A supprimer lorqu'on n'aura plus besoin de _itemsInternal()
51 friend ItemVectorView;
52
53 public:
54
55 ItemInfoListView() = default;
56
63 explicit ItemInfoListView(IItemFamily* family);
64
65 public:
66
68 IItemFamily* itemFamily() const { return m_item_shared_info->itemFamily(); }
69
70 // NOTE: Les définitions des deux méthodes operator[] sont dans Item.h
71
73 inline Item operator[](ItemLocalId local_id) const;
74
76 inline Item operator[](Int32 local_id) const;
77
78 private:
79
80 // Seule ItemFamily peut créer des instances via ce constructeur
83 {}
84
85 protected:
86
87 using BaseClass::m_flags;
88 using BaseClass::m_item_shared_info;
89 void _checkValid(eItemKind expected_kind);
90};
91
92/*---------------------------------------------------------------------------*/
93/*---------------------------------------------------------------------------*/
97template <typename ItemType>
99: public ItemInfoListView
100{
101 public:
102
103 ItemInfoListViewT() = default;
104
107 : ItemInfoListView(family)
108 {
110 }
111
112 public:
113
114 // NOTE: Les définitions des deux méthodes operator[] sont dans Item.h
115
117 inline ItemType operator[](ItemLocalId local_id) const;
118
120 inline ItemType operator[](Int32 local_id) const;
121};
122
123/*---------------------------------------------------------------------------*/
124/*---------------------------------------------------------------------------*/
129: public ItemInfoListViewT<Node>
130{
131 public:
132
134
135 public:
136
137 NodeInfoListView() = default;
138
141 : BaseClass(family)
142 {}
143};
144
145/*---------------------------------------------------------------------------*/
146/*---------------------------------------------------------------------------*/
151: public ItemInfoListViewT<Edge>
152{
153 public:
154
156
157 public:
158
159 EdgeInfoListView() = default;
160
163 : BaseClass(family)
164 {}
165};
166
167/*---------------------------------------------------------------------------*/
168/*---------------------------------------------------------------------------*/
173: public ItemInfoListViewT<Face>
174{
175 public:
176
178
179 public:
180
181 FaceInfoListView() = default;
182
185 : BaseClass(family)
186 {}
187
188 public:
189
190 constexpr ARCCORE_HOST_DEVICE bool isSubDomainBoundary(FaceLocalId local_id) const
191 {
192 return ItemFlags::isSubDomainBoundary(m_flags[local_id]);
193 }
194 constexpr ARCCORE_HOST_DEVICE bool isSubDomainBoundaryOutside(FaceLocalId local_id) const
195 {
196 return ItemFlags::isSubDomainBoundaryOutside(m_flags[local_id]);
197 }
198 constexpr ARCCORE_HOST_DEVICE Int32 backCellIndex(FaceLocalId local_id) const
199 {
200 return ItemFlags::backCellIndex(m_flags[local_id]);
201 }
202 constexpr ARCCORE_HOST_DEVICE Int32 frontCellIndex(FaceLocalId local_id) const
203 {
204 return ItemFlags::frontCellIndex(m_flags[local_id]);
205 }
206};
207
208/*---------------------------------------------------------------------------*/
209/*---------------------------------------------------------------------------*/
214: public ItemInfoListViewT<Cell>
215{
216 public:
217
219
220 public:
221
222 CellInfoListView() = default;
223
226 : BaseClass(family)
227 {}
228};
229
230/*---------------------------------------------------------------------------*/
231/*---------------------------------------------------------------------------*/
236: public ItemInfoListViewT<Particle>
237{
238 public:
239
241
242 public:
243
244 ParticleInfoListView() = default;
245
248 : BaseClass(family)
249 {}
250};
251
252/*---------------------------------------------------------------------------*/
253/*---------------------------------------------------------------------------*/
258: public ItemInfoListViewT<DoF>
259{
260 public:
261
263
264 public:
265
266 DoFInfoListView() = default;
267
269 explicit DoFInfoListView(IItemFamily* family)
270 : BaseClass(family)
271 {}
272};
273
274/*---------------------------------------------------------------------------*/
275/*---------------------------------------------------------------------------*/
276
277} // End namespace Arcane
278
279/*---------------------------------------------------------------------------*/
280/*---------------------------------------------------------------------------*/
281
282#endif
Vue sur les informations des mailles.
CellInfoListView(IItemFamily *family)
Construit une vue associée à la famille family.
Vue sur les informations des DoFs.
DoFInfoListView(IItemFamily *family)
Construit une vue associée à la famille family.
Vue sur les informations des arêtes.
EdgeInfoListView(IItemFamily *family)
Construit une vue associée à la famille family.
Vue sur les informations des faces.
FaceInfoListView(IItemFamily *family)
Construit une vue associée à la famille family.
Interface d'une famille d'entités.
Vue sur une liste d'entités connectées à une autre entité.
Classe de base des énumérateurs sur une liste d'entité.
static constexpr Int32 backCellIndex(FlagType f)
Index dans la face la maille derrière.
Definition ItemFlags.h:94
static constexpr Int32 frontCellIndex(FlagType f)
Index dans la face la maille devant.
Definition ItemFlags.h:109
Vue sur les informations génériques d'une famille d'entités.
Classe de base des vues spécialisées des informations sur les entités.
ItemInfoListViewT(IItemFamily *family)
Construit une vue associée à la famille family.
ItemType operator[](ItemLocalId local_id) const
Entité associée du numéro local local_id.
Definition Item.h:1711
Vue sur une liste pour obtenir des informations sur les entités.
IItemFamily * itemFamily() const
Famille associée.
void _checkValid(eItemKind expected_kind)
Vérifie que le genre d'entité correspond à celui attendu.
Index d'une entité ItemType dans une variable.
Definition ItemLocalId.h:89
Index d'un Item dans une variable.
Definition ItemLocalId.h:40
Enumérateur sur un tableau de tableaux d'entités du maillage.
Structure interne partagée d'une entité de maillage.
Caractéristiques des éléments du maillage.
Definition ItemTypes.h:621
Vue sur un vecteur d'entités.
Vecteur d'entités.
Definition ItemVector.h:59
Classe de base d'un élément de maillage.
Definition Item.h:83
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Vue sur les informations des noeuds.
NodeInfoListView(IItemFamily *family)
Construit une vue associée à la famille family.
Vue sur les informations des particules.
ParticleInfoListView(IItemFamily *family)
Construit une vue associée à la famille family.
Famille d'entités.
Definition ItemFamily.h:76
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-