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;
110 using AdjacencyGroupMap = std::map<AdjacencyInfo, ItemPairGroup>;
113 using AdjencyGroupMap = AdjacencyGroupMap;
126 void build()
override;
133 Integer nbItem()
const override;
134 Int32 maxLocalId()
const override;
139 void setParentFamily(
IItemFamily * parent)
override;
140 Integer parentFamilyDepth()
const override;
141 void addChildFamily(
IItemFamily * family)
override;
144 void checkValid()
override;
145 void checkValidConnectivity()
override;
154 void endUpdate()
override;
155 void partialEndUpdate()
override;
156 void partialEndUpdateGroup(
const ItemGroup& group)
override;
157 void partialEndUpdateVariable(
IVariable* variable)
override;
173 IMesh* mesh()
const override;
185 void removeNeedRemoveMarkedItems()
override;
198 void notifyItemsOwnerChanged()
override;
205 void notifyItemsUniqueIdChanged()
override;
206 void destroyGroups()
override;
210 IVariable* findVariable(
const String& name,
bool throw_exception)
override;
215 void prepareForDump()
override;
216 void readFromDump()
override;
221 void compactItems(
bool do_sort)
override;
222 void clearItems()
override;
226 ItemSharedInfo* commonItemSharedInfo() {
return m_common_item_shared_info; }
230 ARCANE_DEPRECATED_REASON(
"Y2024: This method is internal to Arcane. Use _infos() instead.")
231 const DynamicMeshKindInfos& infos() const;
235 void setHasUniqueIdMap(
bool v)
override;
236 bool hasUniqueIdMap() const
override;
240 void computeSynchronizeInfos()
override;
287 void removeItem(
Item item)
294 return &m_item_connectivity_list;
299 void _removeOne(
Item item);
300 void _detachOne(
Item item);
306 void _setHasUniqueIdMap(
bool v);
308 void _removeDetachedOne(
Item item);
313 virtual void _endAllocate();
314 virtual void _notifyEndUpdateFromMesh();
320 IMesh* m_mesh =
nullptr;
321 InternalApi* m_internal_api =
nullptr;
324 Integer m_parent_family_depth = 0;
328 std::unique_ptr<DynamicMeshKindInfos> m_infos;
333 bool m_need_prepare_dump =
true;
345 Integer m_current_variable_item_size = 0;
347 std::set<IVariable*> m_used_variables;
352 typedef std::set<IItemConnectivity*> ItemConnectivitySet;
353 ItemConnectivitySet m_source_item_connectivities;
368 void _checkNeedEndUpdate()
const;
369 void _updateSharedInfo();
374 bool _partialEndUpdate();
379 void _buildConnectivitySelectors();
383 return itemInternalConnectivityList();
400 Variables* m_internal_variables =
nullptr;
401 Int32 m_default_sub_domain_owner = A_NULL_RANK;
405 Int32 m_sub_domain_id = A_NULL_RANK;
409 bool m_is_parallel =
false;
421 Integer m_current_id = 0;
423 bool m_item_need_prepare_dump =
false;
427 Int64 m_nb_allocate_info = 0;
431 AdjacencyGroupMap m_adjacency_groups;
438 bool m_use_legacy_compact_item =
false;
443 bool m_do_shrink_after_allocate =
false;
447 ItemTypeMng* _itemTypeMng()
const {
return m_item_type_mng; }
450 ARCANE_DEPRECATED_REASON(
"Y2022: This method is a now a no-operation")
452 ARCANE_DEPRECATED_REASON("
Y2022:
This method is a
now a
no-operation")
453 void _resizeInfos(Integer
memory);
458 Integer _allocMany(Integer
memory);
459 void _setSharedInfosPtr(Integer*
ptr);
461 void _checkValidConnectivity();
462 void _notifyDataIndexChanged();
469 void _checkComputeSynchronizeInfos(Int32 changed);
471 void _invalidateComputedGroups();
472 void _compactItems(
bool do_sort);
473 void _compactOnlyItems(
bool do_sort);
474 void _applyCheckNeedUpdateOnGroups();
479 void _updateItemsSharedFlag();
497 ARCANE_UNUSED(source);
498 ARCANE_UNUSED(target);
501 void _checkValidItem(Item item) { _checkValidItem(ItemCompatibility::_itemInternal(item)); }
502 void _checkValidSourceTargetItems(Item source,Item target)
504 _checkValidItem(ItemCompatibility::_itemInternal(source));
505 _checkValidItem(ItemCompatibility::_itemInternal(target));
510 void _getConnectedItems(IIncrementalItemConnectivity* parent_connectivity,ItemVector& target_family_connected_items);
511 void _fillHasExtraParentProperty(ItemScalarProperty<bool>& child_families_has_extra_parent,ItemVectorView connected_items);
512 void _computeConnectivityInfo(ItemConnectivityInfo* ici);
513 void _updateItemViews();
514 void _resizeItemVariables(
Int32 new_size,
bool force_resize);
515 void _handleOldCheckpoint();
517 void _addSourceConnectivity(IIncrementalItemSourceConnectivity* c);
518 void _addTargetConnectivity(IIncrementalItemTargetConnectivity* c);
519 void _addVariable(IVariable* var);
520 void _removeVariable(IVariable* var);
521 void _resizeVariables(
bool force_resize);
522 void _shrinkConnectivityAndPrintInfos();
Interface d'une famille de particules.
Interface du gestionnaire d'un sous-domaine.