Arcane  v4.1.0.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-2025 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* PolyhedralMesh.h (C) 2000-2025 */
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 "DynamicMeshChecker.h"
46#endif
47
48/*---------------------------------------------------------------------------*/
49/*---------------------------------------------------------------------------*/
50
51namespace Arcane
52{
53class ISubDomain;
55class IGhostLayerMng;
57}
58
59/*---------------------------------------------------------------------------*/
60/*---------------------------------------------------------------------------*/
61
62namespace Arcane::mesh
63{
64
66class PolyhedralFamily;
67class PolyhedralFamilySerializer;
68class PolyhedralFamilySerializerMng;
69namespace PolyhedralTools
70{
71 class ItemLocalIds;
72}
73/*---------------------------------------------------------------------------*/
74/*---------------------------------------------------------------------------*/
75
76class PolyhedralMesh
77: public EmptyMesh
78, public EmptyMeshModifier
80{
81
82 friend class PolyhedralFamily;
83 friend class PolyhedralFamilySerializer;
84
85 private:
86
87 String m_name;
88 ISubDomain* m_subdomain;
89 MeshItemInternalList m_mesh_item_internal_list;
90 inline static const String m_mesh_handle_name = "polyhedral_mesh_handle";
91 MeshHandle m_mesh_handle;
92 std::unique_ptr<Properties> m_properties;
93 std::unique_ptr<PolyhedralMeshImpl> m_mesh; // using pimpl to limit dependency to neo lib to cc file
94 IParallelMng* m_parallel_mng;
95 MeshPartInfo m_mesh_part_info;
96 bool m_is_allocated = false;
97 ItemTypeMng* m_item_type_mng = nullptr;
98 MeshKind m_mesh_kind;
99 MeshEventsImpl m_mesh_events;
100 std::unique_ptr<PolyhedralFamilySerializerMng> m_polyhedral_family_serializer_mng;
101
102 public:
103
104 // IPolyhedralMeshInitialAllocator interface
105 void allocateItems(const Arcane::ItemAllocationInfo& item_allocation_info) override;
106 // Get items local ids after creation. Argument family_ids will be resized in the method
107 void allocateItems(const Arcane::ItemAllocationInfo& item_allocation_info, ArrayView<Int32UniqueArray> family_lids);
108 void scheduleAllocateItems(const Arcane::ItemAllocationInfo::FamilyInfo& family_info, PolyhedralTools::ItemLocalIds& future_item_local_ids);
109 void applyScheduledAllocateItems(UniqueArray<std::shared_ptr<PolyhedralTools::ItemLocalIds>> item_lids);
110 void removeNeedRemoveMarkedItems();
111 PolyhedralFamilySerializerMng* polyhedralFamilySerializerMng();
112
113 public:
114
115 PolyhedralMesh(ISubDomain* subDomain, const MeshBuildInfo& mbi);
116 ~PolyhedralMesh(); // for pimpl idiom
117
118 public:
119
120 static String handleName() { return m_mesh_handle_name; }
121
122 void read(String const& filename);
123
124 void endUpdate();
125
126 const MeshKind meshKind() const override { return m_mesh_kind; }
127
129 {
130 return m_mesh_events.eventObservable(type);
131 }
132
133#ifdef ARCANE_HAS_POLYHEDRAL_MESH_TOOLS
134
135 class InitialAllocator : public IMeshInitialAllocator
136 {
137 PolyhedralMesh& m_mesh;
138
139 public:
140
141 explicit InitialAllocator(PolyhedralMesh& mesh)
142 : m_mesh(mesh)
143 {}
144 IPolyhedralMeshInitialAllocator* polyhedralMeshAllocator() override { return &m_mesh; }
145 };
146
147 class InternalApi;
148 class PolyhedralMeshModifier;
149 class NoCompactionMeshCompacter;
150 class NoCompactionMeshCompactMng;
151
152 private:
153
154 std::vector<std::unique_ptr<PolyhedralFamily>> m_arcane_families;
155 std::array<std::unique_ptr<PolyhedralFamily>, NB_ITEM_KIND> m_empty_arcane_families;
156 std::array<PolyhedralFamily*, NB_ITEM_KIND> m_default_arcane_families;
157 std::vector<std::unique_ptr<VariableItemReal3>> m_arcane_item_coords;
158 std::unique_ptr<VariableNodeReal3> m_arcane_node_coords = nullptr;
159 ItemGroupList m_all_groups;
160 InitialAllocator m_initial_allocator;
161 IVariableMng* m_variable_mng = nullptr;
162 DynamicMeshChecker m_mesh_checker;
163 List<IItemFamily*> m_item_family_collection;
164 std::unique_ptr<InternalApi> m_internal_api;
165 std::unique_ptr<IMeshCompactMng> m_compact_mng;
166 std::unique_ptr<IMeshUtilities> m_mesh_utilities;
167 std::unique_ptr<IMeshExchangeMng> m_mesh_exchange_mng;
168 std::unique_ptr<IItemFamilyNetwork> m_item_family_network;
169 std::unique_ptr<IGhostLayerMng> m_ghost_layer_mng;
170 bool m_is_dynamic = false;
171
172 // IPrimaryMeshBase interface
173 IMeshInitialAllocator* initialAllocator() override { return &m_initial_allocator; }
174
175 void _allocateItems(const Arcane::ItemAllocationInfo& item_allocation_info, ArrayView<Int32UniqueArray> family_lids);
176
177 // IMeshBase interface
178 public:
179
180 MeshHandle handle() const override;
181
182 public:
183
184 void build() override {}
185
186 String name() const override;
187
188 Integer nbNode() override;
189
190 Integer nbEdge() override;
191
192 Integer nbFace() override;
193
194 Integer nbCell() override;
195
196 Integer nbItem(eItemKind ik) override;
197
198 ITraceMng* traceMng() override;
199
200 Integer dimension() override;
201
202 NodeGroup allNodes() override;
203
204 EdgeGroup allEdges() override;
205
206 FaceGroup allFaces() override;
207
208 CellGroup allCells() override;
209
210 NodeGroup ownNodes() override;
211
212 EdgeGroup ownEdges() override;
213
214 FaceGroup ownFaces() override;
215
216 CellGroup ownCells() override;
217
218 FaceGroup outerFaces() override;
219
220 IItemFamily* createItemFamily(eItemKind ik, const String& name) override;
221
222 ISubDomain* subDomain() override { return m_subdomain; }
223 MeshItemInternalList* meshItemInternalList() override { return &m_mesh_item_internal_list; }
224
225 Properties* properties() override { return m_properties.get(); }
226
227 const MeshPartInfo& meshPartInfo() const override { return m_mesh_part_info; };
228
229 IItemFamily* nodeFamily() override;
230 IItemFamily* edgeFamily() override;
231 IItemFamily* faceFamily() override;
232 IItemFamily* cellFamily() override;
233
235
236 IParallelMng* parallelMng() override { return m_subdomain->parallelMng(); }
237
238 bool isAllocated() override { return m_is_allocated; }
239
240 bool isAmrActivated() const override { return false; }
241
242 IItemFamily* itemFamily(eItemKind ik) override;
243
244 ItemTypeMng* itemTypeMng() const override;
245
246 IItemFamily* findItemFamily(eItemKind ik, const String& name, bool create_if_needed, bool register_modifier_if_created) override;
247
248 IMesh* parentMesh() const override { return nullptr; }
249
250 PolyhedralFamily* arcaneDefaultFamily(eItemKind ik);
251
253
254 ItemGroup findGroup(const String& name) override;
255
256 ItemGroupCollection groups() override;
257
258 void destroyGroups() override;
259
260 IGhostLayerMng* ghostLayerMng() const override;
261
262 void checkValidMesh() override
263 {
264 if (!m_is_allocated)
265 return;
266 m_mesh_checker.checkValidMesh();
267 }
268
269 IVariableMng* variableMng() const override { return m_variable_mng; }
270
271 IItemFamilyCollection itemFamilies() override;
272
273 String factoryName() const override;
274
275 IMeshInternal* _internalApi() override;
276
277 IMeshCompactMng* _compactMng() override;
278
279 void exchangeItems() override;
280
281 // For now, use _internalAPI()->polyhedralMeshModifier instead of IMeshModifier not implemented yet
282 IMeshModifier* modifier() override {return this;}
283 bool isDynamic() const override {return m_is_dynamic;}
284 void setDynamic(bool is_dynamic) override { m_is_dynamic = is_dynamic;}
285 void addExtraGhostCellsBuilder(IExtraGhostCellsBuilder*) override
286 {
287 // not yet implemented : must exit in parallel
288 if (m_subdomain->parallelMng()->isParallel()) {
289 ARCANE_NOT_YET_IMPLEMENTED("Parallel for polyhedral mesh is WIP");
290 }
291 }
292 void removeExtraGhostCellsBuilder(IExtraGhostCellsBuilder*) override
293 {
294 // not yet implemented : must exit in parallel
295 if (m_subdomain->parallelMng()->isParallel()) {
296 ARCANE_NOT_YET_IMPLEMENTED("Parallel for polyhedral mesh is WIP");
297 }
298 }
299 void endUpdate(bool, bool) override
300 {
301 // not yet implemented : must exit in parallel
302 if (m_subdomain->parallelMng()->isParallel()) {
303 ARCANE_NOT_YET_IMPLEMENTED("Parallel for polyhedral mesh is WIP");
304 }
305 }
306
307 IMeshUtilities* utilities() override;
308
309 void addNodes(Int64ConstArrayView nodes_uid, Int32ArrayView nodes_lid) override; // wip: add IMeshModifierAPI
310
311 // AMR is not activated with Polyhedral mesh. All items are thus active.
312 CellGroup allActiveCells() override;
313 CellGroup ownActiveCells() override;
314 CellGroup allLevelCells(const Integer& level) override;
315 CellGroup ownLevelCells(const Integer& level) override;
316 FaceGroup allActiveFaces() override;
317 FaceGroup ownActiveFaces() override;
318 FaceGroup innerActiveFaces() override;
319 FaceGroup outerActiveFaces() override;
320
321 IMeshPartitionConstraintMng* partitionConstraintMng() override { return nullptr; }
322
324
325 IItemFamilyNetwork* itemFamilyNetwork() override;
326
327 Integer checkLevel() const override;
328
329 IUserDataList* userDataList() override { return m_mesh_handle.meshUserDataList(); }
330 const IUserDataList* userDataList() const override { return m_mesh_handle.meshUserDataList(); }
331
332 void prepareForDump() override;
333
334 bool useMeshItemFamilyDependencies() const override {return false;}
335
336 IMeshModifierInternal* _modifierInternalApi() override;
337
338 IItemFamilyModifier* findItemFamilyModifier(eItemKind, const String&) override {return nullptr;}
339
340 void connectivities(IItemFamily* source_family);
341
342 private:
343
344 void addItems(Int64ConstArrayView unique_ids, Int32ArrayView local_ids, eItemKind ik, const String& family_name);
345 void addItems(Int64ConstArrayView unique_ids, Int32ArrayView local_ids, Int32ConstArrayView owners, eItemKind ik, const String& family_name);
346 void removeItems(Int32ConstArrayView local_ids, eItemKind ik, const String& family_name);
347 void removeItems(Int32ConstArrayView local_ids, IItemFamily* family);
348
349 PolyhedralFamily* _createItemFamily(eItemKind ik, const String& name);
350 PolyhedralFamily* _itemFamily(eItemKind ik);
351 PolyhedralFamily* _findItemFamily(eItemKind ik, const String& name, bool create_if_needed = false);
352 const char* _className() const { return "PolyhedralMesh"; }
353
354 void _exchangeItems();
355
356 void _endUpdateFamilies();
357
358 void _computeFamilySynchronizeInfos();
359
360 void _notifyEndUpdateForFamilies();
361
362 void _computeGroupSynchronizeInfos();
363
364#endif // ARCANE_HAS_POLYHEDRAL_MESH_TOOLS
365
366 private:
367
368 [[noreturn]] void _errorEmptyMesh() const;
369
370 void _createUnitMesh();
371 void _updateMeshInternalList(eItemKind kind);
372 PolyhedralMeshImpl* _impl();
373};
374
375/*---------------------------------------------------------------------------*/
376/*---------------------------------------------------------------------------*/
377
378} // End namespace Arcane::mesh
379
380/*---------------------------------------------------------------------------*/
381/*---------------------------------------------------------------------------*/
382
383#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.
Definition Event.h:193
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:74
Gestionnaire des types d'entités d'un maillage.
Definition ItemTypeMng.h:65
Paramètres nécessaires à la construction d'un maillage.
Handle sur un maillage.
Definition MeshHandle.h:47
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.
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
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.
-*- 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:498
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:496
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:469
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