Arcane  v4.1.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ItemFamily.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/* ItemFamily.h (C) 2000-2026 */
9/* */
10/* Famille d'entités. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MESH_ITEMFAMILY_H
13#define ARCANE_MESH_ITEMFAMILY_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/List.h"
18#include "arcane/utils/String.h"
19#include "arcane/utils/TraceAccessor.h"
20
21#include "arcane/core/IItemFamily.h"
22#include "arcane/core/ItemPairGroup.h"
23#include "arcane/core/ObserverPool.h"
24#include "arcane/core/IItemConnectivity.h"
25#include "arcane/core/IIncrementalItemConnectivity.h"
26#include "arcane/core/ItemSharedInfo.h"
27#include "arcane/core/ItemGroup.h"
28
29#include <map>
30#include <set>
31
32/*---------------------------------------------------------------------------*/
33/*---------------------------------------------------------------------------*/
34
35namespace Arcane
36{
37class Timer;
39class Properties;
43class IMeshCompacter;
45class ItemDataList;
46template <typename T> class ItemScalarProperty;
47}
48
49/*---------------------------------------------------------------------------*/
50/*---------------------------------------------------------------------------*/
51
52namespace Arcane::mesh
53{
54class ItemInternalMap;
59
60/*---------------------------------------------------------------------------*/
61/*---------------------------------------------------------------------------*/
73class ARCANE_MESH_EXPORT ItemFamily
74: public TraceAccessor
75, public IItemFamily
76{
77 private:
78
79 class Variables;
80 class InternalApi;
81 class AdjacencyInfo
82 {
83 public:
84
85 AdjacencyInfo(const ItemGroup& item_group, const ItemGroup& sub_item_group,
86 eItemKind link_kind, Integer nb_layer)
87 : m_item_group(item_group), m_sub_item_group(sub_item_group),
88 m_link_kind(link_kind), m_nb_layer(nb_layer)
89 {
90 }
91 public:
92 ItemGroup m_item_group;
93 ItemGroup m_sub_item_group;
94 eItemKind m_link_kind;
95 Integer m_nb_layer;
96 public:
97
98 bool operator<(const AdjacencyInfo& rhs) const
99 {
100 if (m_item_group != rhs.m_item_group)
101 return m_item_group < rhs.m_item_group;
102 if (m_sub_item_group != rhs.m_sub_item_group)
103 return m_sub_item_group < rhs.m_sub_item_group;
104 if (m_link_kind != rhs.m_link_kind)
105 return m_link_kind < rhs.m_link_kind;
106 return m_nb_layer < rhs.m_nb_layer;
107 }
108
109 };
110 using AdjacencyGroupMap = std::map<AdjacencyInfo, ItemPairGroup>;
111 // Garde la version avec faute d'ortographe pour des raisons de compatibilité
112 // TODO: à enlever mi 2025
113 using AdjencyGroupMap = AdjacencyGroupMap;
114
119 static bool _cmpIVariablePtr(const IVariable* a, const IVariable* b);
120
121 public:
122
123 using ItemInternalMap = ::Arcane::mesh::ItemInternalMap;
124
125 public:
126
127 ItemFamily(IMesh* mesh,eItemKind ik,const String& name);
128 ~ItemFamily() override; //<! Libère les ressources
129
130 public:
131
132 void build() override;
133
134 public:
135
136 String name() const override { return m_name; }
137 String fullName() const override { return m_full_name; }
138 eItemKind itemKind() const override;
139 Integer nbItem() const override;
140 Int32 maxLocalId() const override;
141 ItemInternalList itemsInternal() override;
142 ItemInfoListView itemInfoListView() override;
143 VariableItemInt32& itemsNewOwner() override;
144 IItemFamily * parentFamily() const override;
145 void setParentFamily(IItemFamily * parent) override;
146 Integer parentFamilyDepth() const override;
147 void addChildFamily(IItemFamily * family) override;
148 IItemFamilyCollection childFamilies() override;
149
150 void checkValid() override;
151 void checkValidConnectivity() override;
152 void checkUniqueIds(Int64ConstArrayView unique_ids) override;
153
154 public:
155
156 ItemInternalMap& itemsMap();
157
158 public:
159
160 void endUpdate() override;
161 void partialEndUpdate() override;
162 void partialEndUpdateGroup(const ItemGroup& group) override;
163 void partialEndUpdateVariable(IVariable* variable) override;
164
165 public:
166
167 void itemsUniqueIdToLocalId(ArrayView<Int64> ids,bool do_fatal=true) const;
168 void itemsUniqueIdToLocalId(Int32ArrayView local_ids,
169 Int64ConstArrayView unique_ids,
170 bool do_fatal) const override;
171 void itemsUniqueIdToLocalId(Int32ArrayView local_ids,
173 bool do_fatal) const override;
174
175 public:
176
177 ISubDomain* subDomain() const override;
178 ITraceMng* traceMng() const override;
179 IMesh* mesh() const override;
180 IParallelMng* parallelMng() const override;
181
182 public:
183
184 IItemConnectivityInfo* localConnectivityInfos() const override;
185 IItemConnectivityInfo* globalConnectivityInfos() const override;
186
187 public:
188
189 void internalRemoveItems(Int32ConstArrayView local_ids,bool keep_ghost =false) override;
190 void removeItems2(ItemDataList& item_data_list) override; // Remove items based on family dependencies (ItemFamilyNetwork)
191 void removeNeedRemoveMarkedItems() override;
192
193 ItemVectorView view(Int32ConstArrayView local_ids) override;
194 ItemVectorView view() override;
195
196 ItemInternal* findOneItem(Int64 uid) override;
197
198 public:
199
200 ItemGroup allItems() const override;
201
202 public:
203
204 void notifyItemsOwnerChanged() override;
205 ItemGroup findGroup(const String& name) const override;
206 ItemGroup findGroup(const String& name,bool create_if_needed) override;
207 ItemGroup createGroup(const String& name,Int32ConstArrayView elements,bool do_override=false) override;
208 ItemGroup createGroup(const String& name) override;
209 ItemGroup createGroup(const String& name,const ItemGroup& parent,bool do_override=false) override;
210 ItemGroupCollection groups() const override;
211 void notifyItemsUniqueIdChanged() override;
212 void destroyGroups() override;
213
214 public:
215
216 IVariable* findVariable(const String& name,bool throw_exception) override;
217 void usedVariables(VariableCollection collection) override;
218
219 public:
220
221 void prepareForDump() override;
222 void readFromDump() override;
223 void copyItemsValues(Int32ConstArrayView source,Int32ConstArrayView destination) override;
224 void copyItemsMeanValues(Int32ConstArrayView first_source,
225 Int32ConstArrayView second_source,
226 Int32ConstArrayView destination) override;
227 void compactItems(bool do_sort) override;
228 void clearItems() override;
229
230 Int64ArrayView* uniqueIds();
231
232 ItemSharedInfo* commonItemSharedInfo() { return m_common_item_shared_info; }
233
234 public:
235
236 ARCANE_DEPRECATED_REASON("Y2024: This method is internal to Arcane. Use _infos() instead.")
237 const DynamicMeshKindInfos& infos() const;
238
239 public:
240
241 void setHasUniqueIdMap(bool v) override;
242 bool hasUniqueIdMap() const override;
243
244 public:
245
246 void computeSynchronizeInfos() override;
247 void getCommunicatingSubDomains(Int32Array& sub_domains) const override;
248 void synchronize(VariableCollection variables) override;
249 void synchronize(VariableCollection variables, Int32ConstArrayView local_ids) override;
250 IVariableSynchronizer* allItemsSynchronizer() override;
251
252 void reduceFromGhostItems(IVariable* v,IDataOperation* operation) override;
253 void reduceFromGhostItems(IVariable* v,Parallel::eReduceType operation) override;
254
255 public:
256
257 ARCANE_DEPRECATED_REASON("Y2024: use findAdjacencyItems() instead")
258 ItemPairGroup findAdjencyItems(const ItemGroup& group,
259 const ItemGroup& sub_group,eItemKind link_kind,
260 Integer layer) override;
261 ItemPairGroup findAdjacencyItems(const ItemGroup& group,
262 const ItemGroup& sub_group, eItemKind link_kind,
263 Integer layer) override;
264 IParticleFamily* toParticleFamily() override { return nullptr; }
265 void setItemSortFunction(IItemInternalSortFunction* sort_function) override;
266 IItemInternalSortFunction* itemSortFunction() const override;
267
268 public:
269
270 void addSourceConnectivity(IItemConnectivity* connectivity) override;
271 void addTargetConnectivity(IItemConnectivity* connectivity) override;
272 void removeSourceConnectivity(IItemConnectivity* connectivity) override;
273 void removeTargetConnectivity(IItemConnectivity* connectivity) override;
274 void setConnectivityMng(IItemConnectivityMng* connectivity_mng) override;
275
276 void addGhostItems(Int64ConstArrayView unique_ids, Int32ArrayView items, Int32ConstArrayView owners) override;
278 void experimentalChangeUniqueId(ItemLocalId local_id,ItemUniqueId unique_id) override;
279
280 IItemFamilyPolicyMng* policyMng() override { return m_policy_mng; }
281 Properties* properties() override { return m_properties; }
282 IItemFamilyInternal* _internalApi() override;
283
284 public:
285
286 //NOTE: Cette méthode doit être virtuelle pour que PolyhedralMesh puisse positionner la politique.
287 virtual void setPolicyMng(IItemFamilyPolicyMng* policy_mng);
288
289 public:
290
291 void beginCompactItems(ItemFamilyCompactInfos& compact_infos);
294 void compactVariablesAndGroups(const ItemFamilyCompactInfos& compact_infos);
295 void finishCompactItems(ItemFamilyCompactInfos& compact_infos);
296 void removeItem(Item item)
297 {
298 _removeOne(item);
299 }
305
306 protected:
307
308 void _removeOne(Item item);
309 void _detachOne(Item item);
310 ItemInternalList _itemsInternal();
311 ItemInternal* _itemInternal(Int32 local_id);
312 ItemInternal* _allocOne(Int64 unique_id);
313 ItemInternal* _allocOne(Int64 unique_id, bool& need_alloc);
314 ItemInternal* _findOrAllocOne(Int64 uid, bool& is_alloc);
315 void _setHasUniqueIdMap(bool v);
316 void _removeMany(Int32ConstArrayView local_ids);
317 void _removeDetachedOne(Item item);
318 const DynamicMeshKindInfos& _infos() const;
319
320 void _detachCells2(Int32ConstArrayView local_ids);
321
322 virtual void _endAllocate();
323 virtual void _notifyEndUpdateFromMesh();
324
325 protected:
326
327 String m_name;
328 String m_full_name;
329 IMesh* m_mesh = nullptr;
330 InternalApi* m_internal_api = nullptr;
331 ISubDomain* m_sub_domain = nullptr;
332 IItemFamily* m_parent_family = nullptr;
333 Integer m_parent_family_depth = 0;
334
335 private:
336
337 std::unique_ptr<DynamicMeshKindInfos> m_infos;
338
339 protected:
340
341 ItemGroupList m_item_groups;
342 bool m_need_prepare_dump = true;
343 MeshItemInternalList* m_item_internal_list = nullptr;
344
345 private:
346
347 ItemSharedInfo* m_common_item_shared_info = nullptr;
348
349 protected:
350
351 ItemSharedInfoList* m_item_shared_infos = nullptr;
352 ObserverPool m_observers;
353 Ref<IVariableSynchronizer> m_variable_synchronizer;
354 Integer m_current_variable_item_size = 0;
355 IItemInternalSortFunction* m_item_sort_function = nullptr;
356 std::set<IVariable*, decltype(&_cmpIVariablePtr)> m_used_variables;
357 std::set<IVariable*, decltype(&_cmpIVariablePtr)> m_used_shmem_variables;
358 UniqueArray<ItemFamily*> m_child_families;
359 ItemConnectivityInfo* m_local_connectivity_info = nullptr;
360 ItemConnectivityInfo* m_global_connectivity_info = nullptr;
361 Properties* m_properties = nullptr;
362 typedef std::set<IItemConnectivity*> ItemConnectivitySet;
363 ItemConnectivitySet m_source_item_connectivities;
364 ItemConnectivitySet m_target_item_connectivities;
366
367 private:
368
369 UniqueArray<Ref<IIncrementalItemSourceConnectivity>> m_source_incremental_item_connectivities;
370 UniqueArray<Ref<IIncrementalItemTargetConnectivity>> m_target_incremental_item_connectivities;
371
372 protected:
373
374 IItemFamilyPolicyMng* m_policy_mng = nullptr;
375
376 protected:
377
378 void _checkNeedEndUpdate() const;
379 void _updateSharedInfo();
380
381 void _allocateInfos(ItemInternal* item,Int64 uid,ItemSharedInfoWithType* isi);
382 void _allocateInfos(ItemInternal* item,Int64 uid,ItemTypeInfo* type);
383 void _endUpdate(bool need_check_remove);
384 bool _partialEndUpdate();
385 void _updateGroup(ItemGroup group,bool need_check_remove);
386 void _updateVariable(IVariable* var);
387
388 void _addConnectivitySelector(ItemConnectivitySelector* selector);
389 void _buildConnectivitySelectors();
390 void _preAllocate(Int32 nb_item,bool pre_alloc_connectivity);
391 ItemInternalConnectivityList* _unstructuredItemInternalConnectivityList()
392 {
394 }
395
396 public:
397
398 IItemFamilyTopologyModifier* _topologyModifier() override { return m_topology_modifier; }
399 void resizeVariables(bool force_resize) override
400 {
401 _resizeShMemVariables();
402 _resizeVariables(force_resize);
403 }
404
405 private:
406
407 Int64Array* m_items_unique_id = nullptr;
408 Int32Array* m_items_owner = nullptr;
409 Int32Array* m_items_flags = nullptr;
410 Int16Array* m_items_type_id = nullptr;
411 Int32Array* m_items_nb_parent = nullptr;
412 // TODO: a supprimer car redondant avec le champ correspondant de ItemSharedInfo
413 Int64ArrayView m_items_unique_id_view;
414 Variables* m_internal_variables = nullptr;
415 Int32 m_default_sub_domain_owner = A_NULL_RANK;
416
417 protected:
418
419 Int32 m_sub_domain_id = A_NULL_RANK;
420
421 private:
422
423 bool m_is_parallel = false;
424
436
437 bool m_item_need_prepare_dump = false;
438
439 private:
440
441 Int64 m_nb_allocate_info = 0;
442
443 private:
444
445 AdjacencyGroupMap m_adjacency_groups;
446 UniqueArray<ItemConnectivitySelector*> m_connectivity_selector_list;
447 IItemFamilyTopologyModifier* m_topology_modifier = nullptr;
450
451 UniqueArray<ItemConnectivitySelector*> m_connectivity_selector_list_by_item_kind;
452 bool m_use_legacy_compact_item = false;
453
454 private:
455
456 ItemTypeMng* m_item_type_mng = nullptr;
457 bool m_do_shrink_after_allocate = false;
458
459 protected:
460
461 ItemTypeMng* _itemTypeMng() const { return m_item_type_mng; }
462 virtual IItemInternalSortFunction* _defaultItemSortFunction();
463
464 ARCANE_DEPRECATED_REASON("Y2022: This method is a now a no-operation")
465 void _reserveInfosMemory(Integer memory);
466 ARCANE_DEPRECATED_REASON("Y2022: This method is a now a no-operation")
467 void _resizeInfos(Integer memory);
468
469 ItemSharedInfoWithType* _findSharedInfo(ItemTypeInfo* type);
470
471 ARCANE_DEPRECATED_REASON("Y2022: This method always return 0")
472 Integer _allocMany(Integer memory);
473 void _setSharedInfosPtr(Integer* ptr);
474 void _checkValid();
475 void _checkValidConnectivity();
476 void _notifyDataIndexChanged();
477 void _processNewGroup(ItemGroup group);
478 String _variableName(const String& base_name) const;
479 template<class Type> void
480 _synchronizeVariable(IVariable* var,Type* var_value,Integer nb_elem);
481 void _updateGroups(bool check_need_remove);
482 void _compactFromParentFamily(const ItemFamilyCompactInfos& compact_infos);
483 void _checkComputeSynchronizeInfos(Int32 changed);
484 void _readGroups();
485 void _invalidateComputedGroups();
486 void _compactItems(bool do_sort);
487 void _compactOnlyItems(bool do_sort);
488 void _applyCheckNeedUpdateOnGroups();
489 void _setTopologyModifier(IItemFamilyTopologyModifier* tm);
490
491 private:
492
493 void _updateItemsSharedFlag();
494
495 protected:
496
497 void _checkValidItem(ItemInternal* item)
498 {
499#ifdef ARCANE_CHECK
500 arcaneThrowIfNull(item,"item","Invalid null item");
501#else
502 ARCANE_UNUSED(item);
503#endif
504 }
505 void _checkValidSourceTargetItems(ItemInternal* source,ItemInternal* target)
506 {
507#ifdef ARCANE_CHECK
508 arcaneThrowIfNull(source,"source","Invalid null source item");
509 arcaneThrowIfNull(target,"target","Invalid null target item");
510#else
511 ARCANE_UNUSED(source);
512 ARCANE_UNUSED(target);
513#endif
514 }
515 void _checkValidItem(Item item) { _checkValidItem(ItemCompatibility::_itemInternal(item)); }
516 void _checkValidSourceTargetItems(Item source,Item target)
517 {
518 _checkValidItem(ItemCompatibility::_itemInternal(source));
519 _checkValidItem(ItemCompatibility::_itemInternal(target));
520 }
521
522 private:
523
524 void _getConnectedItems(IIncrementalItemConnectivity* parent_connectivity,ItemVector& target_family_connected_items);
525 void _fillHasExtraParentProperty(ItemScalarProperty<bool>& child_families_has_extra_parent,ItemVectorView connected_items);
526 void _computeConnectivityInfo(ItemConnectivityInfo* ici);
527 void _updateItemViews();
528 void _resizeItemVariables(Int32 new_size,bool force_resize);
529 void _handleOldCheckpoint();
530
531 void _addSourceConnectivity(IIncrementalItemSourceConnectivity* c);
532 void _addTargetConnectivity(IIncrementalItemTargetConnectivity* c);
533 void _addVariable(IVariable* var);
534 void _removeVariable(IVariable* var);
535 void _resizeVariables(bool force_resize);
536 void _resizeShMemVariables();
537 void _shrinkConnectivityAndPrintInfos();
538 void _addOnSizeChangedObservable(VariableRef& var_ref);
539};
540
541/*---------------------------------------------------------------------------*/
542/*---------------------------------------------------------------------------*/
543
544} // End namespace ARcane::mesh
545
546/*---------------------------------------------------------------------------*/
547/*---------------------------------------------------------------------------*/
548
549#endif
Vue modifiable d'un tableau d'un type T.
Vue constante d'un tableau de type T.
Classe gérant les observateurs associés à un évènement.
Interface d'une opération sur une donnée.
Interface pour gérer une connectivité incrémentale.
Interface des informations sur la connectivité par type d'entité.
Interface pour gérer une connectivité.
Partie interne de IItemFamily.
Interface des politiques d'une famille d'entités.
Interface de modification de la topologie des entités d'une famille.
Interface d'une famille d'entités.
Definition IItemFamily.h:84
Interface d'une fonction de tri des entités.
Gestion d'un compactage de familles du maillage.
Interface du gestionnaire de parallélisme pour un sous-domaine.
Interface d'une famille de particules.
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:74
Interface du gestionnaire de traces.
Interface d'un service de synchronisation de variable.
Interface d'une variable.
Definition IVariable.h:39
Informations pour gérer le compactage des entités d'une famille.
Groupe d'entités de maillage.
Definition ItemGroup.h:49
Vue sur une liste pour obtenir des informations sur les entités.
Informations de connectivité, pour une famille d'entité, permettant la transition entre les anciennes...
Structure interne d'une entité de maillage.
Index d'un Item dans une variable.
Definition ItemLocalId.h:41
Tableau de listes d'entités.
Structure interne partagée d'une entité de maillage.
Infos sur un type d'entité du maillage.
Gestionnaire des types d'entités d'un maillage.
Definition ItemTypeMng.h:65
Identifiant unique d'une entité.
Vue sur un vecteur d'entités.
Classe de base d'un élément de maillage.
Definition Item.h:83
Tableaux d'indirection sur les entités d'un maillage.
Liste d'observateurs.
Liste de propriétés.
Definition Properties.h:64
Référence à une instance.
Chaîne de caractères unicode.
Gestion d'un timer.
Definition Timer.h:62
TraceAccessor(ITraceMng *m)
Construit un accesseur via le gestionnaire de trace m.
Vecteur 1D de données avec sémantique par valeur (style STL).
Collection de variables.
Infos de maillage pour un genre donné d'entité.
Informations sur la connectivité par type d'entité.
Sélection entre les connectivités historiques et à la demande.
IMesh * mesh() const override
Maillage associé
String fullName() const override
Nom complet de la famille (avec celui du maillage)
Definition ItemFamily.h:137
ItemInternalConnectivityList m_item_connectivity_list
Accesseur pour les connectivités via Item et ItemInternal.
Definition ItemFamily.h:449
IParticleFamily * toParticleFamily() override
Retourne l'interface de la famille de particule de cette famille.
Definition ItemFamily.h:264
Integer m_current_id
Identifiant de la famille.
Definition ItemFamily.h:435
ItemInternalConnectivityList * itemInternalConnectivityList()
Accesseur pour les connectivités via Item et ItemInternal.
Definition ItemFamily.h:301
IItemFamilyTopologyModifier * _topologyModifier() override
Interface du modificateur de topologie.
Definition ItemFamily.h:398
ItemConnectivitySet m_target_item_connectivities
connectivite ou ItemFamily == SourceFamily
Definition ItemFamily.h:364
static bool _cmpIVariablePtr(const IVariable *a, const IVariable *b)
Fonction permettant de comparer deux noms de variable (strcmp).
IItemConnectivityMng * m_connectivity_mng
connectivite ou ItemFamily == TargetFamily
Definition ItemFamily.h:365
Properties * properties() override
Propriétés associées à cette famille.
Definition ItemFamily.h:281
void resizeVariables(bool force_resize) override
Redimensionne les variables de cette famille.
Definition ItemFamily.h:399
String name() const override
Nom de la famille.
Definition ItemFamily.h:136
IItemFamilyPolicyMng * policyMng() override
Interface des comportements/politiques associées à cette famille.
Definition ItemFamily.h:280
Tableau associatif de ItemInternal.
Infos de maillage pour un genre donné d'entité.
Classe temporaire pour conserver un ItemSharedInfo et un type d'entité.
ItemVariableScalarRefT< Int32 > VariableItemInt32
Grandeur de type entier 32 bits.
eReduceType
Types des réductions supportées.
Implémentation de la concurrence.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Array< Int64 > Int64Array
Tableau dynamique à une dimension d'entiers 64 bits.
Definition UtilsTypes.h:125
ArrayView< Int64 > Int64ArrayView
Equivalent C d'un tableau à une dimension d'entiers 64 bits.
Definition UtilsTypes.h:451
Collection< ItemGroup > ItemGroupCollection
Collection de groupes d'éléments du maillage.
std::int64_t Int64
Type entier signé sur 64 bits.
Array< Int16 > Int16Array
Tableau dynamique à une dimension d'entiers 16 bits.
Definition UtilsTypes.h:129
Int32 Integer
Type représentant un entier.
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:482
List< ItemGroup > ItemGroupList
Tableau de groupes d'éléments du maillage.
ConstArrayView< ItemInternal * > ItemInternalList
Type de la liste interne des entités.
Definition ItemTypes.h:466
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:480
ArrayView< Int32 > Int32ArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:453
eItemKind
Genre d'entité de maillage.
Array< Int32 > Int32Array
Tableau dynamique à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:127
std::int32_t Int32
Type entier signé sur 32 bits.
Type
Type of JSON value.
Definition rapidjson.h:730