Arcane  4.2.3.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
PolyhedralMesh.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/* PolyhedralMesh.h (C) 2000-2026 */
9/* */
10/* Polyhedral mesh impl using Neo data structure */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13#ifndef ARCANE_POLYHEDRALMESH_H
14#define ARCANE_POLYHEDRALMESH_H
15/*---------------------------------------------------------------------------*/
16/*---------------------------------------------------------------------------*/
17
18#include "arcane/core/MeshHandle.h"
19#include "arcane/core/ItemGroup.h"
20#include "arcane/core/MeshItemInternalList.h"
21#include "arcane/core/ISubDomain.h"
22#include "arcane/core/Properties.h"
24
25#include "arcane/mesh/EmptyMesh.h"
26#include "arcane/mesh/EmptyMeshModifier.h"
27#include "arcane/mesh/MeshEventsImpl.h"
28
29#include "arcane/core/ItemAllocationInfo.h"
31#include "arcane/utils/Collection.h"
32#include "arcane/utils/String.h"
33#include "arcane/utils/List.h"
34#include "arcane/core/IMeshInitialAllocator.h"
35#include "arcane/core/IParallelMng.h"
36#include "arcane/core/MeshKind.h"
37
38#include <memory>
39
40#ifdef ARCANE_HAS_POLYHEDRAL_MESH_TOOLS
41#include <vector>
42#include <array>
43
44#include "arcane/core/IVariableMng.h"
45#include "arcane/mesh/DynamicMeshChecker.h"
46#include "arcane/mesh/GhostLayerBuilder.h"
47#endif
48
49/*---------------------------------------------------------------------------*/
50/*---------------------------------------------------------------------------*/
51
52namespace Arcane
53{
54class ISubDomain;
56class IGhostLayerMng;
58class GhostLayerBuilder;
59} // namespace Arcane
60
61/*---------------------------------------------------------------------------*/
62/*---------------------------------------------------------------------------*/
63
64namespace Arcane::mesh
65{
66
68class PolyhedralFamily;
69class PolyhedralFamilySerializer;
70class PolyhedralFamilySerializerMng;
71namespace PolyhedralTools
72{
73 class ItemLocalIds;
74}
75/*---------------------------------------------------------------------------*/
76/*---------------------------------------------------------------------------*/
77
78class PolyhedralMesh
79: public EmptyMesh
80, public EmptyMeshModifier
82{
83
84 friend class PolyhedralFamily;
85 friend class PolyhedralFamilySerializer;
86
87 private:
88
89 String m_name;
90 ISubDomain* m_subdomain;
91 MeshItemInternalList m_mesh_item_internal_list;
92 inline static const String m_mesh_handle_name = "polyhedral_mesh_handle";
93 MeshHandle m_mesh_handle;
94 std::unique_ptr<Properties> m_properties;
95 std::unique_ptr<PolyhedralMeshImpl> m_mesh; // using pimpl to limit dependency to neo lib to cc file
96 IParallelMng* m_parallel_mng;
97 MeshPartInfo m_mesh_part_info;
98 bool m_is_allocated = false;
99 ItemTypeMng* m_item_type_mng = nullptr;
100 MeshKind m_mesh_kind;
101 MeshEventsImpl m_mesh_events;
102 std::unique_ptr<PolyhedralFamilySerializerMng> m_polyhedral_family_serializer_mng;
103 VariableScalarInteger m_connectivity; // todo use MeshVariables (when adding dump handling)
104 std::unique_ptr<GhostLayerBuilder> m_ghost_layer_builder = nullptr;
105
106 public:
107
108 // IPolyhedralMeshInitialAllocator interface
109 void allocateItems(const Arcane::ItemAllocationInfo& item_allocation_info) override;
110 // Get items local ids after creation. Argument family_ids will be resized in the method
111 void allocateItems(const Arcane::ItemAllocationInfo& item_allocation_info, ArrayView<Int32UniqueArray> family_lids);
112 void scheduleAllocateItems(const Arcane::ItemAllocationInfo::FamilyInfo& family_info, PolyhedralTools::ItemLocalIds& future_item_local_ids);
113 void applyScheduledAllocateItems(UniqueArray<std::shared_ptr<PolyhedralTools::ItemLocalIds>> item_lids);
114 void removeNeedRemoveMarkedItems();
115 PolyhedralFamilySerializerMng* polyhedralFamilySerializerMng();
116
117 public:
118
119 PolyhedralMesh(ISubDomain* subDomain, const MeshBuildInfo& mbi);
120 ~PolyhedralMesh(); // for pimpl idiom
121
122 public:
123
124 static String handleName() { return m_mesh_handle_name; }
125
126 void read(String const& filename);
127
128 void endUpdate();
129
130 const MeshKind meshKind() const override { return m_mesh_kind; }
131
133 {
134 return m_mesh_events.eventObservable(type);
135 }
136
137#ifdef ARCANE_HAS_POLYHEDRAL_MESH_TOOLS
138
139 class InitialAllocator : public IMeshInitialAllocator
140 {
141 PolyhedralMesh& m_mesh;
142
143 public:
144
145 explicit InitialAllocator(PolyhedralMesh& mesh)
146 : m_mesh(mesh)
147 {}
148 IPolyhedralMeshInitialAllocator* polyhedralMeshAllocator() override { return &m_mesh; }
149 };
150
151 class InternalApi;
152 class PolyhedralMeshModifier;
153 class NoCompactionMeshCompacter;
154 class NoCompactionMeshCompactMng;
155
156 private:
157
158 std::vector<std::unique_ptr<PolyhedralFamily>> m_arcane_families;
159 std::array<std::unique_ptr<PolyhedralFamily>, NB_ITEM_KIND> m_empty_arcane_families;
160 std::array<PolyhedralFamily*, NB_ITEM_KIND> m_default_arcane_families;
161 std::vector<std::unique_ptr<VariableItemReal3>> m_arcane_item_coords;
162 std::unique_ptr<VariableNodeReal3> m_arcane_node_coords = nullptr;
163 ItemGroupList m_all_groups;
164 InitialAllocator m_initial_allocator;
165 IVariableMng* m_variable_mng = nullptr;
166 DynamicMeshChecker m_mesh_checker;
167 List<IItemFamily*> m_item_family_collection;
168 std::unique_ptr<InternalApi> m_internal_api;
169 std::unique_ptr<IMeshCompactMng> m_compact_mng;
170 std::unique_ptr<IMeshUtilities> m_mesh_utilities;
171 std::unique_ptr<IMeshExchangeMng> m_mesh_exchange_mng;
172 std::unique_ptr<IItemFamilyNetwork> m_item_family_network;
173 std::unique_ptr<IGhostLayerMng> m_ghost_layer_mng;
174 bool m_is_dynamic = false;
175
176 // IPrimaryMeshBase interface
177 IMeshInitialAllocator* initialAllocator() override { return &m_initial_allocator; }
178
179 void _allocateItems(const Arcane::ItemAllocationInfo& item_allocation_info, ArrayView<Int32UniqueArray> family_lids);
180
181 // IMeshBase interface
182 public:
183
184 MeshHandle handle() const override;
185
186 public:
187
188 void build() override {}
189
190 String name() const override;
191
192 Integer nbNode() override;
193
194 Integer nbEdge() override;
195
196 Integer nbFace() override;
197
198 Integer nbCell() override;
199
200 Integer nbItem(eItemKind ik) override;
201
202 ITraceMng* traceMng() override;
203
204 Integer dimension() override;
205
206 NodeGroup allNodes() override;
207
208 EdgeGroup allEdges() override;
209
210 FaceGroup allFaces() override;
211
212 CellGroup allCells() override;
213
214 NodeGroup ownNodes() override;
215
216 EdgeGroup ownEdges() override;
217
218 FaceGroup ownFaces() override;
219
220 CellGroup ownCells() override;
221
222 FaceGroup outerFaces() override;
223
224 IItemFamily* createItemFamily(eItemKind ik, const String& name) override;
225
226 ISubDomain* subDomain() override { return m_subdomain; }
227 MeshItemInternalList* meshItemInternalList() override { return &m_mesh_item_internal_list; }
228
229 Properties* properties() override { return m_properties.get(); }
230
231 const MeshPartInfo& meshPartInfo() const override { return m_mesh_part_info; };
232
233 IItemFamily* nodeFamily() override;
234 IItemFamily* edgeFamily() override;
235 IItemFamily* faceFamily() override;
236 IItemFamily* cellFamily() override;
237
239
240 IParallelMng* parallelMng() override { return m_subdomain->parallelMng(); }
241
242 bool isAllocated() override { return m_is_allocated; }
243
244 bool isAmrActivated() const override { return false; }
245
246 IItemFamily* itemFamily(eItemKind ik) override;
247
248 ItemTypeMng* itemTypeMng() const override;
249
250 IItemFamily* findItemFamily(eItemKind ik, const String& name, bool create_if_needed, bool register_modifier_if_created) override;
251
252 IMesh* parentMesh() const override { return nullptr; }
253
254 PolyhedralFamily* arcaneDefaultFamily(eItemKind ik);
255
257
258 ItemGroup findGroup(const String& name) override;
259
260 ItemGroupCollection groups() override;
261
262 void destroyGroups() override;
263
264 IGhostLayerMng* ghostLayerMng() const override;
265
266 void checkValidMesh() override
267 {
268 if (!m_is_allocated)
269 return;
270 m_mesh_checker.checkValidMesh();
271 }
272
273 IVariableMng* variableMng() const override { return m_variable_mng; }
274
275 IItemFamilyCollection itemFamilies() override;
276
277 String factoryName() const override;
278
279 IMeshInternal* _internalApi() override;
280
281 IMeshCompactMng* _compactMng() override;
282
283 void exchangeItems() override;
284
285 void updateGhostLayers(bool remove_old_ghost) override;
286
287 // For now, use _internalAPI()->polyhedralMeshModifier instead of IMeshModifier not implemented yet
288 IMeshModifier* modifier() override {return this;}
289 bool isDynamic() const override {return m_is_dynamic;}
290 void setDynamic(bool is_dynamic) override { m_is_dynamic = is_dynamic;}
291 void addExtraGhostCellsBuilder(IExtraGhostCellsBuilder*) override
292 {
293 // not yet implemented : must exit in parallel
294 if (m_subdomain->parallelMng()->isParallel()) {
295 ARCANE_NOT_YET_IMPLEMENTED("Parallel for polyhedral mesh is WIP");
296 }
297 }
298 void removeExtraGhostCellsBuilder(IExtraGhostCellsBuilder*) override
299 {
300 // not yet implemented : must exit in parallel
301 if (m_subdomain->parallelMng()->isParallel()) {
302 ARCANE_NOT_YET_IMPLEMENTED("Parallel for polyhedral mesh is WIP");
303 }
304 }
305 void endUpdate(bool, bool) override
306 {
307 // not yet implemented : must exit in parallel
308 if (m_subdomain->parallelMng()->isParallel()) {
309 ARCANE_NOT_YET_IMPLEMENTED("Parallel for polyhedral mesh is WIP");
310 }
311 }
312
313 IMeshUtilities* utilities() override;
314
315 void addNodes(Int64ConstArrayView nodes_uid, Int32ArrayView nodes_lid) override; // wip: add IMeshModifierAPI
316
317 // AMR is not activated with Polyhedral mesh. All items are thus active.
318 CellGroup allActiveCells() override;
319 CellGroup ownActiveCells() override;
320 CellGroup allLevelCells(const Integer& level) override;
321 CellGroup ownLevelCells(const Integer& level) override;
322 FaceGroup allActiveFaces() override;
323 FaceGroup ownActiveFaces() override;
324 FaceGroup innerActiveFaces() override;
325 FaceGroup outerActiveFaces() override;
326
327 IMeshPartitionConstraintMng* partitionConstraintMng() override { return nullptr; }
328
330
331 IItemFamilyNetwork* itemFamilyNetwork() override;
332
333 Integer checkLevel() const override;
334
335 IUserDataList* userDataList() override { return m_mesh_handle.meshUserDataList(); }
336 const IUserDataList* userDataList() const override { return m_mesh_handle.meshUserDataList(); }
337
338 void prepareForDump() override;
339
340 bool useMeshItemFamilyDependencies() const override {return false;}
341
342 IMeshModifierInternal* _modifierInternalApi() override;
343
344 IItemFamilyModifier* findItemFamilyModifier(eItemKind, const String&) override {return nullptr;}
345
346 VariableScalarInteger connectivity() override {return m_connectivity;}
347
348 void connectivities(IItemFamily* source_family);
349
350 private:
351
352 void addItems(Int64ConstArrayView unique_ids, Int32ArrayView local_ids, eItemKind ik, const String& family_name);
353 void addItems(Int64ConstArrayView unique_ids, Int32ArrayView local_ids, Int32ConstArrayView owners, eItemKind ik, const String& family_name);
354 void removeItems(Int32ConstArrayView local_ids, eItemKind ik, const String& family_name);
355 void removeItems(Int32ConstArrayView local_ids, IItemFamily* family);
356
357 PolyhedralFamily* _createItemFamily(eItemKind ik, const String& name);
358 PolyhedralFamily* _itemFamily(eItemKind ik);
359 PolyhedralFamily* _findItemFamily(eItemKind ik, const String& name, bool create_if_needed = false);
360
361 void _internalUpdateGhost(bool update_ghost_layer, bool remove_old_ghost);
362 void _finalizeMeshChanged();
363 void _internalEndUpdateInit(bool cond);
364 void _synchronizeGroups();
365 void _internalEndUpdateResizeVariables();
366 void _synchronizeVariables();
367 void _internalEndUpdateFinal(bool print_stat);
368 void _removeGhostItems();
369
370 const char* _className() const { return "PolyhedralMesh"; }
371
372 void _exchangeItems();
373
374 void _endUpdateFamilies();
375
376 void _computeFamilySynchronizeInfos();
377
378 void _notifyEndUpdateForFamilies();
379
380 void _computeGroupSynchronizeInfos();
381
382#endif // ARCANE_HAS_POLYHEDRAL_MESH_TOOLS
383
384 private:
385
386 [[noreturn]] void _errorEmptyMesh() const;
387
388 void _createUnitMesh();
389 void _updateMeshInternalList(eItemKind kind);
390 PolyhedralMeshImpl* _impl();
391};
392
393/*---------------------------------------------------------------------------*/
394/*---------------------------------------------------------------------------*/
395
396} // End namespace Arcane::mesh
397
398/*---------------------------------------------------------------------------*/
399/*---------------------------------------------------------------------------*/
400
401#endif //ARCANE_POLYHEDRALMESH_H
Fichier de configuration d'Arcane.
Déclarations des types généraux de Arcane.
Vue modifiable d'un tableau d'un type T.
Classe de base d'un handler d'évènement.
virtual String name() const =0
Nom du maillage.
Interface du gestionnaire des échanges de maillages entre sous-domaines.
Interface d'allocation des entités du maillage.
Interface du gestionnaire de parallélisme pour un sous-domaine.
Allocateur pour les maillages polyédriques.
virtual IMeshInitialAllocator * initialAllocator()
Allocateur initial spécifique.
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:77
Gestionnaire des types d'entités d'un maillage.
Definition ItemTypeMng.h:64
Paramètres nécessaires à la construction d'un maillage.
Handle sur un maillage.
Definition MeshHandle.h:48
Tableaux d'indirection sur les entités d'un maillage.
Caractéristiques d'un maillage.
Definition MeshKind.h:111
Informations un maillage partitionné.
bool get(const String &name, bool &value) const
Valeur de la propriété de nom name.
Chaîne de caractères unicode.
Vecteur 1D de données avec sémantique par valeur (style STL).
void addNodes(Int64ConstArrayView, Int32ArrayView) override
Ajoute des noeuds.
void updateGhostLayers() override
Mise à jour de la couche fantôme.
IMeshModifierInternal * _modifierInternalApi() override
API interne à Arcane.
void setDynamic(bool) override
Positionne la propriété indiquant si le maillage peut évoluer.
void addExtraGhostCellsBuilder(IExtraGhostCellsBuilder *) override
ajout du algorithme d'ajout de mailles fantômes "extraordinaires".
void removeExtraGhostCellsBuilder(IExtraGhostCellsBuilder *) override
Supprime l'association à l'instance builder.
CellGroup ownLevelCells(const Integer &) override
Groupe de toutes les mailles propres de niveau level.
Definition EmptyMesh.h:323
void destroyGroups() override
Détruit tous les groupes de toutes les familles.
Definition EmptyMesh.h:361
Integer nbNode() override
Nombre de noeuds du maillage.
Definition EmptyMesh.h:115
ITraceMng * traceMng() override
Gestionnaire de message associé
Definition EmptyMesh.h:140
FaceGroup ownFaces() override
Groupe de toutes les faces propres au domaine.
Definition EmptyMesh.h:180
IItemFamily * createItemFamily(eItemKind, const String &) override
Créé une famille de particule de nom name.
Definition EmptyMesh.h:198
IUserDataList * userDataList() override
Gestionnnaire de données utilisateurs associé
Definition EmptyMesh.h:465
IItemFamily * itemFamily(eItemKind) override
Retourne la famille d'entité de type ik.
Definition EmptyMesh.h:218
IItemFamily * faceFamily() override
Retourne la famille des faces.
Definition EmptyMesh.h:233
VariableItemInt32 & itemsNewOwner(eItemKind) override
Variable contenant l'identifiant du sous-domaine propriétaire.
Definition EmptyMesh.h:97
ItemTypeMng * itemTypeMng() const override
Gestionnaire de types d'entités associé
Definition EmptyMesh.h:540
VariableNodeReal3 & nodesCoordinates() override
Coordonnées des noeuds.
Definition EmptyMesh.h:86
IMeshPartitionConstraintMng * partitionConstraintMng() override
Gestionnaire des contraintes de partitionnement associées à ce maillage.
Definition EmptyMesh.h:407
FaceGroup outerFaces() override
Groupe de toutes les faces sur la frontière.
Definition EmptyMesh.h:190
Integer dimension() override
Dimension du maillage (1D, 2D ou 3D).
Definition EmptyMesh.h:145
IGhostLayerMng * ghostLayerMng() const override
Gestionnare de couche fantômes associé
Definition EmptyMesh.h:478
bool useMeshItemFamilyDependencies() const override
check if the network itemFamily dependencies is activated
Definition EmptyMesh.h:499
IMeshModifier * modifier() override
Interface de modification associée.
Definition EmptyMesh.h:428
IMeshCompactMng * _compactMng() override
Definition EmptyMesh.h:517
Integer nbCell() override
Nombre de mailles du maillage.
Definition EmptyMesh.h:130
IParallelMng * parallelMng() override
Gestionnaire de parallèlisme.
Definition EmptyMesh.h:294
void exchangeItems() override
Change les sous-domaines propriétaires des entités.
Definition EmptyMesh.h:103
IItemFamily * edgeFamily() override
Retourne la famille des arêtes.
Definition EmptyMesh.h:228
VariableScalarInteger connectivity() override
Descripteur de connectivité
Definition EmptyMesh.h:302
InternalConnectivityPolicy _connectivityPolicy() const override
Politique d'utilisation des connectivitées.
Definition EmptyMesh.h:522
FaceGroup allActiveFaces() override
Groupe de toutes les faces actives.
Definition EmptyMesh.h:328
void checkValidMesh() override
Vérification de la validité des structues internes de maillage (interne).
Definition EmptyMesh.h:267
void prepareForDump() override
Prépare l'instance en vue d'une protection.
Definition EmptyMesh.h:375
ItemGroupCollection groups() override
Liste des groupes.
Definition EmptyMesh.h:351
IItemFamilyModifier * findItemFamilyModifier(eItemKind, const String &) override
Retourne l'interface IItemFamilyModifier pour famille de nom name et de type ik.
Definition EmptyMesh.h:213
CellGroup allActiveCells() override
Definition EmptyMesh.h:308
Properties * properties() override
Propriétés associées à ce maillage.
Definition EmptyMesh.h:420
Integer nbEdge() override
Nombre d'arêtes du maillage.
Definition EmptyMesh.h:120
FaceGroup innerActiveFaces() override
Groupe de toutes les faces actives.
Definition EmptyMesh.h:338
IItemFamily * cellFamily() override
Retourne la famille des mailles.
Definition EmptyMesh.h:238
CellGroup ownActiveCells() override
Groupe de toutes les mailles actives et propres au domaine.
Definition EmptyMesh.h:313
FaceGroup allFaces() override
Groupe de toutes les faces.
Definition EmptyMesh.h:160
const MeshPartInfo & meshPartInfo() const override
Informations sur les parties du maillage.
Definition EmptyMesh.h:493
IVariableMng * variableMng() const override
Gestionnaire de variable associé
Definition EmptyMesh.h:535
MeshHandle handle() const override
Handle sur ce maillage.
Definition EmptyMesh.h:77
ItemGroup findGroup(const String &) override
Retourne le groupe de nom name ou le groupe nul s'il n'y en a pas.
Definition EmptyMesh.h:356
IMeshUtilities * utilities() override
Interface des fonctions utilitaires associée.
Definition EmptyMesh.h:415
IItemFamily * nodeFamily() override
Retourne la famille des noeuds.
Definition EmptyMesh.h:223
Integer checkLevel() const override
Niveau actuel de vérification.
Definition EmptyMesh.h:378
Integer nbFace() override
Nombre de faces du maillage.
Definition EmptyMesh.h:125
EdgeGroup allEdges() override
Groupe de toutes les arêtes.
Definition EmptyMesh.h:155
IItemFamily * findItemFamily(eItemKind, const String &, bool, bool) override
Retourne la famille de nom name.
Definition EmptyMesh.h:203
IItemFamilyNetwork * itemFamilyNetwork() override
Interface du réseau de familles (familles connectées).
Definition EmptyMesh.h:504
CellGroup ownCells() override
Groupe de toutes les mailles propres au domaine.
Definition EmptyMesh.h:185
CellGroup allLevelCells(const Integer &) override
Groupe de toutes les mailles de niveau level.
Definition EmptyMesh.h:318
NodeGroup ownNodes() override
Groupe de tous les noeuds propres au domaine.
Definition EmptyMesh.h:170
IMeshInternal * _internalApi() override
API interne à Arcane.
Definition EmptyMesh.h:551
NodeGroup allNodes() override
Groupe de tous les noeuds.
Definition EmptyMesh.h:150
FaceGroup ownActiveFaces() override
Groupe de toutes les faces actives propres au domaine.
Definition EmptyMesh.h:333
bool isDynamic() const override
Indique si le maillage est dynamique (peut évoluer).
Definition EmptyMesh.h:383
String name() const override
Nom du maillage.
Definition EmptyMesh.h:110
bool isAllocated() override
Vrai si le maillage est allouée.
Definition EmptyMesh.h:273
FaceGroup outerActiveFaces() override
Groupe de toutes les faces actives sur la frontière.
Definition EmptyMesh.h:343
IMesh * parentMesh() const override
Accès au maillage parent.
Definition EmptyMesh.h:437
CellGroup allCells() override
Groupe de toutes les mailles.
Definition EmptyMesh.h:165
String factoryName() const override
Nom de la fabrique utilisée pour créer le maillage.
Definition EmptyMesh.h:252
EdgeGroup ownEdges() override
Groupe de toutes les arêtes propres au domaine.
Definition EmptyMesh.h:175
Integer nbItem(eItemKind) override
Nombre d'éléments du genre ik.
Definition EmptyMesh.h:135
Implémentation des évènements sur le maillage.
EventObservable< const MeshEventArgs & > & eventObservable(eMeshEventType type) override
Observable pour un évènement.
void endUpdate()
Notifie l'instance de la fin de la modification du maillage.
const MeshKind meshKind() const override
Caractéristiques du maillage.
ItemGroupT< Cell > CellGroup
Groupe de mailles.
Definition ItemTypes.h:183
ItemGroupT< Face > FaceGroup
Groupe de faces.
Definition ItemTypes.h:178
ItemGroupT< Edge > EdgeGroup
Groupe d'arêtes.
Definition ItemTypes.h:173
ItemGroupT< Node > NodeGroup
Groupe de noeuds.
Definition ItemTypes.h:167
MeshVariableScalarRefT< Node, Real3 > VariableNodeReal3
Grandeur au noeud de type coordonnées.
ItemVariableScalarRefT< Int32 > VariableItemInt32
Grandeur de type entier 32 bits.
VariableRefScalarT< Integer > VariableScalarInteger
Variable scalaire de type entier.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Collection< ItemGroup > ItemGroupCollection
Collection de groupes d'éléments du maillage.
Int32 Integer
Type représentant un entier.
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:480
List< ItemGroup > ItemGroupList
Tableau de groupes d'éléments du maillage.
Collection< IItemFamily * > IItemFamilyCollection
Collection de familles d'entités.
ConstArrayView< Int64 > Int64ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 64 bits.
Definition UtilsTypes.h:478
eMeshEventType
Evènements générés par IMesh.
Definition MeshEvents.h:30
ArrayView< Int32 > Int32ArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:451
eItemKind
Genre d'entité de maillage.
InternalConnectivityPolicy
Politique d'utilisation des connectivités.
Definition ItemTypes.h:516
@ NewOnly
Alloue uniquement les nouvelles connectivités.
Definition ItemTypes.h:554