Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::mesh::ItemFamily Class Reference

Entity Family. More...

#include <arcane/mesh/ItemFamily.h>

Inheritance diagram for Arcane::mesh::ItemFamily:
Collaboration diagram for Arcane::mesh::ItemFamily:

Classes

class  AdjacencyInfo
class  InternalApi
class  Variables

Public Types

using ItemInternalMap = ::Arcane::mesh::ItemInternalMap

Public Member Functions

 ItemFamily (IMesh *mesh, eItemKind ik, const String &name)
void build () override
String name () const override
 Family name.
String fullName () const override
 Full family name (with the mesh's name).
eItemKind itemKind () const override
 Entity kind.
Integer nbItem () const override
 Number of entities.
Int32 maxLocalId () const override
ItemInternalList itemsInternal () override
 Internal array of entities.
ItemInfoListView itemInfoListView () override
 View on the entity information list.
VariableItemInt32itemsNewOwner () override
 Variable containing the number of the new subdomain owning the entity.
IItemFamilyparentFamily () const override
 IItemFamily parent.
void setParentFamily (IItemFamily *parent) override
 Positions the parent IItemFamily.
Integer parentFamilyDepth () const override
 Gives the nesting depth of the current mesh.
void addChildFamily (IItemFamily *family) override
 Adds a family as a dependency.
IItemFamilyCollection childFamilies () override
 Child families of this family.
void checkValid () override
 Check the validity of internal structures (internal).
void checkValidConnectivity () override
 Verification of the validity of internal structures concerning connectivity.
void checkUniqueIds (Int64ConstArrayView unique_ids) override
 Checks that the unique_ids are truly unique for all subdomains.
ItemInternalMap & itemsMap ()
void endUpdate () override
 Notifies the end of modification of the entity list.
void partialEndUpdate () override
 Partial update.
void partialEndUpdateGroup (const ItemGroup &group) override
 Updates a group.
void partialEndUpdateVariable (IVariable *variable) override
 Updates a variable.
void itemsUniqueIdToLocalId (ArrayView< Int64 > ids, bool do_fatal=true) const
void itemsUniqueIdToLocalId (Int32ArrayView local_ids, Int64ConstArrayView unique_ids, bool do_fatal) const override
 Converts an array of unique numbers to local numbers.
void itemsUniqueIdToLocalId (Int32ArrayView local_ids, ConstArrayView< ItemUniqueId > unique_ids, bool do_fatal) const override
 Converts an array of unique numbers to local numbers.
ISubDomainsubDomain () const override
 Associated sub-domain.
ITraceMngtraceMng () const override
 Associated trace manager.
IMeshmesh () const override
 Associated mesh.
IParallelMngparallelMng () const override
 Associated parallelism manager.
IItemConnectivityInfolocalConnectivityInfos () const override
 Information on local connectivity within the subdomain for this family.
IItemConnectivityInfoglobalConnectivityInfos () const override
 Information on global connectivity across all subdomains.
void internalRemoveItems (Int32ConstArrayView local_ids, bool keep_ghost=false) override
 Removes the entities given by local_ids.
void removeItems2 (ItemDataList &item_data_list) override
 Removes entities.
void removeNeedRemoveMarkedItems () override
 Removes entities and updates connectivities.
ItemVectorView view (Int32ConstArrayView local_ids) override
 View on the entities.
ItemVectorView view () override
 View on all entities in the family.
ItemInternalfindOneItem (Int64 uid) override
 Unique ID entity unique_id.
ItemGroup allItems () const override
 Group of all entities.
void notifyItemsOwnerChanged () override
 Notifies that the entities specific to the family's subdomain have been modified.
ItemGroup findGroup (const String &name) const override
 Searches for a group.
ItemGroup findGroup (const String &name, bool create_if_needed) override
 Searches for a group.
ItemGroup createGroup (const String &name, Int32ConstArrayView elements, bool do_override=false) override
 Creates an entity group named name containing the entities local_ids.
ItemGroup createGroup (const String &name) override
 Creates an entity group named name.
ItemGroup createGroup (const String &name, const ItemGroup &parent, bool do_override=false) override
ItemGroupCollection groups () const override
 Collection of groups in this family.
void notifyItemsUniqueIdChanged () override
 Notifies that the unique IDs of the entities have been modified.
void destroyGroups () override
 Deletes all groups in this family.
IVariablefindVariable (const String &name, bool throw_exception) override
 Searches for the variable name name associated with this family.
void usedVariables (VariableCollection collection) override
 Adds the list of variables used by this family to the collection.
void prepareForDump () override
 Prepares data for dumping.
void readFromDump () override
 Reads data from a dump.
void copyItemsValues (Int32ConstArrayView source, Int32ConstArrayView destination) override
void copyItemsMeanValues (Int32ConstArrayView first_source, Int32ConstArrayView second_source, Int32ConstArrayView destination) override
void compactItems (bool do_sort) override
 Compresses the entities.
void clearItems () override
 Deletes all entities in the family.
Int64ArrayViewuniqueIds ()
ItemSharedInfocommonItemSharedInfo ()
const DynamicMeshKindInfosinfos () const
void setHasUniqueIdMap (bool v) override
 Indicates whether the family has a conversion table from uniqueId to localId.
bool hasUniqueIdMap () const override
 Indicates if the family has a uniqueId to localId conversion table.
void computeSynchronizeInfos () override
 Constructs the structures necessary for synchronization.
void getCommunicatingSubDomains (Int32Array &sub_domains) const override
 List of communicating sub-domains for the entities.
void synchronize (VariableCollection variables) override
 Synchronizes the variables variables.
void synchronize (VariableCollection variables, Int32ConstArrayView local_ids) override
 Synchronizes the variables variables on a list of entities.
IVariableSynchronizerallItemsSynchronizer () override
 Synchronizer on all entities of the family.
void reduceFromGhostItems (IVariable *v, IDataOperation *operation) override
 Applies a reduction operation from ghost items.
void reduceFromGhostItems (IVariable *v, Parallel::eReduceType operation) override
 Applies a reduction operation from ghost items.
ItemPairGroup findAdjencyItems (const ItemGroup &group, const ItemGroup &sub_group, eItemKind link_kind, Integer layer) override
 Searches for an adjacency list.
ItemPairGroup findAdjacencyItems (const ItemGroup &group, const ItemGroup &sub_group, eItemKind link_kind, Integer layer) override
 Searches for an adjacency list.
IParticleFamilytoParticleFamily () override
 Returns the interface of the particle family for this family.
void setItemSortFunction (IItemInternalSortFunction *sort_function) override
 Positions the entity sorting function.
IItemInternalSortFunctionitemSortFunction () const override
 Entity sorting function.
void addSourceConnectivity (IItemConnectivity *connectivity) override
void addTargetConnectivity (IItemConnectivity *connectivity) override
void removeSourceConnectivity (IItemConnectivity *connectivity) override
void removeTargetConnectivity (IItemConnectivity *connectivity) override
void setConnectivityMng (IItemConnectivityMng *connectivity_mng) override
void addGhostItems (Int64ConstArrayView unique_ids, Int32ArrayView items, Int32ConstArrayView owners) override
 Allocates ghost entities.
EventObservableView< const ItemFamilyItemListChangedEventArgs & > itemListChangedEvent () override
 Event for entity addition and deletion.
void experimentalChangeUniqueId (ItemLocalId local_id, ItemUniqueId unique_id) override
 Changes the unique number of the entity.
IItemFamilyPolicyMngpolicyMng () override
 Interface of behaviors/policies associated with this family.
Propertiesproperties () override
 Properties associated with this family.
IItemFamilyInternal_internalApi () override
 Internal Arcane API.
virtual void setPolicyMng (IItemFamilyPolicyMng *policy_mng)
void beginCompactItems (ItemFamilyCompactInfos &compact_infos)
void compactVariablesAndGroups (const ItemFamilyCompactInfos &compact_infos)
 Compresses the variables and groups.
void finishCompactItems (ItemFamilyCompactInfos &compact_infos)
void removeItem (Item item)
ItemInternalConnectivityListitemInternalConnectivityList ()
 Accessor for connectivities via Item and ItemInternal.
IItemFamilyTopologyModifier_topologyModifier () override
 Topology modifier interface.
void resizeVariables (bool force_resize) override
 Resizes the variables of this family.
Public Member Functions inherited from Arcane::TraceAccessor
 TraceAccessor (ITraceMng *m)
 Constructs an accessor via the trace manager m.
 TraceAccessor (const TraceAccessor &rhs)
 Copy constructor.
TraceAccessoroperator= (const TraceAccessor &rhs)
 Copy assignment operator.
virtual ~TraceAccessor ()
 Frees resources.
ITraceMngtraceMng () const
 Trace manager.
TraceMessage info () const
 Flow for an information message.
TraceMessage pinfo () const
 Flow for a parallel information message.
TraceMessage info (char category) const
 Flow for an information message of a given category.
TraceMessage pinfo (char category) const
 Flow for a parallel information message of a given category.
TraceMessage info (bool v) const
 Flow for an information message.
TraceMessage warning () const
 Flow for a warning message.
TraceMessage pwarning () const
TraceMessage error () const
 Flow for an error message.
TraceMessage perror () const
TraceMessage log () const
 Flow for a log message.
TraceMessage plog () const
 Flow for a log message.
TraceMessage logdate () const
 Flow for a log message preceded by the date.
TraceMessage fatal () const
 Flow for a fatal error message.
TraceMessage pfatal () const
 Flow for a parallel fatal error message.
TraceMessageDbg debug (Trace::eDebugLevel=Trace::Medium) const
 Flow for a debug message.
Trace::eDebugLevel configDbgLevel () const
 Debug level of the configuration file.
TraceMessage info (Int32 verbose_level) const
 Flow for an information message of a given level.
TraceMessage linfo () const
 Flow for an information message with the local information level of this instance.
TraceMessage linfo (Int32 relative_level) const
 Flow for an information message with the local information level of this instance.
void fatalMessage (const StandaloneTraceMessage &o) const
Public Member Functions inherited from Arcane::IItemFamily
virtual IDoFFamilytoDoFFamily ()
 Returns the interface of the particle family for this family.

Protected Types

typedef std::set< IItemConnectivity * > ItemConnectivitySet

Protected Member Functions

void _removeOne (Item item)
void _detachOne (Item item)
ItemInternalList _itemsInternal ()
ItemInternal_itemInternal (Int32 local_id)
ItemInternal_allocOne (Int64 unique_id)
ItemInternal_allocOne (Int64 unique_id, bool &need_alloc)
ItemInternal_findOrAllocOne (Int64 uid, bool &is_alloc)
void _setHasUniqueIdMap (bool v)
void _removeMany (Int32ConstArrayView local_ids)
void _removeDetachedOne (Item item)
const DynamicMeshKindInfos_infos () const
void _detachCells2 (Int32ConstArrayView local_ids)
virtual void _endAllocate ()
virtual void _notifyEndUpdateFromMesh ()
void _checkNeedEndUpdate () const
void _updateSharedInfo ()
void _allocateInfos (ItemInternal *item, Int64 uid, ItemSharedInfoWithType *isi)
void _allocateInfos (ItemInternal *item, Int64 uid, ItemTypeInfo *type)
void _endUpdate (bool need_check_remove)
bool _partialEndUpdate ()
void _updateGroup (ItemGroup group, bool need_check_remove)
void _updateVariable (IVariable *var)
void _addConnectivitySelector (ItemConnectivitySelector *selector)
void _buildConnectivitySelectors ()
void _preAllocate (Int32 nb_item, bool pre_alloc_connectivity)
ItemInternalConnectivityList_unstructuredItemInternalConnectivityList ()
ItemTypeMng_itemTypeMng () const
virtual IItemInternalSortFunction_defaultItemSortFunction ()
void _reserveInfosMemory (Integer memory)
void _resizeInfos (Integer memory)
ItemSharedInfoWithType_findSharedInfo (ItemTypeInfo *type)
Integer _allocMany (Integer memory)
void _setSharedInfosPtr (Integer *ptr)
void _checkValid ()
void _checkValidConnectivity ()
void _notifyDataIndexChanged ()
void _processNewGroup (ItemGroup group)
String _variableName (const String &base_name) const
template<class Type>
void _synchronizeVariable (IVariable *var, Type *var_value, Integer nb_elem)
void _updateGroups (bool check_need_remove)
void _compactFromParentFamily (const ItemFamilyCompactInfos &compact_infos)
 Compresses the connectivities.
void _checkComputeSynchronizeInfos (Int32 changed)
 Test collectif permettant de savoir s'il faut mettre à jour les infos de synchro.
void _readGroups ()
 Relit les groupes depuis une protection et les recréer si besoin.
void _invalidateComputedGroups ()
void _compactItems (bool do_sort)
 Compresses the entities.
void _compactOnlyItems (bool do_sort)
 Compresses the entities without updating references.
void _applyCheckNeedUpdateOnGroups ()
void _setTopologyModifier (IItemFamilyTopologyModifier *tm)
void _checkValidItem (ItemInternal *item)
void _checkValidSourceTargetItems (ItemInternal *source, ItemInternal *target)
void _checkValidItem (Item item)
void _checkValidSourceTargetItems (Item source, Item target)
Protected Member Functions inherited from Arcane::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
Int32 _localVerboseLevel () const

Protected Attributes

String m_name
String m_full_name
IMeshm_mesh = nullptr
InternalApim_internal_api = nullptr
ISubDomainm_sub_domain = nullptr
IItemFamilym_parent_family = nullptr
Integer m_parent_family_depth = 0
ItemGroupList m_item_groups
bool m_need_prepare_dump = true
MeshItemInternalListm_item_internal_list = nullptr
ItemSharedInfoListm_item_shared_infos = nullptr
ObserverPool m_observers
Ref< IVariableSynchronizerm_variable_synchronizer
Integer m_current_variable_item_size = 0
IItemInternalSortFunctionm_item_sort_function = nullptr
std::set< IVariable *, decltype(&_cmpIVariablePtr)> m_used_variables
std::set< IVariable *, decltype(&_cmpIVariablePtr)> m_used_shmem_variables
UniqueArray< ItemFamily * > m_child_families
ItemConnectivityInfom_local_connectivity_info = nullptr
ItemConnectivityInfom_global_connectivity_info = nullptr
Propertiesm_properties = nullptr
ItemConnectivitySet m_source_item_connectivities
ItemConnectivitySet m_target_item_connectivities
 connectivite ou ItemFamily == SourceFamily
IItemConnectivityMngm_connectivity_mng = nullptr
 connectivite ou ItemFamily == TargetFamily
IItemFamilyPolicyMngm_policy_mng = nullptr
Int32 m_sub_domain_id = A_NULL_RANK

Private Types

using AdjacencyGroupMap = std::map<AdjacencyInfo, ItemPairGroup>
using AdjencyGroupMap = AdjacencyGroupMap

Private Member Functions

void _updateItemsSharedFlag ()
 Positions Item::isShared() info for the entities of the family.
void _getConnectedItems (IIncrementalItemConnectivity *parent_connectivity, ItemVector &target_family_connected_items)
void _fillHasExtraParentProperty (ItemScalarProperty< bool > &child_families_has_extra_parent, ItemVectorView connected_items)
void _computeConnectivityInfo (ItemConnectivityInfo *ici)
void _updateItemViews ()
void _resizeItemVariables (Int32 new_size, bool force_resize)
void _handleOldCheckpoint ()
void _addSourceConnectivity (IIncrementalItemSourceConnectivity *c)
void _addTargetConnectivity (IIncrementalItemTargetConnectivity *c)
void _addVariable (IVariable *var)
void _removeVariable (IVariable *var)
void _resizeVariables (bool force_resize)
void _resizeShMemVariables ()
void _shrinkConnectivityAndPrintInfos ()
void _addOnSizeChangedObservable (VariableRef &var_ref)

Static Private Member Functions

static bool _cmpIVariablePtr (const IVariable *a, const IVariable *b)
 Function to compare two variable names (strcmp).

Private Attributes

std::unique_ptr< DynamicMeshKindInfosm_infos
ItemSharedInfom_common_item_shared_info = nullptr
UniqueArray< Ref< IIncrementalItemSourceConnectivity > > m_source_incremental_item_connectivities
UniqueArray< Ref< IIncrementalItemTargetConnectivity > > m_target_incremental_item_connectivities
Int64Arraym_items_unique_id = nullptr
Int32Arraym_items_owner = nullptr
Int32Arraym_items_flags = nullptr
Int16Arraym_items_type_id = nullptr
Int32Arraym_items_nb_parent = nullptr
Int64ArrayView m_items_unique_id_view
Variablesm_internal_variables = nullptr
Int32 m_default_sub_domain_owner = A_NULL_RANK
bool m_is_parallel = false
Integer m_current_id = 0
 Family identifier.
bool m_item_need_prepare_dump = false
Int64 m_nb_allocate_info = 0
AdjacencyGroupMap m_adjacency_groups
UniqueArray< ItemConnectivitySelector * > m_connectivity_selector_list
IItemFamilyTopologyModifierm_topology_modifier = nullptr
ItemInternalConnectivityList m_item_connectivity_list
 Accessor for connectivities via Item and ItemInternal.
UniqueArray< ItemConnectivitySelector * > m_connectivity_selector_list_by_item_kind
bool m_use_legacy_compact_item = false
ItemTypeMngm_item_type_mng = nullptr
bool m_do_shrink_after_allocate = false

Detailed Description

Entity Family.

This class is the base class for classes that manage everything related to a set of entities of the same type, for example, nodes.

For each family, it manages:

Definition at line 73 of file ItemFamily.h.

Member Typedef Documentation

◆ AdjacencyGroupMap

using Arcane::mesh::ItemFamily::AdjacencyGroupMap = std::map<AdjacencyInfo, ItemPairGroup>
private

Definition at line 114 of file ItemFamily.h.

◆ AdjencyGroupMap

using Arcane::mesh::ItemFamily::AdjencyGroupMap = AdjacencyGroupMap
private

Definition at line 117 of file ItemFamily.h.

◆ ItemConnectivitySet

typedef std::set<IItemConnectivity*> Arcane::mesh::ItemFamily::ItemConnectivitySet
protected

Definition at line 366 of file ItemFamily.h.

◆ ItemInternalMap

using Arcane::mesh::ItemFamily::ItemInternalMap = ::Arcane::mesh::ItemInternalMap

Definition at line 127 of file ItemFamily.h.

Constructor & Destructor Documentation

◆ ItemFamily()

Arcane::mesh::ItemFamily::ItemFamily ( IMesh * mesh,
eItemKind ik,
const String & name )

Definition at line 266 of file ItemFamily.cc.

◆ ~ItemFamily()

Arcane::mesh::ItemFamily::~ItemFamily ( )
override

Definition at line 290 of file ItemFamily.cc.

Member Function Documentation

◆ _addConnectivitySelector()

void Arcane::mesh::ItemFamily::_addConnectivitySelector ( ItemConnectivitySelector * selector)
protected

Definition at line 2659 of file ItemFamily.cc.

◆ _addOnSizeChangedObservable()

void Arcane::mesh::ItemFamily::_addOnSizeChangedObservable ( VariableRef & var_ref)
private

Definition at line 2781 of file ItemFamily.cc.

◆ _addSourceConnectivity()

void Arcane::mesh::ItemFamily::_addSourceConnectivity ( IIncrementalItemSourceConnectivity * c)
private

Definition at line 2565 of file ItemFamily.cc.

◆ _addTargetConnectivity()

void Arcane::mesh::ItemFamily::_addTargetConnectivity ( IIncrementalItemTargetConnectivity * c)
private

Definition at line 2574 of file ItemFamily.cc.

◆ _addVariable()

void Arcane::mesh::ItemFamily::_addVariable ( IVariable * var)
private

Definition at line 2123 of file ItemFamily.cc.

◆ _allocateInfos() [1/2]

void Arcane::mesh::ItemFamily::_allocateInfos ( ItemInternal * item,
Int64 uid,
ItemSharedInfoWithType * isi )
protected

Definition at line 1870 of file ItemFamily.cc.

◆ _allocateInfos() [2/2]

void Arcane::mesh::ItemFamily::_allocateInfos ( ItemInternal * item,
Int64 uid,
ItemTypeInfo * type )
protected

Definition at line 1837 of file ItemFamily.cc.

◆ _allocMany()

Integer Arcane::mesh::ItemFamily::_allocMany ( Integer memory)
protected

Definition at line 1808 of file ItemFamily.cc.

◆ _allocOne() [1/2]

ItemInternal * Arcane::mesh::ItemFamily::_allocOne ( Int64 unique_id)
protected

Definition at line 457 of file ItemFamily.cc.

◆ _allocOne() [2/2]

ItemInternal * Arcane::mesh::ItemFamily::_allocOne ( Int64 unique_id,
bool & need_alloc )
protected

Definition at line 462 of file ItemFamily.cc.

◆ _applyCheckNeedUpdateOnGroups()

void Arcane::mesh::ItemFamily::_applyCheckNeedUpdateOnGroups ( )
protected

Definition at line 1410 of file ItemFamily.cc.

◆ _buildConnectivitySelectors()

void Arcane::mesh::ItemFamily::_buildConnectivitySelectors ( )
protected

Definition at line 2668 of file ItemFamily.cc.

◆ _checkComputeSynchronizeInfos()

void Arcane::mesh::ItemFamily::_checkComputeSynchronizeInfos ( Int32 changed)
protected

Test collectif permettant de savoir s'il faut mettre à jour les infos de synchro.

changed is 0 if no update, 1 otherwise.

Definition at line 1474 of file ItemFamily.cc.

References computeSynchronizeInfos(), parallelMng(), Arcane::IParallelMng::reduce(), and Arcane::MessagePassing::ReduceMax.

Referenced by readFromDump().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _checkNeedEndUpdate()

void Arcane::mesh::ItemFamily::_checkNeedEndUpdate ( ) const
protected

Definition at line 1123 of file ItemFamily.cc.

◆ _checkValid()

void Arcane::mesh::ItemFamily::_checkValid ( )
protected

Definition at line 1775 of file ItemFamily.cc.

◆ _checkValidConnectivity()

void Arcane::mesh::ItemFamily::_checkValidConnectivity ( )
protected

Definition at line 2583 of file ItemFamily.cc.

◆ _checkValidItem() [1/2]

void Arcane::mesh::ItemFamily::_checkValidItem ( Item item)
inlineprotected

Definition at line 519 of file ItemFamily.h.

◆ _checkValidItem() [2/2]

void Arcane::mesh::ItemFamily::_checkValidItem ( ItemInternal * item)
inlineprotected

Definition at line 501 of file ItemFamily.h.

◆ _checkValidSourceTargetItems() [1/2]

void Arcane::mesh::ItemFamily::_checkValidSourceTargetItems ( Item source,
Item target )
inlineprotected

Definition at line 520 of file ItemFamily.h.

◆ _checkValidSourceTargetItems() [2/2]

void Arcane::mesh::ItemFamily::_checkValidSourceTargetItems ( ItemInternal * source,
ItemInternal * target )
inlineprotected

Definition at line 509 of file ItemFamily.h.

◆ _cmpIVariablePtr()

bool Arcane::mesh::ItemFamily::_cmpIVariablePtr ( const IVariable * a,
const IVariable * b )
staticprivate

Function to compare two variable names (strcmp).

Returns
True if the name of a is lexicographically less than the name of b.

Definition at line 254 of file ItemFamily.cc.

References Arcane::CStringUtils::isLess(), Arcane::String::localstr(), and Arcane::IVariable::name().

Here is the call graph for this function:

◆ _compactFromParentFamily()

void Arcane::mesh::ItemFamily::_compactFromParentFamily ( const ItemFamilyCompactInfos & compact_infos)
protected

Compresses the connectivities.

Warning
: This method must be called during a compaction (between a call to m_infos.beginCompactItems() and m_infos.endCompactItems()).

Definition at line 1739 of file ItemFamily.cc.

References Arcane::TraceAccessor::debug(), Arcane::ConstArrayView< T >::empty(), fullName(), itemsInternal(), nbItem(), Arcane::ItemFamilyCompactInfos::oldToNewLocalIds(), Arcane::MutableItemBase::setParent(), and Arcane::ConstArrayView< T >::size().

Referenced by compactVariablesAndGroups().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _compactItems()

void Arcane::mesh::ItemFamily::_compactItems ( bool do_sort)
protected

Compresses the entities.

Definition at line 1531 of file ItemFamily.cc.

References Arcane::IMesh::_compactMng(), Arcane::IMeshCompactMng::beginCompact(), Arcane::IMeshCompacter::doAllActions(), Arcane::IMeshCompactMng::endCompact(), mesh(), and Arcane::IMeshCompacter::setSorted().

Referenced by _compactOnlyItems().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _compactOnlyItems()

void Arcane::mesh::ItemFamily::_compactOnlyItems ( bool do_sort)
protected

Compresses the entities without updating references.

If this method is called, you must ensure that compactReference() is called afterward, otherwise the itemsData() array will grow over time.

Definition at line 1491 of file ItemFamily.cc.

References _compactItems().

Referenced by compactItems(), and prepareForDump().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _computeConnectivityInfo()

void Arcane::mesh::ItemFamily::_computeConnectivityInfo ( ItemConnectivityInfo * ici)
private

Definition at line 2725 of file ItemFamily.cc.

◆ _defaultItemSortFunction()

IItemInternalSortFunction * Arcane::mesh::ItemFamily::_defaultItemSortFunction ( )
protectedvirtual

Definition at line 2467 of file ItemFamily.cc.

◆ _detachCells2()

void Arcane::mesh::ItemFamily::_detachCells2 ( Int32ConstArrayView local_ids)
protected

Definition at line 2347 of file ItemFamily.cc.

◆ _detachOne()

void Arcane::mesh::ItemFamily::_detachOne ( Item item)
protected

Definition at line 442 of file ItemFamily.cc.

◆ _endAllocate()

void Arcane::mesh::ItemFamily::_endAllocate ( )
protectedvirtual

Definition at line 648 of file ItemFamily.cc.

◆ _endUpdate()

void Arcane::mesh::ItemFamily::_endUpdate ( bool need_check_remove)
protected

Definition at line 735 of file ItemFamily.cc.

◆ _fillHasExtraParentProperty()

void Arcane::mesh::ItemFamily::_fillHasExtraParentProperty ( ItemScalarProperty< bool > & child_families_has_extra_parent,
ItemVectorView connected_items )
private

Definition at line 2336 of file ItemFamily.cc.

◆ _findOrAllocOne()

ItemInternal * Arcane::mesh::ItemFamily::_findOrAllocOne ( Int64 uid,
bool & is_alloc )
protected

Definition at line 467 of file ItemFamily.cc.

◆ _findSharedInfo()

ItemSharedInfoWithType * Arcane::mesh::ItemFamily::_findSharedInfo ( ItemTypeInfo * type)
protected

Definition at line 1818 of file ItemFamily.cc.

◆ _getConnectedItems()

void Arcane::mesh::ItemFamily::_getConnectedItems ( IIncrementalItemConnectivity * parent_connectivity,
ItemVector & target_family_connected_items )
private

Definition at line 2322 of file ItemFamily.cc.

◆ _handleOldCheckpoint()

void Arcane::mesh::ItemFamily::_handleOldCheckpoint ( )
private

Definition at line 2737 of file ItemFamily.cc.

◆ _infos()

const DynamicMeshKindInfos & Arcane::mesh::ItemFamily::_infos ( ) const
protected

Definition at line 429 of file ItemFamily.cc.

◆ _internalApi()

IItemFamilyInternal * Arcane::mesh::ItemFamily::_internalApi ( )
overridevirtual

Internal Arcane API.

Implements Arcane::IItemFamily.

Definition at line 2791 of file ItemFamily.cc.

◆ _invalidateComputedGroups()

void Arcane::mesh::ItemFamily::_invalidateComputedGroups ( )
protected

Definition at line 1425 of file ItemFamily.cc.

◆ _itemInternal()

ItemInternal * Arcane::mesh::ItemFamily::_itemInternal ( Int32 local_id)
protected

Definition at line 452 of file ItemFamily.cc.

◆ _itemsInternal()

ItemInternalList Arcane::mesh::ItemFamily::_itemsInternal ( )
protected

Definition at line 447 of file ItemFamily.cc.

◆ _itemTypeMng()

ItemTypeMng * Arcane::mesh::ItemFamily::_itemTypeMng ( ) const
inlineprotected

Definition at line 465 of file ItemFamily.h.

◆ _notifyDataIndexChanged()

void Arcane::mesh::ItemFamily::_notifyDataIndexChanged ( )
protected

Definition at line 1907 of file ItemFamily.cc.

◆ _notifyEndUpdateFromMesh()

void Arcane::mesh::ItemFamily::_notifyEndUpdateFromMesh ( )
protectedvirtual

Method called by the mesh at the end of an IMesh::endUpdate(). This method is collective and therefore allows collective operations once mesh modifications are finished.

Definition at line 623 of file ItemFamily.cc.

References parallelMng().

Here is the call graph for this function:

◆ _partialEndUpdate()

bool Arcane::mesh::ItemFamily::_partialEndUpdate ( )
protected

Definition at line 702 of file ItemFamily.cc.

◆ _preAllocate()

void Arcane::mesh::ItemFamily::_preAllocate ( Int32 nb_item,
bool pre_alloc_connectivity )
protected

Definition at line 1894 of file ItemFamily.cc.

◆ _processNewGroup()

void Arcane::mesh::ItemFamily::_processNewGroup ( ItemGroup group)
protected

Definition at line 1058 of file ItemFamily.cc.

◆ _readGroups()

void Arcane::mesh::ItemFamily::_readGroups ( )
protected

Relit les groupes depuis une protection et les recréer si besoin.

Definition at line 1445 of file ItemFamily.cc.

References createGroup(), Arcane::TraceAccessor::debug(), findGroup(), name(), Arcane::ItemGroup::null(), and Arcane::ArrayView< T >::size().

Referenced by readFromDump().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _removeDetachedOne()

void Arcane::mesh::ItemFamily::_removeDetachedOne ( Item item)
protected

Definition at line 482 of file ItemFamily.cc.

◆ _removeMany()

void Arcane::mesh::ItemFamily::_removeMany ( Int32ConstArrayView local_ids)
protected

Definition at line 477 of file ItemFamily.cc.

◆ _removeOne()

void Arcane::mesh::ItemFamily::_removeOne ( Item item)
protected

Definition at line 435 of file ItemFamily.cc.

◆ _removeVariable()

void Arcane::mesh::ItemFamily::_removeVariable ( IVariable * var)
private

Definition at line 2139 of file ItemFamily.cc.

◆ _reserveInfosMemory()

void Arcane::mesh::ItemFamily::_reserveInfosMemory ( Integer memory)
protected

Definition at line 1790 of file ItemFamily.cc.

◆ _resizeInfos()

void Arcane::mesh::ItemFamily::_resizeInfos ( Integer memory)
protected

Definition at line 1799 of file ItemFamily.cc.

◆ _resizeItemVariables()

void Arcane::mesh::ItemFamily::_resizeItemVariables ( Int32 new_size,
bool force_resize )
private

Definition at line 1847 of file ItemFamily.cc.

◆ _resizeShMemVariables()

void Arcane::mesh::ItemFamily::_resizeShMemVariables ( )
private

Definition at line 847 of file ItemFamily.cc.

◆ _resizeVariables()

void Arcane::mesh::ItemFamily::_resizeVariables ( bool force_resize)
private

Definition at line 821 of file ItemFamily.cc.

◆ _setHasUniqueIdMap()

void Arcane::mesh::ItemFamily::_setHasUniqueIdMap ( bool v)
protected

Definition at line 472 of file ItemFamily.cc.

◆ _setTopologyModifier()

void Arcane::mesh::ItemFamily::_setTopologyModifier ( IItemFamilyTopologyModifier * tm)
protected

Definition at line 2689 of file ItemFamily.cc.

◆ _shrinkConnectivityAndPrintInfos()

void Arcane::mesh::ItemFamily::_shrinkConnectivityAndPrintInfos ( )
private

Definition at line 663 of file ItemFamily.cc.

◆ _topologyModifier()

IItemFamilyTopologyModifier * Arcane::mesh::ItemFamily::_topologyModifier ( )
inlineoverridevirtual

Topology modifier interface.

Implements Arcane::IItemFamily.

Definition at line 402 of file ItemFamily.h.

Referenced by Arcane::mesh::FaceFamily::replaceBackCellToFace().

Here is the caller graph for this function:

◆ _unstructuredItemInternalConnectivityList()

ItemInternalConnectivityList * Arcane::mesh::ItemFamily::_unstructuredItemInternalConnectivityList ( )
inlineprotected

Definition at line 395 of file ItemFamily.h.

◆ _updateGroup()

void Arcane::mesh::ItemFamily::_updateGroup ( ItemGroup group,
bool need_check_remove )
protected

Definition at line 771 of file ItemFamily.cc.

◆ _updateGroups()

void Arcane::mesh::ItemFamily::_updateGroups ( bool check_need_remove)
protected

Definition at line 791 of file ItemFamily.cc.

◆ _updateItemsSharedFlag()

void Arcane::mesh::ItemFamily::_updateItemsSharedFlag ( )
private

Positions Item::isShared() info for the entities of the family.

This method is only valid if the connectivity info of m_variable_synchronizer is up to date.

Definition at line 2705 of file ItemFamily.cc.

References Arcane::ItemFlags::II_Shared, and Arcane::ConstArrayView< T >::size().

Referenced by computeSynchronizeInfos().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _updateItemViews()

void Arcane::mesh::ItemFamily::_updateItemViews ( )
private

Definition at line 2766 of file ItemFamily.cc.

◆ _updateSharedInfo()

void Arcane::mesh::ItemFamily::_updateSharedInfo ( )
protected

Definition at line 1827 of file ItemFamily.cc.

◆ _updateVariable()

void Arcane::mesh::ItemFamily::_updateVariable ( IVariable * var)
protected

Definition at line 812 of file ItemFamily.cc.

◆ _variableName()

String Arcane::mesh::ItemFamily::_variableName ( const String & base_name) const
protected

Definition at line 312 of file ItemFamily.cc.

◆ addChildFamily()

void Arcane::mesh::ItemFamily::addChildFamily ( IItemFamily * family)
overridevirtual

Adds a family as a dependency.

Operation symmetric to setParentFamily

TODO: To be put in the internal API

Implements Arcane::IItemFamily.

Definition at line 568 of file ItemFamily.cc.

References ARCANE_CHECK_POINTER.

◆ addGhostItems()

void Arcane::mesh::ItemFamily::addGhostItems ( Int64ConstArrayView unique_ids,
Int32ArrayView items,
Int32ConstArrayView owners )
overridevirtual

Allocates ghost entities.

After calling this operation, you must call endUpdate() to notify the instance that the modifications are finished. It is possible to chain several allocations before calling endUpdate().

The unique_ids are those of items present on another sub-domain, whose number is in the owners array (of the same size as the unique_ids array). items must have the same number of elements as unique_ids and will be filled back with the local numbers of the created entities.

Implements Arcane::IItemFamily.

Definition at line 2216 of file ItemFamily.cc.

References ARCANE_THROW.

◆ addSourceConnectivity()

void Arcane::mesh::ItemFamily::addSourceConnectivity ( IItemConnectivity * connectivity)
overridevirtual

Implements Arcane::IItemFamily.

Definition at line 2489 of file ItemFamily.cc.

◆ addTargetConnectivity()

void Arcane::mesh::ItemFamily::addTargetConnectivity ( IItemConnectivity * connectivity)
overridevirtual

Implements Arcane::IItemFamily.

Definition at line 2498 of file ItemFamily.cc.

◆ allItems()

ItemGroup Arcane::mesh::ItemFamily::allItems ( ) const
overridevirtual

Group of all entities.

Implements Arcane::IItemFamily.

Reimplemented in Arcane::mesh::ParticleFamily.

Definition at line 925 of file ItemFamily.cc.

Referenced by Arcane::mesh::DoFFamily::allItems(), Arcane::mesh::ParticleFamily::allItems(), destroyGroups(), and view().

Here is the caller graph for this function:

◆ allItemsSynchronizer()

IVariableSynchronizer * Arcane::mesh::ItemFamily::allItemsSynchronizer ( )
overridevirtual

Synchronizer on all entities of the family.

Implements Arcane::IItemFamily.

Definition at line 2166 of file ItemFamily.cc.

◆ beginCompactItems()

void Arcane::mesh::ItemFamily::beginCompactItems ( ItemFamilyCompactInfos & compact_infos)

Definition at line 1551 of file ItemFamily.cc.

◆ build()

void Arcane::mesh::ItemFamily::build ( )
overridevirtual

Implements Arcane::IItemFamily.

Definition at line 321 of file ItemFamily.cc.

◆ checkUniqueIds()

void Arcane::mesh::ItemFamily::checkUniqueIds ( Int64ConstArrayView unique_ids)
overridevirtual

Checks that the unique_ids are truly unique for all subdomains.

This method DOES NOT check that the unique_ids are identical to those of entities already created. It only checks the set of unique_ids passed as arguments by all subdomains.

This operation is collective and must be called by all subdomains.

Implements Arcane::IItemFamily.

Definition at line 2010 of file ItemFamily.cc.

References Arcane::HashTableMapT< KeyType, ValueType, KeyTraitsType >::add(), Arcane::IParallelMng::allGatherVariable(), Arcane::TraceAccessor::fatal(), Arcane::TraceAccessor::info(), Arcane::HashTableMapT< KeyType, ValueType, KeyTraitsType >::lookup(), name(), Arcane::AbstractArray< T >::size(), and Arcane::ConstArrayView< T >::size().

Here is the call graph for this function:

◆ checkValid()

void Arcane::mesh::ItemFamily::checkValid ( )
overridevirtual

Check the validity of internal structures (internal).

Implements Arcane::IItemFamily.

Definition at line 600 of file ItemFamily.cc.

◆ checkValidConnectivity()

void Arcane::mesh::ItemFamily::checkValidConnectivity ( )
overridevirtual

Verification of the validity of internal structures concerning connectivity.

Implements Arcane::IItemFamily.

Reimplemented in Arcane::mesh::ParticleFamily.

Definition at line 610 of file ItemFamily.cc.

Referenced by Arcane::mesh::ParticleFamily::checkValidConnectivity().

Here is the caller graph for this function:

◆ childFamilies()

IItemFamilyCollection Arcane::mesh::ItemFamily::childFamilies ( )
overridevirtual

Child families of this family.

Implements Arcane::IItemFamily.

Definition at line 578 of file ItemFamily.cc.

◆ clearItems()

void Arcane::mesh::ItemFamily::clearItems ( )
overridevirtual

Deletes all entities in the family.

Warning
be careful not to destroy entities that are used in by another family. In general, it is safer to use IMesh::clearItems() if you want to delete all elements of the mesh.

Implements Arcane::IItemFamily.

Definition at line 1999 of file ItemFamily.cc.

References endUpdate().

Here is the call graph for this function:

◆ commonItemSharedInfo()

ItemSharedInfo * Arcane::mesh::ItemFamily::commonItemSharedInfo ( )
inline

Definition at line 236 of file ItemFamily.h.

◆ compactItems()

void Arcane::mesh::ItemFamily::compactItems ( bool do_sort)
overridevirtual

Compresses the entities.

Implements Arcane::IItemFamily.

Definition at line 1514 of file ItemFamily.cc.

References _compactOnlyItems().

Here is the call graph for this function:

◆ compactVariablesAndGroups()

void Arcane::mesh::ItemFamily::compactVariablesAndGroups ( const ItemFamilyCompactInfos & compact_infos)

Compresses the variables and groups.

Effective compaction of variables, groups, and child families from the data of DynamicMeshKindInfos

Warning
: This method must be called during a compaction (between a call to m_infos->beginCompactItems() and m_info->endCompactItems()).

Definition at line 1673 of file ItemFamily.cc.

References _compactFromParentFamily(), Arcane::ItemGroupImpl::changeIds(), Arcane::IVariableSynchronizer::changeLocalIds(), Arcane::IVariable::compact(), Arcane::TraceAccessor::debug(), Arcane::IVariable::fullName(), fullName(), Arcane::ItemGroup::hasSynchronizer(), Arcane::Trace::High, Arcane::TraceAccessor::info(), Arcane::ItemGroup::internal(), maxLocalId(), Arcane::ItemGroup::name(), nbItem(), Arcane::ItemFamilyCompactInfos::newToOldLocalIds(), Arcane::ItemFamilyCompactInfos::oldToNewLocalIds(), and Arcane::ItemGroup::synchronizer().

Here is the call graph for this function:

◆ computeSynchronizeInfos()

void Arcane::mesh::ItemFamily::computeSynchronizeInfos ( )
overridevirtual

Constructs the structures necessary for synchronization.

This operation must be performed every time the entities of the mesh change ownership (for example, during a load balancing).

This operation is collective.

Implements Arcane::IItemFamily.

Reimplemented in Arcane::mesh::NodeFamily, and Arcane::mesh::ParticleFamily.

Definition at line 1928 of file ItemFamily.cc.

References _updateItemsSharedFlag(), and parallelMng().

Referenced by _checkComputeSynchronizeInfos(), Arcane::mesh::CellFamily::computeSynchronizeInfos(), Arcane::mesh::DoFFamily::computeSynchronizeInfos(), Arcane::mesh::EdgeFamily::computeSynchronizeInfos(), Arcane::mesh::FaceFamily::computeSynchronizeInfos(), Arcane::mesh::NodeFamily::computeSynchronizeInfos(), and Arcane::mesh::ParticleFamily::computeSynchronizeInfos().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ copyItemsMeanValues()

void Arcane::mesh::ItemFamily::copyItemsMeanValues ( Int32ConstArrayView first_source,
Int32ConstArrayView second_source,
Int32ConstArrayView destination )
overridevirtual

Copies the average values of entities numbered first_source and second_source into the entities numbered destination

Parameters
first_sourcelist of localIds of the 1st source
second_sourcelist of localIds of the 2nd source
destinationlist of destination localIds

Implements Arcane::IItemFamily.

Definition at line 1641 of file ItemFamily.cc.

References Arcane::IVariable::copyItemsMeanValues(), Arcane::IVariable::PNoRestore, Arcane::IVariable::property(), Arcane::IVariable::PTemporary, and Arcane::ConstArrayView< T >::size().

Here is the call graph for this function:

◆ copyItemsValues()

void Arcane::mesh::ItemFamily::copyItemsValues ( Int32ConstArrayView source,
Int32ConstArrayView destination )
overridevirtual

Copies the values of entities numbered source into the entities numbered destination

Parameters
sourcelist of source localIds
destinationlist of destination localIds

Implements Arcane::IItemFamily.

Definition at line 1610 of file ItemFamily.cc.

References Arcane::IVariable::copyItemsValues(), and Arcane::ConstArrayView< T >::size().

Here is the call graph for this function:

◆ createGroup() [1/3]

ItemGroup Arcane::mesh::ItemFamily::createGroup ( const String & name)
overridevirtual

Creates an entity group named name.

The group must not already exist, otherwise an exception is raised.

Parameters
namename of the group
Returns
the created group

Implements Arcane::IItemFamily.

Definition at line 963 of file ItemFamily.cc.

References Arcane::TraceAccessor::debug(), Arcane::TraceAccessor::fatal(), findGroup(), name(), and Arcane::ItemGroup::null().

Here is the call graph for this function:

◆ createGroup() [2/3]

ItemGroup Arcane::mesh::ItemFamily::createGroup ( const String & name,
const ItemGroup & parent,
bool do_override = false )
overridevirtual

For Internal Use Only

Implements Arcane::IItemFamily.

Definition at line 984 of file ItemFamily.cc.

References Arcane::TraceAccessor::debug(), Arcane::TraceAccessor::fatal(), findGroup(), Arcane::ItemGroup::internal(), Arcane::ItemGroup::name(), name(), Arcane::ItemGroup::null(), and Arcane::ItemGroupImpl::parentGroup().

Here is the call graph for this function:

◆ createGroup() [3/3]

ItemGroup Arcane::mesh::ItemFamily::createGroup ( const String & name,
Int32ConstArrayView local_ids,
bool do_override = false )
overridevirtual

Creates an entity group named name containing the entities local_ids.

Parameters
namename of the group
local_idslist of localId() of the entities composing the group.
do_overrideif true and a group of the same name already exists, its elements are replaced by those given in local_ids. If false, an exception is raised.
Returns
the created group

Implements Arcane::IItemFamily.

Definition at line 935 of file ItemFamily.cc.

References createGroup(), Arcane::TraceAccessor::debug(), findGroup(), Arcane::Trace::High, name(), Arcane::ItemGroup::null(), Arcane::ItemGroup::setItems(), and Arcane::ConstArrayView< T >::size().

Referenced by _readGroups(), createGroup(), and findGroup().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ destroyGroups()

void Arcane::mesh::ItemFamily::destroyGroups ( )
overridevirtual

Deletes all groups in this family.

Implements Arcane::IItemFamily.

Definition at line 1011 of file ItemFamily.cc.

References allItems(), Arcane::ItemGroupImpl::destroy(), Arcane::ItemGroup::internal(), and Arcane::ItemGroup::isAllItems().

Here is the call graph for this function:

◆ endUpdate()

void Arcane::mesh::ItemFamily::endUpdate ( )
overridevirtual

Notifies the end of modification of the entity list.

This method must be called after modifying the entity list (after adding or removing). It updates the groups and resizes the variables on this family.

Implements Arcane::IItemFamily.

Reimplemented in Arcane::mesh::ParticleFamily.

Definition at line 635 of file ItemFamily.cc.

Referenced by clearItems(), Arcane::mesh::DoFFamily::endUpdate(), Arcane::mesh::ParticleFamily::endUpdate(), and removeItems2().

Here is the caller graph for this function:

◆ experimentalChangeUniqueId()

void Arcane::mesh::ItemFamily::experimentalChangeUniqueId ( ItemLocalId local_id,
ItemUniqueId unique_id )
overridevirtual

Changes the unique number of the entity.

Warning
This method is experimental.
Modifying an entity's uniqueId can cause inconsistencies in the mesh and numbering. It is preferable to only call this method on entities that are not associated with others (for example, nodes that have just been created).

Implements Arcane::IItemFamily.

Definition at line 2545 of file ItemFamily.cc.

References Arcane::mesh::ItemInternalMap::add(), Arcane::mesh::ItemInternalMap::remove(), and Arcane::ItemBase::uniqueId().

Here is the call graph for this function:

◆ findAdjacencyItems()

ItemPairGroup Arcane::mesh::ItemFamily::findAdjacencyItems ( const ItemGroup & group,
const ItemGroup & sub_group,
eItemKind link_kind,
Integer nb_layer )
overridevirtual

Searches for an adjacency list.

Searches for the list of entities of type sub_kind, linked by the entity type link_kind of group group, over a number of layers nb_layer.

If group and sub_group are of the same kind, an entity is always in its adjacency list, as the first element.

If the list does not exist, it is created.

Note
currently only one layer is allowed.

Reimplemented from Arcane::IItemFamily.

Definition at line 2045 of file ItemFamily.cc.

References Arcane::IMeshUtilities::computeAdjacency(), Arcane::TraceAccessor::debug(), mesh(), Arcane::ItemGroup::name(), and Arcane::IMesh::utilities().

Referenced by findAdjencyItems().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ findAdjencyItems()

ItemPairGroup Arcane::mesh::ItemFamily::findAdjencyItems ( const ItemGroup & group,
const ItemGroup & sub_group,
eItemKind link_kind,
Integer nb_layer )
overridevirtual

Searches for an adjacency list.

Implements Arcane::IItemFamily.

Definition at line 2038 of file ItemFamily.cc.

References findAdjacencyItems().

Here is the call graph for this function:

◆ findGroup() [1/2]

ItemGroup Arcane::mesh::ItemFamily::findGroup ( const String & name) const
overridevirtual

Searches for a group.

Parameters
namename of the group to search for
Returns
the group named name or a null group if none exists.

Implements Arcane::IItemFamily.

Definition at line 1087 of file ItemFamily.cc.

References Arcane::ItemGroup::name(), and name().

Referenced by _readGroups(), createGroup(), createGroup(), createGroup(), and findGroup().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ findGroup() [2/2]

ItemGroup Arcane::mesh::ItemFamily::findGroup ( const String & name,
bool create_if_needed )
overridevirtual

Searches for a group.

Parameters
namename of the group to search for
Returns
the found group or a null group if no group with the name name and type type exists and if create_if_needed is false. If create_if_needed is true, an empty group named name is created and returned.

Implements Arcane::IItemFamily.

Definition at line 1100 of file ItemFamily.cc.

References createGroup(), findGroup(), name(), and Arcane::ItemGroup::null().

Here is the call graph for this function:

◆ findOneItem()

ItemInternal * Arcane::mesh::ItemFamily::findOneItem ( Int64 unique_id)
overridevirtual

Unique ID entity unique_id.

If no entity with this unique_id is found, returns nullptr.

Precondition
hasUniqueIdMap()

Implements Arcane::IItemFamily.

Definition at line 413 of file ItemFamily.cc.

◆ findVariable()

IVariable * Arcane::mesh::ItemFamily::findVariable ( const String & name,
bool throw_exception )
overridevirtual

Searches for the variable name name associated with this family.

If no variable with the name name exists, and if throw_exception is false, returns 0; otherwise, it throws an exception.

Implements Arcane::IItemFamily.

Definition at line 1980 of file ItemFamily.cc.

References ARCANE_FATAL, Arcane::IVariableMng::findVariableFullyQualified(), mesh(), Arcane::IMeshBase::name(), name(), subDomain(), Arcane::StringBuilder::toString(), and Arcane::ISubDomain::variableMng().

Here is the call graph for this function:

◆ finishCompactItems()

void Arcane::mesh::ItemFamily::finishCompactItems ( ItemFamilyCompactInfos & compact_infos)

Definition at line 1589 of file ItemFamily.cc.

◆ fullName()

String Arcane::mesh::ItemFamily::fullName ( ) const
inlineoverridevirtual

Full family name (with the mesh's name).

Implements Arcane::IItemFamily.

Reimplemented in Arcane::mesh::ParticleFamily.

Definition at line 141 of file ItemFamily.h.

Referenced by _compactFromParentFamily(), compactVariablesAndGroups(), Arcane::mesh::DoFFamily::fullName(), Arcane::mesh::ParticleFamily::fullName(), prepareForDump(), and readFromDump().

Here is the caller graph for this function:

◆ getCommunicatingSubDomains()

void Arcane::mesh::ItemFamily::getCommunicatingSubDomains ( Int32Array & sub_domains) const
overridevirtual

List of communicating sub-domains for the entities.

Implements Arcane::IItemFamily.

Definition at line 1916 of file ItemFamily.cc.

References Arcane::Array< T >::copy(), Arcane::Array< T >::resize(), and Arcane::ConstArrayView< T >::size().

Here is the call graph for this function:

◆ globalConnectivityInfos()

IItemConnectivityInfo * Arcane::mesh::ItemFamily::globalConnectivityInfos ( ) const
overridevirtual

Information on global connectivity across all subdomains.

Implements Arcane::IItemFamily.

Definition at line 2077 of file ItemFamily.cc.

◆ groups()

ItemGroupCollection Arcane::mesh::ItemFamily::groups ( ) const
overridevirtual

Collection of groups in this family.

Implements Arcane::IItemFamily.

Definition at line 1078 of file ItemFamily.cc.

◆ hasUniqueIdMap()

bool Arcane::mesh::ItemFamily::hasUniqueIdMap ( ) const
overridevirtual

Indicates if the family has a uniqueId to localId conversion table.

Implements Arcane::IItemFamily.

Reimplemented in Arcane::mesh::ParticleFamily.

Definition at line 2096 of file ItemFamily.cc.

◆ infos()

const DynamicMeshKindInfos & Arcane::mesh::ItemFamily::infos ( ) const

Definition at line 423 of file ItemFamily.cc.

◆ internalRemoveItems()

void Arcane::mesh::ItemFamily::internalRemoveItems ( Int32ConstArrayView local_ids,
bool keep_ghost = false )
overridevirtual

Removes the entities given by local_ids.

For internal use only. If you want to delete entities from the mesh, you must go through IMeshModifier via the call to IMesh::modifier().

Implements Arcane::IItemFamily.

Reimplemented in Arcane::mesh::ParticleFamily.

Definition at line 1764 of file ItemFamily.cc.

References ARCANE_THROW.

◆ itemInfoListView()

ItemInfoListView Arcane::mesh::ItemFamily::itemInfoListView ( )
overridevirtual

View on the entity information list.

Implements Arcane::IItemFamily.

Definition at line 523 of file ItemFamily.cc.

Referenced by view().

Here is the caller graph for this function:

◆ itemInternalConnectivityList()

ItemInternalConnectivityList * Arcane::mesh::ItemFamily::itemInternalConnectivityList ( )
inline

Accessor for connectivities via Item and ItemInternal.

Definition at line 305 of file ItemFamily.h.

References m_item_connectivity_list.

◆ itemKind()

eItemKind Arcane::mesh::ItemFamily::itemKind ( ) const
overridevirtual

Entity kind.

Implements Arcane::IItemFamily.

Definition at line 487 of file ItemFamily.cc.

Referenced by removeItems2(), and removeNeedRemoveMarkedItems().

Here is the caller graph for this function:

◆ itemListChangedEvent()

EventObservableView< const ItemFamilyItemListChangedEventArgs & > Arcane::mesh::ItemFamily::itemListChangedEvent ( )
overridevirtual

Event for entity addition and deletion.

Implements Arcane::IItemFamily.

Definition at line 2536 of file ItemFamily.cc.

References itemListChangedEvent().

Referenced by itemListChangedEvent().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ itemsInternal()

ItemInternalList Arcane::mesh::ItemFamily::itemsInternal ( )
overridevirtual

Internal array of entities.

Implements Arcane::IItemFamily.

Definition at line 514 of file ItemFamily.cc.

Referenced by _compactFromParentFamily(), and removeItems2().

Here is the caller graph for this function:

◆ itemsMap()

ItemInternalMap & Arcane::mesh::ItemFamily::itemsMap ( )

Definition at line 418 of file ItemFamily.cc.

◆ itemsNewOwner()

VariableItemInt32 & Arcane::mesh::ItemFamily::itemsNewOwner ( )
overridevirtual

Variable containing the number of the new subdomain owning the entity.

This variable is only used for mesh partitioning.

Implements Arcane::IItemFamily.

Definition at line 591 of file ItemFamily.cc.

Referenced by Arcane::mesh::TiedInterfaceExchanger::initialize().

Here is the caller graph for this function:

◆ itemSortFunction()

IItemInternalSortFunction * Arcane::mesh::ItemFamily::itemSortFunction ( ) const
overridevirtual

Entity sorting function.

The instance of this class remains the owner of the returned object, which must not be destroyed or modified.

See also
setItemSortFunction()

Implements Arcane::IItemFamily.

Definition at line 2189 of file ItemFamily.cc.

◆ itemsUniqueIdToLocalId() [1/3]

void Arcane::mesh::ItemFamily::itemsUniqueIdToLocalId ( ArrayView< Int64 > ids,
bool do_fatal = true ) const

Definition at line 858 of file ItemFamily.cc.

◆ itemsUniqueIdToLocalId() [2/3]

void Arcane::mesh::ItemFamily::itemsUniqueIdToLocalId ( Int32ArrayView local_ids,
ConstArrayView< ItemUniqueId > unique_ids,
bool do_fatal ) const
overridevirtual

Converts an array of unique numbers to local numbers.

This operation takes as input the unique_ids array containing the unique numbers of entities of type item_kind and returns in local_ids the corresponding local number for this subdomain.

The complexity of this operation depends on the implementation. The default implementation uses a hash table. The average complexity is therefore constant.

If do_fatal is true, a fatal error is generated if an entity is not found, otherwise the not found element has the value NULL_ITEM_ID.

Implements Arcane::IItemFamily.

Definition at line 878 of file ItemFamily.cc.

◆ itemsUniqueIdToLocalId() [3/3]

void Arcane::mesh::ItemFamily::itemsUniqueIdToLocalId ( Int32ArrayView local_ids,
Int64ConstArrayView unique_ids,
bool do_fatal ) const
overridevirtual

Converts an array of unique numbers to local numbers.

This operation takes as input the unique_ids array containing the unique numbers of entities of type item_kind and returns in local_ids the corresponding local number for this subdomain.

The complexity of this operation depends on the implementation. The default implementation uses a hash table. The average complexity is therefore constant.

If do_fatal is true, a fatal error is generated if an entity is not found, otherwise the not found element has the value NULL_ITEM_ID.

Precondition
hasUniqueIdMap()

Implements Arcane::IItemFamily.

Definition at line 867 of file ItemFamily.cc.

◆ localConnectivityInfos()

IItemConnectivityInfo * Arcane::mesh::ItemFamily::localConnectivityInfos ( ) const
overridevirtual

Information on local connectivity within the subdomain for this family.

Implements Arcane::IItemFamily.

Definition at line 2068 of file ItemFamily.cc.

◆ maxLocalId()

Int32 Arcane::mesh::ItemFamily::maxLocalId ( ) const
overridevirtual

Size required to dimension variables on these entities.

This is the maximum of the Item::localId() of the entities in this family plus 1.

Implements Arcane::IItemFamily.

Definition at line 505 of file ItemFamily.cc.

Referenced by compactVariablesAndGroups().

Here is the caller graph for this function:

◆ mesh()

IMesh * Arcane::mesh::ItemFamily::mesh ( ) const
overridevirtual

Associated mesh.

Implements Arcane::IItemFamily.

Definition at line 907 of file ItemFamily.cc.

Referenced by _compactItems(), Arcane::mesh::DoFFamily::DoFFamily(), findAdjacencyItems(), findVariable(), Arcane::mesh::ParticleFamily::internalRemoveItems(), readFromDump(), and Arcane::mesh::CellFamily::setConnectivity().

Here is the caller graph for this function:

◆ name()

String Arcane::mesh::ItemFamily::name ( ) const
inlineoverridevirtual

◆ nbItem()

Integer Arcane::mesh::ItemFamily::nbItem ( ) const
overridevirtual

Number of entities.

Implements Arcane::IItemFamily.

Reimplemented in Arcane::mesh::ParticleFamily.

Definition at line 496 of file ItemFamily.cc.

Referenced by _compactFromParentFamily(), compactVariablesAndGroups(), Arcane::mesh::DoFFamily::nbItem(), and Arcane::mesh::ParticleFamily::nbItem().

Here is the caller graph for this function:

◆ notifyItemsOwnerChanged()

void Arcane::mesh::ItemFamily::notifyItemsOwnerChanged ( )
overridevirtual

Notifies that the entities specific to the family's subdomain have been modified.

Implements Arcane::IItemFamily.

Definition at line 1030 of file ItemFamily.cc.

References Arcane::TraceAccessor::debug(), Arcane::ItemGroupImpl::hasComputeFunctor(), Arcane::ItemGroup::internal(), Arcane::ItemGroup::invalidate(), Arcane::ItemBase::isSuppressed(), Arcane::IItemFamily::itemsInternal(), Arcane::IItemFamily::notifyItemsOwnerChanged(), Arcane::Item::owner(), Arcane::MutableItemBase::setOwner(), Arcane::ConstArrayView< T >::size(), Arcane::Item::uniqueId(), and Arcane::ItemBase::uniqueId().

Referenced by Arcane::mesh::ParticleFamily::exchangeParticles().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ notifyItemsUniqueIdChanged()

void Arcane::mesh::ItemFamily::notifyItemsUniqueIdChanged ( )
overridevirtual

Notifies that the unique IDs of the entities have been modified.

Implements Arcane::IItemFamily.

Reimplemented in Arcane::mesh::NodeFamily.

Definition at line 1114 of file ItemFamily.cc.

Referenced by Arcane::mesh::NodeFamily::notifyItemsUniqueIdChanged().

Here is the caller graph for this function:

◆ parallelMng()

IParallelMng * Arcane::mesh::ItemFamily::parallelMng ( ) const
overridevirtual

Associated parallelism manager.

Implements Arcane::IItemFamily.

Definition at line 916 of file ItemFamily.cc.

Referenced by _checkComputeSynchronizeInfos(), _notifyEndUpdateFromMesh(), and computeSynchronizeInfos().

Here is the caller graph for this function:

◆ parentFamily()

IItemFamily * Arcane::mesh::ItemFamily::parentFamily ( ) const
overridevirtual

IItemFamily parent.

Resulting from sub-mesh nesting

Returns
nullptr if there is no parent family

Implements Arcane::IItemFamily.

Definition at line 532 of file ItemFamily.cc.

◆ parentFamilyDepth()

Integer Arcane::mesh::ItemFamily::parentFamilyDepth ( ) const
overridevirtual

Gives the nesting depth of the current mesh.

Implements Arcane::IItemFamily.

Definition at line 559 of file ItemFamily.cc.

◆ partialEndUpdate()

void Arcane::mesh::ItemFamily::partialEndUpdate ( )
overridevirtual

Partial update.

Updates the internal structures after a family modification. This is an optimized version of endUpdate() when you want to perform multiple mesh modifications. This method DOES NOT update the groups or variables associated with this family. Only the allItems() group is available. It is possible to update a group via partialEndUpdateGroup() and a variable via partialEndUpdateVariable().

This method is reserved for experienced users. For others, it is better to use endUpdate().

Implements Arcane::IItemFamily.

Definition at line 753 of file ItemFamily.cc.

◆ partialEndUpdateGroup()

void Arcane::mesh::ItemFamily::partialEndUpdateGroup ( const ItemGroup & group)
overridevirtual

Updates a group.

Updates the group after a family modification. The update consists of removing entities from the group that were possibly destroyed during the modification.

See also
partialEndUpdate().

Implements Arcane::IItemFamily.

Definition at line 762 of file ItemFamily.cc.

◆ partialEndUpdateVariable()

void Arcane::mesh::ItemFamily::partialEndUpdateVariable ( IVariable * variable)
overridevirtual

Updates a variable.

Updates the variable after a family modification. The update consists of resizing the variable after a possible addition of entities.

See also
partialEndUpdate().

Implements Arcane::IItemFamily.

Definition at line 803 of file ItemFamily.cc.

◆ policyMng()

IItemFamilyPolicyMng * Arcane::mesh::ItemFamily::policyMng ( )
inlineoverridevirtual

Interface of behaviors/policies associated with this family.

Implements Arcane::IItemFamily.

Definition at line 284 of file ItemFamily.h.

◆ prepareForDump()

void Arcane::mesh::ItemFamily::prepareForDump ( )
overridevirtual

Prepares data for dumping.

Implements Arcane::IItemFamily.

Reimplemented in Arcane::mesh::ParticleFamily.

Definition at line 1133 of file ItemFamily.cc.

References _compactOnlyItems(), ARCANE_FATAL, Arcane::arcaneIsCheck(), Arcane::TraceAccessor::debug(), Arcane::ItemBase::flags(), fullName(), Arcane::ItemGroupImpl::hasComputeFunctor(), Arcane::Trace::High, Arcane::TraceAccessor::info(), Arcane::ItemGroup::internal(), Arcane::ItemGroup::isLocalToSubDomain(), Arcane::ItemBase::localId(), m_current_id, Arcane::ItemGroup::name(), name(), Arcane::ItemBase::typeInfo(), and Arcane::ItemBase::uniqueId().

Referenced by Arcane::mesh::ParticleFamily::prepareForDump().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ properties()

Properties * Arcane::mesh::ItemFamily::properties ( )
inlineoverridevirtual

Properties associated with this family.

Implements Arcane::IItemFamily.

Definition at line 285 of file ItemFamily.h.

◆ readFromDump()

void Arcane::mesh::ItemFamily::readFromDump ( )
overridevirtual

Reads data from a dump.

Implements Arcane::IItemFamily.

Reimplemented in Arcane::mesh::ParticleFamily.

Definition at line 1253 of file ItemFamily.cc.

References _checkComputeSynchronizeInfos(), _readGroups(), ARCANE_FATAL, Arcane::TraceAccessor::debug(), Arcane::IMeshBase::findItemFamily(), Arcane::IMeshMng::findMeshHandle(), fullName(), Arcane::TraceAccessor::info(), Arcane::IMesh::itemTypeMng(), m_current_id, mesh(), Arcane::MeshHandle::mesh(), Arcane::ArrayView< T >::size(), and Arcane::ItemTypeMng::typeFromId().

Referenced by Arcane::mesh::ParticleFamily::readFromDump().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reduceFromGhostItems() [1/2]

void Arcane::mesh::ItemFamily::reduceFromGhostItems ( IVariable * v,
IDataOperation * operation )
overridevirtual

Applies a reduction operation from ghost items.

This operation is the inverse of synchronization.

The sub-domain retrieves the values of variable v on the entities it shares with other sub-domains, and the reduction operation operation is applied to this variable.

Implements Arcane::IItemFamily.

Definition at line 1944 of file ItemFamily.cc.

References Arcane::Parallel::VariableParallelOperationBase::addVariable(), Arcane::Parallel::VariableParallelOperationBase::applyOperation(), Arcane::ItemGroup::itemFamily(), Arcane::IVariable::itemFamily(), Arcane::IVariable::itemGroup(), and Arcane::Parallel::VariableParallelOperationBase::setItemFamily().

Referenced by reduceFromGhostItems().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reduceFromGhostItems() [2/2]

void Arcane::mesh::ItemFamily::reduceFromGhostItems ( IVariable * v,
Parallel::eReduceType operation )
overridevirtual

Applies a reduction operation from ghost items.

This operation is the inverse of synchronization.

The sub-domain retrieves the values of variable v on the entities it shares with other sub-domains, and the reduction operation operation is applied to this variable.

Implements Arcane::IItemFamily.

Definition at line 1960 of file ItemFamily.cc.

References Arcane::IDataFactoryMng::createDataOperation(), Arcane::IVariable::dataFactoryMng(), Arcane::PtrT< T >::get(), and reduceFromGhostItems().

Here is the call graph for this function:

◆ removeItem()

void Arcane::mesh::ItemFamily::removeItem ( Item item)
inline

Definition at line 300 of file ItemFamily.h.

◆ removeItems2()

void Arcane::mesh::ItemFamily::removeItems2 ( ItemDataList & item_data_list)
overridevirtual

Removes entities.

Uses the graph (Families, Connectivities) ItemFamilyNetwork

TODO: To be put in the internal API

Implements Arcane::IItemFamily.

Definition at line 2228 of file ItemFamily.cc.

References Arcane::Array< T >::add(), ARCANE_FATAL, Arcane::Array< T >::back(), Arcane::ConnectivityItemVector::connectedItems(), endUpdate(), ENUMERATE_ITEM, Arcane::TraceAccessor::fatal(), Arcane::ItemBase::isDetached(), itemKind(), itemsInternal(), name(), and Arcane::Array< T >::view().

Here is the call graph for this function:

◆ removeNeedRemoveMarkedItems()

void Arcane::mesh::ItemFamily::removeNeedRemoveMarkedItems ( )
overridevirtual

Removes entities and updates connectivities.

Does not delete any potential orphaned sub-items.

Context of use with a family graph. Orphaned sub-items must also be marked NeedRemove. Therefore, there is no need to manage them in parent families.

TODO: To be put in the internal API

Implements Arcane::IItemFamily.

Reimplemented in Arcane::mesh::ParticleFamily.

Definition at line 2389 of file ItemFamily.cc.

References Arcane::Array< T >::add(), ARCANE_FATAL, Arcane::ConnectivityItemVector::connectedItems(), Arcane::mesh::ItemInternalMap::count(), Arcane::mesh::ItemInternalMap::eachItem(), ENUMERATE_ITEM, Arcane::ItemBase::flags(), Arcane::ItemFlags::II_NeedRemove, Arcane::ItemFlags::II_Suppressed, Arcane::TraceAccessor::info(), itemKind(), Arcane::IItemFamily::itemsInternal(), Arcane::ItemBase::localId(), name(), Arcane::IIncrementalItemConnectivity::removeConnectedItem(), Arcane::Array< T >::reserve(), Arcane::MutableItemBase::setFlags(), Arcane::AbstractArray< T >::size(), Arcane::IIncrementalItemSourceConnectivity::sourceFamily(), and Arcane::ItemBase::toMutable().

Here is the call graph for this function:

◆ removeSourceConnectivity()

void Arcane::mesh::ItemFamily::removeSourceConnectivity ( IItemConnectivity * connectivity)
overridevirtual

Implements Arcane::IItemFamily.

Definition at line 2507 of file ItemFamily.cc.

◆ removeTargetConnectivity()

void Arcane::mesh::ItemFamily::removeTargetConnectivity ( IItemConnectivity * connectivity)
overridevirtual

Implements Arcane::IItemFamily.

Definition at line 2516 of file ItemFamily.cc.

◆ resizeVariables()

void Arcane::mesh::ItemFamily::resizeVariables ( bool force_resize)
inlineoverridevirtual

Resizes the variables of this family.

This method is internal to Arcane.

Implements Arcane::IItemFamily.

Definition at line 403 of file ItemFamily.h.

◆ setConnectivityMng()

void Arcane::mesh::ItemFamily::setConnectivityMng ( IItemConnectivityMng * connectivity_mng)
overridevirtual

Implements Arcane::IItemFamily.

Definition at line 2525 of file ItemFamily.cc.

◆ setHasUniqueIdMap()

void Arcane::mesh::ItemFamily::setHasUniqueIdMap ( bool v)
overridevirtual

Indicates whether the family has a conversion table from uniqueId to localId.

The conversion table allows using the methods itemsUniqueIdToLocalId() or findOneItem().

This method can only be called when there are no entities in the family.

The node, edge, face, and cell families of the mesh must have a conversion table.

Implements Arcane::IItemFamily.

Reimplemented in Arcane::mesh::ParticleFamily.

Definition at line 2086 of file ItemFamily.cc.

◆ setItemSortFunction()

void Arcane::mesh::ItemFamily::setItemSortFunction ( IItemInternalSortFunction * sort_function)
overridevirtual

Positions the entity sorting function.

The default method is to sort entities by ascending uniqueId(). If sort_function is null, the default method will be used. Otherwise, sort_function replaces the previous function, which is destroyed (via delete). Sorting is performed via the call to compactItems().

See also
itemSortFunction()

Implements Arcane::IItemFamily.

Definition at line 2175 of file ItemFamily.cc.

◆ setParentFamily()

void Arcane::mesh::ItemFamily::setParentFamily ( IItemFamily * parent)
overridevirtual

Positions the parent IItemFamily.

To be used before build() for dynamically constructed sub-meshes (i.e., not from a restart).

TODO: To be put in the internal API

Implements Arcane::IItemFamily.

Definition at line 541 of file ItemFamily.cc.

References Arcane::IItemFamily::parentFamilyDepth().

Here is the call graph for this function:

◆ setPolicyMng()

void Arcane::mesh::ItemFamily::setPolicyMng ( IItemFamilyPolicyMng * policy_mng)
virtual

Definition at line 2476 of file ItemFamily.cc.

◆ subDomain()

ISubDomain * Arcane::mesh::ItemFamily::subDomain ( ) const
overridevirtual

Associated sub-domain.

Implements Arcane::IItemFamily.

Definition at line 889 of file ItemFamily.cc.

Referenced by findVariable().

Here is the caller graph for this function:

◆ synchronize() [1/2]

void Arcane::mesh::ItemFamily::synchronize ( VariableCollection variables)
overridevirtual

Synchronizes the variables variables.

The variables variables must all come from this family and must not be partial.

Implements Arcane::IItemFamily.

Definition at line 2198 of file ItemFamily.cc.

◆ synchronize() [2/2]

void Arcane::mesh::ItemFamily::synchronize ( VariableCollection variables,
Int32ConstArrayView local_ids )
overridevirtual

Synchronizes the variables variables on a list of entities.

The variables variables must all come from this family and must not be partial.

Only the entities listed in local_ids will be synchronized. Note: an entity present in this list on one sub-domain must be present in this list for any other sub-domain that possesses this entity.

Reimplemented from Arcane::IItemFamily.

Definition at line 2207 of file ItemFamily.cc.

◆ toParticleFamily()

IParticleFamily * Arcane::mesh::ItemFamily::toParticleFamily ( )
inlineoverridevirtual

Returns the interface of the particle family for this family.

The IParticleFamily interface only exists if this family is a particle family (itemKind()==IK_Particle). For other family kinds, 0 is returned.

Implements Arcane::IItemFamily.

Reimplemented in Arcane::mesh::ParticleFamily.

Definition at line 268 of file ItemFamily.h.

References toParticleFamily().

Referenced by toParticleFamily().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ traceMng()

ITraceMng * Arcane::mesh::ItemFamily::traceMng ( ) const
overridevirtual

Associated trace manager.

Implements Arcane::IItemFamily.

Definition at line 898 of file ItemFamily.cc.

References Arcane::TraceAccessor::traceMng().

Here is the call graph for this function:

◆ uniqueIds()

Int64ArrayView * Arcane::mesh::ItemFamily::uniqueIds ( )

Definition at line 1971 of file ItemFamily.cc.

◆ usedVariables()

void Arcane::mesh::ItemFamily::usedVariables ( VariableCollection collection)
overridevirtual

Adds the list of variables used by this family to the collection.

Implements Arcane::IItemFamily.

Definition at line 2152 of file ItemFamily.cc.

◆ view() [1/2]

ItemVectorView Arcane::mesh::ItemFamily::view ( )
overridevirtual

View on all entities in the family.

Implements Arcane::IItemFamily.

Definition at line 2114 of file ItemFamily.cc.

References allItems(), and Arcane::ItemGroup::view().

Referenced by Arcane::mesh::DoFFamily::addDoFs(), and Arcane::mesh::DoFFamily::addGhostDoFs().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ view() [2/2]

ItemVectorView Arcane::mesh::ItemFamily::view ( Int32ConstArrayView local_ids)
overridevirtual

View on the entities.

Returns a view on the entities with local numbers local_ids.

Warning
This view is only valid as long as the family does not evolve. In particular, adding, removing, or compacting invalidates the view. If you want to keep a list even after modification, you must use groups (ItemGroup).

Implements Arcane::IItemFamily.

Definition at line 2105 of file ItemFamily.cc.

References itemInfoListView().

Referenced by Arcane::mesh::ParticleFamily::addParticles(), and Arcane::mesh::ParticleFamily::addParticles().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ m_adjacency_groups

AdjacencyGroupMap Arcane::mesh::ItemFamily::m_adjacency_groups
private

Definition at line 449 of file ItemFamily.h.

◆ m_child_families

UniqueArray<ItemFamily*> Arcane::mesh::ItemFamily::m_child_families
protected

Definition at line 362 of file ItemFamily.h.

◆ m_common_item_shared_info

ItemSharedInfo* Arcane::mesh::ItemFamily::m_common_item_shared_info = nullptr
private

Definition at line 351 of file ItemFamily.h.

◆ m_connectivity_mng

IItemConnectivityMng* Arcane::mesh::ItemFamily::m_connectivity_mng = nullptr
protected

connectivite ou ItemFamily == TargetFamily

Definition at line 369 of file ItemFamily.h.

◆ m_connectivity_selector_list

UniqueArray<ItemConnectivitySelector*> Arcane::mesh::ItemFamily::m_connectivity_selector_list
private

Definition at line 450 of file ItemFamily.h.

◆ m_connectivity_selector_list_by_item_kind

UniqueArray<ItemConnectivitySelector*> Arcane::mesh::ItemFamily::m_connectivity_selector_list_by_item_kind
private

Definition at line 455 of file ItemFamily.h.

◆ m_current_id

Integer Arcane::mesh::ItemFamily::m_current_id = 0
private

Family identifier.

This identifier is incremented every time the family changes. It is saved during a protection and in case of reloading, for example following a rollback. If this identifier is the same as the saved one, it means that the family has not changed since the last save and therefore there is no entity recreation to perform.

Definition at line 439 of file ItemFamily.h.

Referenced by prepareForDump(), and readFromDump().

◆ m_current_variable_item_size

Integer Arcane::mesh::ItemFamily::m_current_variable_item_size = 0
protected

Definition at line 358 of file ItemFamily.h.

◆ m_default_sub_domain_owner

Int32 Arcane::mesh::ItemFamily::m_default_sub_domain_owner = A_NULL_RANK
private

Definition at line 419 of file ItemFamily.h.

◆ m_do_shrink_after_allocate

bool Arcane::mesh::ItemFamily::m_do_shrink_after_allocate = false
private

Definition at line 461 of file ItemFamily.h.

◆ m_full_name

String Arcane::mesh::ItemFamily::m_full_name
protected

Definition at line 332 of file ItemFamily.h.

◆ m_global_connectivity_info

ItemConnectivityInfo* Arcane::mesh::ItemFamily::m_global_connectivity_info = nullptr
protected

Definition at line 364 of file ItemFamily.h.

◆ m_infos

std::unique_ptr<DynamicMeshKindInfos> Arcane::mesh::ItemFamily::m_infos
private

Definition at line 341 of file ItemFamily.h.

◆ m_internal_api

InternalApi* Arcane::mesh::ItemFamily::m_internal_api = nullptr
protected

Definition at line 334 of file ItemFamily.h.

◆ m_internal_variables

Variables* Arcane::mesh::ItemFamily::m_internal_variables = nullptr
private

Definition at line 418 of file ItemFamily.h.

◆ m_is_parallel

bool Arcane::mesh::ItemFamily::m_is_parallel = false
private

Definition at line 427 of file ItemFamily.h.

◆ m_item_connectivity_list

ItemInternalConnectivityList Arcane::mesh::ItemFamily::m_item_connectivity_list
private

Accessor for connectivities via Item and ItemInternal.

Definition at line 453 of file ItemFamily.h.

Referenced by itemInternalConnectivityList().

◆ m_item_groups

ItemGroupList Arcane::mesh::ItemFamily::m_item_groups
protected

Definition at line 345 of file ItemFamily.h.

◆ m_item_internal_list

MeshItemInternalList* Arcane::mesh::ItemFamily::m_item_internal_list = nullptr
protected

Definition at line 347 of file ItemFamily.h.

◆ m_item_need_prepare_dump

bool Arcane::mesh::ItemFamily::m_item_need_prepare_dump = false
private

Definition at line 441 of file ItemFamily.h.

◆ m_item_shared_infos

ItemSharedInfoList* Arcane::mesh::ItemFamily::m_item_shared_infos = nullptr
protected

Definition at line 355 of file ItemFamily.h.

◆ m_item_sort_function

IItemInternalSortFunction* Arcane::mesh::ItemFamily::m_item_sort_function = nullptr
protected

Definition at line 359 of file ItemFamily.h.

◆ m_item_type_mng

ItemTypeMng* Arcane::mesh::ItemFamily::m_item_type_mng = nullptr
private

Definition at line 460 of file ItemFamily.h.

◆ m_items_flags

Int32Array* Arcane::mesh::ItemFamily::m_items_flags = nullptr
private

Definition at line 413 of file ItemFamily.h.

◆ m_items_nb_parent

Int32Array* Arcane::mesh::ItemFamily::m_items_nb_parent = nullptr
private

Definition at line 415 of file ItemFamily.h.

◆ m_items_owner

Int32Array* Arcane::mesh::ItemFamily::m_items_owner = nullptr
private

Definition at line 412 of file ItemFamily.h.

◆ m_items_type_id

Int16Array* Arcane::mesh::ItemFamily::m_items_type_id = nullptr
private

Definition at line 414 of file ItemFamily.h.

◆ m_items_unique_id

Int64Array* Arcane::mesh::ItemFamily::m_items_unique_id = nullptr
private

Definition at line 411 of file ItemFamily.h.

◆ m_items_unique_id_view

Int64ArrayView Arcane::mesh::ItemFamily::m_items_unique_id_view
private

Definition at line 417 of file ItemFamily.h.

◆ m_local_connectivity_info

ItemConnectivityInfo* Arcane::mesh::ItemFamily::m_local_connectivity_info = nullptr
protected

Definition at line 363 of file ItemFamily.h.

◆ m_mesh

IMesh* Arcane::mesh::ItemFamily::m_mesh = nullptr
protected

Definition at line 333 of file ItemFamily.h.

◆ m_name

String Arcane::mesh::ItemFamily::m_name
protected

Definition at line 331 of file ItemFamily.h.

◆ m_nb_allocate_info

Int64 Arcane::mesh::ItemFamily::m_nb_allocate_info = 0
private

Definition at line 445 of file ItemFamily.h.

◆ m_need_prepare_dump

bool Arcane::mesh::ItemFamily::m_need_prepare_dump = true
protected

Definition at line 346 of file ItemFamily.h.

◆ m_observers

ObserverPool Arcane::mesh::ItemFamily::m_observers
protected

Definition at line 356 of file ItemFamily.h.

◆ m_parent_family

IItemFamily* Arcane::mesh::ItemFamily::m_parent_family = nullptr
protected

Definition at line 336 of file ItemFamily.h.

◆ m_parent_family_depth

Integer Arcane::mesh::ItemFamily::m_parent_family_depth = 0
protected

Definition at line 337 of file ItemFamily.h.

◆ m_policy_mng

IItemFamilyPolicyMng* Arcane::mesh::ItemFamily::m_policy_mng = nullptr
protected

Definition at line 378 of file ItemFamily.h.

◆ m_properties

Properties* Arcane::mesh::ItemFamily::m_properties = nullptr
protected

Definition at line 365 of file ItemFamily.h.

◆ m_source_incremental_item_connectivities

UniqueArray<Ref<IIncrementalItemSourceConnectivity> > Arcane::mesh::ItemFamily::m_source_incremental_item_connectivities
private

Definition at line 373 of file ItemFamily.h.

◆ m_source_item_connectivities

ItemConnectivitySet Arcane::mesh::ItemFamily::m_source_item_connectivities
protected

Definition at line 367 of file ItemFamily.h.

◆ m_sub_domain

ISubDomain* Arcane::mesh::ItemFamily::m_sub_domain = nullptr
protected

Definition at line 335 of file ItemFamily.h.

◆ m_sub_domain_id

Int32 Arcane::mesh::ItemFamily::m_sub_domain_id = A_NULL_RANK
protected

Definition at line 423 of file ItemFamily.h.

◆ m_target_incremental_item_connectivities

UniqueArray<Ref<IIncrementalItemTargetConnectivity> > Arcane::mesh::ItemFamily::m_target_incremental_item_connectivities
private

Definition at line 374 of file ItemFamily.h.

◆ m_target_item_connectivities

ItemConnectivitySet Arcane::mesh::ItemFamily::m_target_item_connectivities
protected

connectivite ou ItemFamily == SourceFamily

Definition at line 368 of file ItemFamily.h.

◆ m_topology_modifier

IItemFamilyTopologyModifier* Arcane::mesh::ItemFamily::m_topology_modifier = nullptr
private

Definition at line 451 of file ItemFamily.h.

◆ m_use_legacy_compact_item

bool Arcane::mesh::ItemFamily::m_use_legacy_compact_item = false
private

Definition at line 456 of file ItemFamily.h.

◆ m_used_shmem_variables

std::set<IVariable*, decltype(&_cmpIVariablePtr)> Arcane::mesh::ItemFamily::m_used_shmem_variables
protected

Definition at line 361 of file ItemFamily.h.

◆ m_used_variables

std::set<IVariable*, decltype(&_cmpIVariablePtr)> Arcane::mesh::ItemFamily::m_used_variables
protected

Definition at line 360 of file ItemFamily.h.

◆ m_variable_synchronizer

Ref<IVariableSynchronizer> Arcane::mesh::ItemFamily::m_variable_synchronizer
protected

Definition at line 357 of file ItemFamily.h.


The documentation for this class was generated from the following files: