98 if (m_item_group !=
rhs.m_item_group)
99 return m_item_group <
rhs.m_item_group;
100 if (m_sub_item_group !=
rhs.m_sub_item_group)
101 return m_sub_item_group <
rhs.m_sub_item_group;
102 if (m_link_kind !=
rhs.m_link_kind)
103 return m_link_kind <
rhs.m_link_kind;
104 return m_nb_layer <
rhs.m_nb_layer;
108 typedef std::map<AdjencyInfo,ItemPairGroup> AdjencyGroupMap;
121 void build()
override;
128 Integer nbItem()
const override;
129 Int32 maxLocalId()
const override;
134 void setParentFamily(
IItemFamily * parent)
override;
135 Integer parentFamilyDepth()
const override;
136 void addChildFamily(
IItemFamily * family)
override;
139 void checkValid()
override;
140 void checkValidConnectivity()
override;
149 void endUpdate()
override;
150 void partialEndUpdate()
override;
151 void partialEndUpdateGroup(
const ItemGroup& group)
override;
152 void partialEndUpdateVariable(
IVariable* variable)
override;
168 IMesh* mesh()
const override;
180 void removeNeedRemoveMarkedItems()
override;
193 void notifyItemsOwnerChanged()
override;
200 void notifyItemsUniqueIdChanged()
override;
201 void destroyGroups()
override;
205 IVariable* findVariable(
const String& name,
bool throw_exception)
override;
210 void prepareForDump()
override;
211 void readFromDump()
override;
216 void compactItems(
bool do_sort)
override;
217 void clearItems()
override;
221 ItemSharedInfo* commonItemSharedInfo() {
return m_common_item_shared_info; }
225 ARCANE_DEPRECATED_REASON(
"Y2024: This method is internal to Arcane. Use _infos() instead.")
226 const DynamicMeshKindInfos& infos() const;
230 void setHasUniqueIdMap(
bool v)
override;
231 bool hasUniqueIdMap() const
override;
235 void computeSynchronizeInfos()
override;
278 void removeItem(
Item item)
285 return &m_item_connectivity_list;
290 void _removeOne(
Item item);
291 void _detachOne(
Item item);
297 void _setHasUniqueIdMap(
bool v);
299 void _removeDetachedOne(
Item item);
304 virtual void _endAllocate();
305 virtual void _notifyEndUpdateFromMesh();
311 IMesh* m_mesh =
nullptr;
312 InternalApi* m_internal_api =
nullptr;
315 Integer m_parent_family_depth = 0;
319 std::unique_ptr<DynamicMeshKindInfos> m_infos;
324 bool m_need_prepare_dump =
true;
336 Integer m_current_variable_item_size = 0;
338 std::set<IVariable*> m_used_variables;
343 typedef std::set<IItemConnectivity*> ItemConnectivitySet;
344 ItemConnectivitySet m_source_item_connectivities;
359 void _checkNeedEndUpdate()
const;
360 void _updateSharedInfo();
365 bool _partialEndUpdate();
370 void _buildConnectivitySelectors();
374 return itemInternalConnectivityList();
391 Variables* m_internal_variables =
nullptr;
392 Int32 m_default_sub_domain_owner = A_NULL_RANK;
396 Int32 m_sub_domain_id = A_NULL_RANK;
400 bool m_is_parallel =
false;
412 Integer m_current_id = 0;
414 bool m_item_need_prepare_dump =
false;
418 Int64 m_nb_allocate_info = 0;
422 AdjencyGroupMap m_adjency_groups;
429 bool m_use_legacy_compact_item =
false;
434 bool m_do_shrink_after_allocate =
false;
438 ItemTypeMng* _itemTypeMng()
const {
return m_item_type_mng; }
441 ARCANE_DEPRECATED_REASON(
"Y2022: This method is a now a no-operation")
443 ARCANE_DEPRECATED_REASON("
Y2022:
This method is a
now a
no-operation")
444 void _resizeInfos(Integer
memory);
449 Integer _allocMany(Integer
memory);
450 void _setSharedInfosPtr(Integer*
ptr);
452 void _checkValidConnectivity();
453 void _notifyDataIndexChanged();
460 void _checkComputeSynchronizeInfos(Int32 changed);
462 void _invalidateComputedGroups();
463 void _compactItems(
bool do_sort);
464 void _compactOnlyItems(
bool do_sort);
465 void _applyCheckNeedUpdateOnGroups();
470 void _updateItemsSharedFlag();
488 ARCANE_UNUSED(source);
489 ARCANE_UNUSED(target);
492 void _checkValidItem(Item item) { _checkValidItem(ItemCompatibility::_itemInternal(item)); }
493 void _checkValidSourceTargetItems(Item source,Item target)
495 _checkValidItem(ItemCompatibility::_itemInternal(source));
496 _checkValidItem(ItemCompatibility::_itemInternal(target));
501 void _getConnectedItems(IIncrementalItemConnectivity* parent_connectivity,ItemVector& target_family_connected_items);
502 void _fillHasExtraParentProperty(ItemScalarProperty<bool>& child_families_has_extra_parent,ItemVectorView connected_items);
503 void _computeConnectivityInfo(ItemConnectivityInfo* ici);
504 void _updateItemViews();
505 void _resizeItemVariables(
Int32 new_size,
bool force_resize);
506 void _handleOldCheckpoint();
508 void _addSourceConnectivity(IIncrementalItemSourceConnectivity* c);
509 void _addTargetConnectivity(IIncrementalItemTargetConnectivity* c);
510 void _addVariable(IVariable* var);
511 void _removeVariable(IVariable* var);
512 void _resizeVariables(
bool force_resize);
513 void _shrinkConnectivityAndPrintInfos();
Interface d'une famille de particules.
Interface du gestionnaire d'un sous-domaine.