Interface of an entity family. More...
#include <arcane/core/IItemFamily.h>
Public Member Functions | |
| virtual void | build ()=0 |
| virtual String | name () const =0 |
| Family name. | |
| virtual String | fullName () const =0 |
| Full family name (with the mesh's name). | |
| virtual eItemKind | itemKind () const =0 |
| Entity kind. | |
| virtual Integer | nbItem () const =0 |
| Number of entities. | |
| virtual Int32 | maxLocalId () const =0 |
| virtual ItemInternalArrayView | itemsInternal ()=0 |
| Internal array of entities. | |
| virtual ItemInfoListView | itemInfoListView ()=0 |
| View on the entity information list. | |
| virtual IItemFamily * | parentFamily () const =0 |
| IItemFamily parent. | |
| virtual void | setParentFamily (IItemFamily *parent)=0 |
| Positions the parent IItemFamily. | |
| virtual Integer | parentFamilyDepth () const =0 |
| Gives the nesting depth of the current mesh. | |
| virtual void | addChildFamily (IItemFamily *family)=0 |
| Adds a family as a dependency. | |
| virtual IItemFamilyCollection | childFamilies ()=0 |
| Child families of this family. | |
| virtual VariableItemInt32 & | itemsNewOwner ()=0 |
| Variable containing the number of the new subdomain owning the entity. | |
| virtual void | checkValid ()=0 |
| Check the validity of internal structures (internal). | |
| virtual void | checkValidConnectivity ()=0 |
| Verification of the validity of internal structures concerning connectivity. | |
| virtual void | checkUniqueIds (Int64ConstArrayView unique_ids)=0 |
| Checks that the unique_ids are truly unique for all subdomains. | |
| virtual ItemVectorView | view (Int32ConstArrayView local_ids)=0 |
| View on the entities. | |
| virtual ItemVectorView | view ()=0 |
| View on all entities in the family. | |
| virtual void | removeItems2 (mesh::ItemDataList &item_data_list)=0 |
| Removes entities. | |
| virtual void | removeNeedRemoveMarkedItems ()=0 |
| Removes entities and updates connectivities. | |
| virtual ItemInternal * | findOneItem (Int64 unique_id)=0 |
| Unique ID entity unique_id. | |
| virtual void | endUpdate ()=0 |
| Notifies the end of modification of the entity list. | |
| virtual void | partialEndUpdate ()=0 |
| Partial update. | |
| virtual void | partialEndUpdateGroup (const ItemGroup &group)=0 |
| Updates a group. | |
| virtual void | partialEndUpdateVariable (IVariable *variable)=0 |
| Updates a variable. | |
| virtual void | notifyItemsOwnerChanged ()=0 |
| Notifies that the entities specific to the family's subdomain have been modified. | |
| virtual void | notifyItemsUniqueIdChanged ()=0 |
| Notifies that the unique IDs of the entities have been modified. | |
| virtual IItemConnectivityInfo * | localConnectivityInfos () const =0 |
| Information on local connectivity within the subdomain for this family. | |
| virtual IItemConnectivityInfo * | globalConnectivityInfos () const =0 |
| Information on global connectivity across all subdomains. | |
| virtual void | setHasUniqueIdMap (bool v)=0 |
| Indicates whether the family has a conversion table from uniqueId to localId. | |
| virtual bool | hasUniqueIdMap () const =0 |
| Indicates if the family has a uniqueId to localId conversion table. | |
| virtual void | itemsUniqueIdToLocalId (Int32ArrayView local_ids, Int64ConstArrayView unique_ids, bool do_fatal=true) const =0 |
| Converts an array of unique numbers to local numbers. | |
| virtual void | itemsUniqueIdToLocalId (Int32ArrayView local_ids, ConstArrayView< ItemUniqueId > unique_ids, bool do_fatal=true) const =0 |
| Converts an array of unique numbers to local numbers. | |
| virtual void | setItemSortFunction (IItemInternalSortFunction *sort_function)=0 |
| Positions the entity sorting function. | |
| virtual IItemInternalSortFunction * | itemSortFunction () const =0 |
| Entity sorting function. | |
| virtual ISubDomain * | subDomain () const =0 |
| Associated sub-domain. | |
| virtual ITraceMng * | traceMng () const =0 |
| Associated trace manager. | |
| virtual IMesh * | mesh () const =0 |
| Associated mesh. | |
| virtual IParallelMng * | parallelMng () const =0 |
| Associated parallelism manager. | |
| virtual ItemGroup | allItems () const =0 |
| Group of all entities. | |
| virtual ItemGroupCollection | groups () const =0 |
| Collection of groups in this family. | |
operations on groups | |
| virtual ItemGroup | findGroup (const String &name) const =0 |
| Searches for a group. | |
| virtual ItemGroup | findGroup (const String &name, bool create_if_needed)=0 |
| Searches for a group. | |
| virtual ItemGroup | createGroup (const String &name, Int32ConstArrayView local_ids, bool do_override=false)=0 |
| Creates an entity group named name containing the entities local_ids. | |
| virtual ItemGroup | createGroup (const String &name)=0 |
| Creates an entity group named name. | |
| virtual void | destroyGroups ()=0 |
| Deletes all groups in this family. | |
| virtual ItemGroup | createGroup (const String &name, const ItemGroup &parent, bool do_override=false)=0 |
| virtual IVariable * | findVariable (const String &name, bool throw_exception=false)=0 |
| Searches for the variable name name associated with this family. | |
| virtual void | usedVariables (VariableCollection collection)=0 |
| Adds the list of variables used by this family to the collection. | |
| virtual void | prepareForDump ()=0 |
| Prepares data for dumping. | |
| virtual void | readFromDump ()=0 |
| Reads data from a dump. | |
| virtual void | copyItemsValues (Int32ConstArrayView source, Int32ConstArrayView destination)=0 |
| virtual void | copyItemsMeanValues (Int32ConstArrayView first_source, Int32ConstArrayView second_source, Int32ConstArrayView destination)=0 |
| virtual void | clearItems ()=0 |
| Deletes all entities in the family. | |
| virtual void | compactItems (bool do_sort)=0 |
| Compresses the entities. | |
| virtual void | computeSynchronizeInfos ()=0 |
| Constructs the structures necessary for synchronization. | |
| virtual void | getCommunicatingSubDomains (Int32Array &sub_domains) const =0 |
| List of communicating sub-domains for the entities. | |
variable synchronization operations | |
| virtual IVariableSynchronizer * | allItemsSynchronizer ()=0 |
| Synchronizer on all entities of the family. | |
| virtual void | synchronize (VariableCollection variables)=0 |
| Synchronizes the variables variables. | |
| virtual void | synchronize (VariableCollection variables, Int32ConstArrayView local_ids) |
| Synchronizes the variables variables on a list of entities. | |
| virtual void | reduceFromGhostItems (IVariable *v, IDataOperation *operation)=0 |
| Applies a reduction operation from ghost items. | |
| virtual void | reduceFromGhostItems (IVariable *v, Parallel::eReduceType operation)=0 |
| Applies a reduction operation from ghost items. | |
| virtual ItemPairGroup | findAdjencyItems (const ItemGroup &group, const ItemGroup &sub_group, eItemKind link_kind, Integer nb_layer)=0 |
| Searches for an adjacency list. | |
| virtual ItemPairGroup | findAdjacencyItems (const ItemGroup &group, const ItemGroup &sub_group, eItemKind link_kind, Integer nb_layer) |
| Searches for an adjacency list. | |
| virtual IParticleFamily * | toParticleFamily ()=0 |
| Returns the interface of the particle family for this family. | |
| virtual IDoFFamily * | toDoFFamily () |
| Returns the interface of the particle family for this family. | |
| virtual void | internalRemoveItems (Int32ConstArrayView local_ids, bool keep_ghost=false)=0 |
| Removes the entities given by local_ids. | |
Register/Delete a connectivity manager. | |
Allows propagating family changes to "external" connectivities in which it is involved. These "external" connectivities are currently those using degrees of freedom.
| |
| virtual void | addSourceConnectivity (IItemConnectivity *connectivity)=0 |
| virtual void | addTargetConnectivity (IItemConnectivity *connectivity)=0 |
| virtual void | removeSourceConnectivity (IItemConnectivity *connectivity)=0 |
| virtual void | removeTargetConnectivity (IItemConnectivity *connectivity)=0 |
| virtual void | setConnectivityMng (IItemConnectivityMng *connectivity_mng)=0 |
| virtual void | addGhostItems (Int64ConstArrayView unique_ids, Int32ArrayView items, Int32ConstArrayView owners)=0 |
| Allocates ghost entities. | |
| virtual IItemFamilyPolicyMng * | policyMng ()=0 |
| Interface of behaviors/policies associated with this family. | |
| virtual Properties * | properties ()=0 |
| Properties associated with this family. | |
| virtual EventObservableView< const ItemFamilyItemListChangedEventArgs & > | itemListChangedEvent ()=0 |
| Event for entity addition and deletion. | |
| virtual void | experimentalChangeUniqueId (ItemLocalId local_id, ItemUniqueId unique_id)=0 |
| Changes the unique number of the entity. | |
| virtual void | resizeVariables (bool force_resize)=0 |
| Resizes the variables of this family. | |
| virtual IItemFamilyTopologyModifier * | _topologyModifier ()=0 |
| Topology modifier interface. | |
| virtual IItemFamilyInternal * | _internalApi ()=0 |
| Internal Arcane API. | |
Interface of an entity family.
An entity family manages all entities of the same kind (Item::kind()) and is attached to a mesh (IMesh).
For any mesh, there is exactly one family of nodes (Node), edges (Edge), faces (Face), and cells (Cell). These entities are called base mesh entities and the associated families are the base mesh families.
Depending on the implementation, there may also be families of particles (Particle), dual nodes (DualNode), or links (Link). Depending on the requested connectivity, a family may not have elements. For example, by default in 3D, edges (Edge) are not created.
Each entity in the family has a local identifier within the family, given by Item::localId(). When a family evolves, this identifier may be modified. The Item::localId() of entities in a family are not necessarily contiguous. The maxLocalId() method allows knowing the maximum of these values. Compaction ensures that the localId() are renumbered from 0 to (nbItem()-1). For base mesh entities, compaction is automatic if the mesh has the property "sort" set to true. For others, you must call compactItems().
By default, a family has a conversion table from uniqueId() to localId(). This table must exist to allow the following operations:
It is possible to enable or disable this conversion table via the setHasUniqueIdMap() method only if no entity has been created. This operation is not possible on node, edge, face, and cell families.
When a family is modified by adding or removing entities, the variables and groups relying on this family are no longer usable until endUpdate() is called. For optimization reasons, it is possible to perform updates of certain variables or groups via partialEndUpdateVariable() or partialEndUpdateGroup(). ATTENTION, an call to one of these 3 update methods invalidates the entity instances (Item). To retain a reference to an entity, you must either use a group (ItemGroup) or keep its unique number and use itemsUniqueIdToLocalId().
Definition at line 82 of file IItemFamily.h.
|
inlinevirtual |
Definition at line 89 of file IItemFamily.h.
|
pure virtual |
Implemented in Arcane::mesh::ItemFamily.
|
pure virtual |
Topology modifier interface.
Implemented in Arcane::mesh::ItemFamily.
|
pure virtual |
Adds a family as a dependency.
Operation symmetric to setParentFamily
TODO: To be put in the internal API
Implemented in Arcane::mesh::ItemFamily.
|
pure virtual |
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.
Implemented in Arcane::mesh::DoFFamily, and Arcane::mesh::ItemFamily.
|
pure virtual |
Group of all entities.
Implemented in Arcane::mesh::DoFFamily, Arcane::mesh::ItemFamily, and Arcane::mesh::ParticleFamily.
References allItems().
Referenced by Arcane::MshMeshWriter::_addGroupsToProcess(), Arcane::ArcaneBasicMeshSubdividerService::_applyFamilyRenumbering(), Arcane::ArcaneCasePartitioner::_computeGroups(), Arcane::ArcaneInitialPartitioner::_mergeConstraints(), Arcane::VtkLegacyMeshWriter::_writeMeshToFile(), allItems(), Arcane::UnstructuredMeshUtilities::changeOwnersFromCells(), Arcane::MeshUtils::checkUniqueIdsHashCollective(), Arcane::Materials::MeshMaterialMng::checkValid(), Arcane::mesh::DynamicMeshChecker::checkValidConnectivity(), Arcane::BasicRayMeshIntersection::compute(), Arcane::CartesianMeshImpl::computeDirections(), Arcane::mesh::MeshExchanger::computeExchangeInfos(), Arcane::MpiParallelMngUtilsFactory::createSynchronizer(), Arcane::ParallelMngUtilsFactoryBase::createSynchronizer(), Arcane::SequentialParallelMng::createSynchronizer(), Arcane::SequentialParallelMngUtilsFactory::createSynchronizer(), Arcane::Materials::ItemMaterialVariableScalar< DataType >::dumpValues(), Arcane::ActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::InnerActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::InnerFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OuterActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OuterFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OwnActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::ArcaneInitialPartitioner::partitionAndDistributeMeshes(), Arcane::Materials::MeshMaterialVariableSynchronizer::recompute(), and Arcane::Numerics::GeometryServiceBase::update().
|
pure virtual |
Synchronizer on all entities of the family.
Implemented in Arcane::mesh::ItemFamily.
References allItemsSynchronizer().
Referenced by Arcane::TimeLoopMng::_doMeshPartition(), allItemsSynchronizer(), Arcane::Array2VariableT< T >::synchronize(), Arcane::Array2VariableT< T >::synchronize(), Arcane::VariableArrayT< T >::synchronize(), and Arcane::VariableArrayT< T >::synchronize().
|
pure virtual |
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.
Implemented in Arcane::mesh::ItemFamily.
|
pure virtual |
Check the validity of internal structures (internal).
Implemented in Arcane::mesh::ItemFamily.
Referenced by Arcane::mesh::DynamicMeshChecker::checkValidMesh().
|
pure virtual |
Verification of the validity of internal structures concerning connectivity.
Implemented in Arcane::mesh::ItemFamily, and Arcane::mesh::ParticleFamily.
Referenced by Arcane::mesh::DynamicMeshChecker::checkValidConnectivity().
|
pure virtual |
Child families of this family.
Implemented in Arcane::mesh::ItemFamily.
|
pure virtual |
Deletes all entities in the family.
Implemented in Arcane::mesh::ItemFamily.
References clearItems().
Referenced by clearItems().
|
pure virtual |
Compresses the entities.
Implemented in Arcane::mesh::ItemFamily.
References compactItems().
Referenced by compactItems().
|
pure virtual |
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.
Implemented in Arcane::mesh::CellFamily, Arcane::mesh::DoFFamily, Arcane::mesh::EdgeFamily, Arcane::mesh::FaceFamily, Arcane::mesh::ItemFamily, Arcane::mesh::NodeFamily, and Arcane::mesh::ParticleFamily.
References computeSynchronizeInfos().
Referenced by computeSynchronizeInfos().
|
pure virtual |
Copies the mean values of entities numbered first_source and second_source into entities numbered destination
| first_source | list of localIds of the 1st source |
| second_source | list of localIds of the 2nd source |
| destination | list of destination localIds |
Implemented in Arcane::mesh::ItemFamily.
References copyItemsMeanValues().
Referenced by copyItemsMeanValues().
|
pure virtual |
Copies the values of entities numbered source into entities numbered destination
| source | list of source localIds |
| destination | list of destination localIds |
Implemented in Arcane::mesh::ItemFamily.
References copyItemsValues().
Referenced by copyItemsValues().
Creates an entity group named name.
The group must not already exist, otherwise an exception is raised.
| name | name of the group |
Implemented in Arcane::mesh::ItemFamily.
References createGroup(), and name().
|
pure virtual |
For Internal Use Only
Implemented in Arcane::mesh::ItemFamily.
References createGroup(), and name().
|
pure virtual |
Creates an entity group named name containing the entities local_ids.
| name | name of the group |
| local_ids | list of localId() of the entities composing the group. |
| do_override | if 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. |
Implemented in Arcane::mesh::ItemFamily.
References createGroup(), and name().
Referenced by Arcane::ArcaneCasePartitioner::_computeGroups(), Arcane::FaceDirectionMng::_internalComputeInfos(), Arcane::FaceDirectionMng::_internalComputeInfos(), Arcane::NodeDirectionMng::_internalComputeInfos(), Arcane::CellDirectionMng::_internalComputeInnerAndOuterItems(), Arcane::VtkMeshIOService::_readData(), Arcane::VtkMeshIOService::_readItemGroup(), Arcane::VtkMeshIOService::_readNodeGroup(), Arcane::CartesianPatchGroup::addPatch(), createGroup(), createGroup(), createGroup(), Arcane::LimaUtils::createGroup(), Arcane::ItemGroupImpl::createSubGroup(), Arcane::SodStandardGroupsBuilder::generateGroups(), and Arcane::XmfMeshReader::readMeshFromFile().
|
pure virtual |
Deletes all groups in this family.
Implemented in Arcane::mesh::ItemFamily.
References destroyGroups().
Referenced by destroyGroups().
|
pure virtual |
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.
Implemented in Arcane::mesh::DoFFamily, Arcane::mesh::ItemFamily, and Arcane::mesh::ParticleFamily.
References endUpdate().
Referenced by endUpdate(), and Arcane::mesh::ItemsExchangeInfo2::removeSentItems().
|
pure virtual |
Changes the unique number of the entity.
Implemented in Arcane::mesh::ItemFamily.
|
virtual |
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.
Reimplemented in Arcane::mesh::ItemFamily.
Definition at line 337 of file InterfaceImpl.cc.
References findAdjencyItems().
Referenced by findAdjencyItems(), and Arcane::ItemPairGroup::ItemPairGroup().
|
pure virtual |
Searches for an adjacency list.
Implemented in Arcane::mesh::ItemFamily.
References findAdjacencyItems(), and findAdjencyItems().
Referenced by findAdjacencyItems(), and findAdjencyItems().
Searches for a group.
| name | name of the group to search for |
Implemented in Arcane::mesh::ItemFamily.
References findGroup(), and name().
Referenced by Arcane::ArcaneCasePartitioner::_addGhostGroups(), Arcane::MEDMeshReader::_broadcastGroups(), Arcane::Materials::MeshEnvironment::build(), Arcane::Materials::MeshMaterial::build(), ItemGroupBuilder< T >::buildGroup(), findGroup(), findGroup(), Arcane::SodStandardGroupsBuilder::generateGroups(), Arcane::mesh::DynamicMesh::initializeVariables(), and Arcane::Materials::MeshMaterialMng::recreateFromDump().
|
pure virtual |
Searches for a group.
| name | name of the group to search for |
Implemented in Arcane::mesh::ItemFamily.
References findGroup(), and name().
|
pure virtual |
Unique ID entity unique_id.
If no entity with this unique_id is found, returns nullptr.
Implemented in Arcane::mesh::ItemFamily.
References findOneItem().
Referenced by findOneItem().
|
pure virtual |
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.
Implemented in Arcane::mesh::ItemFamily.
References findVariable(), and name().
Referenced by findVariable(), and Arcane::Hdf5VariableReaderHelper::open().
|
pure virtual |
Full family name (with the mesh's name).
Implemented in Arcane::mesh::DoFFamily, Arcane::mesh::ItemFamily, and Arcane::mesh::ParticleFamily.
Referenced by Arcane::ItemInfoListView::_checkValid(), Arcane::MeshUtils::checkUniqueIdsHashCollective(), Arcane::VariableSynchronizerComputeList::compute(), Arcane::ItemConnectivityMng::getSourceFamilyModifiedItems(), Arcane::mesh::ItemFamilyVariableSerializer::initialize(), Arcane::ItemConnectivityMng::isUpToDateWithSourceFamily(), Arcane::ItemConnectivityMng::isUpToDateWithSourceFamily(), Arcane::ItemConnectivityMng::isUpToDateWithTargetFamily(), Arcane::ItemConnectivityMng::isUpToDateWithTargetFamily(), Arcane::ItemConnectivityMng::notifyLocalIdChanged(), Arcane::ItemConnectivityMng::registerConnectivity(), Arcane::ItemConnectivityMng::setModifiedItems(), Arcane::ItemConnectivityMng::setUpToDate(), and Arcane::ItemConnectivityMng::setUpToDate().
|
pure virtual |
List of communicating sub-domains for the entities.
Implemented in Arcane::mesh::ItemFamily.
References getCommunicatingSubDomains().
Referenced by getCommunicatingSubDomains().
|
pure virtual |
Information on global connectivity across all subdomains.
Implemented in Arcane::mesh::ItemFamily.
References globalConnectivityInfos().
Referenced by globalConnectivityInfos().
|
pure virtual |
Collection of groups in this family.
Implemented in Arcane::mesh::ItemFamily.
References groups().
Referenced by Arcane::MshMeshWriter::_addGroupsToProcess(), Arcane::ArcaneCasePartitioner::_computeGroups(), Arcane::ArcaneBasicMeshSubdividerService::_refineOnce(), groups(), Arcane::MeshUtils::visitGroups(), Arcane::MeshUtils::visitGroups(), and Arcane::LimaMeshWriter::writeMeshToFile().
|
pure virtual |
Indicates if the family has a uniqueId to localId conversion table.
Implemented in Arcane::mesh::ItemFamily, and Arcane::mesh::ParticleFamily.
References hasUniqueIdMap().
Referenced by hasUniqueIdMap().
|
pure virtual |
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().
Implemented in Arcane::mesh::CellFamily, Arcane::mesh::DoFFamily, Arcane::mesh::ItemFamily, and Arcane::mesh::ParticleFamily.
|
pure virtual |
View on the entity information list.
Implemented in Arcane::mesh::ItemFamily.
|
pure virtual |
Entity kind.
Implemented in Arcane::mesh::ItemFamily.
Referenced by Arcane::MshMeshWriter::_addGroupsToProcess(), Arcane::ItemInfoListView::_checkValid(), Arcane::mesh::DynamicMeshChecker::checkValidMesh(), Arcane::mesh::DynamicMeshChecker::checkValidReplication(), Arcane::mesh::ItemGroupDynamicMeshObserver::executeExtend(), Arcane::ActiveCellGroupComputeFunctor::executeFunctor(), Arcane::InterfaceItemGroupComputeFunctor::executeFunctor(), Arcane::ItemItemGroupComputeFunctor< ItemType >::executeFunctor(), Arcane::LevelCellGroupComputeFunctor::executeFunctor(), Arcane::OwnActiveCellGroupComputeFunctor::executeFunctor(), Arcane::OwnLevelCellGroupComputeFunctor::executeFunctor(), and Arcane::mesh::DynamicMeshIncrementalBuilder::removeNeedRemoveMarkedItems().
|
pure virtual |
Event for entity addition and deletion.
Implemented in Arcane::mesh::ItemFamily.
|
pure virtual |
Internal array of entities.
Implemented in Arcane::mesh::ItemFamily.
Referenced by Arcane::mesh::DynamicMesh::_multipleExchangeItems(), Arcane::mesh::ItemFamily::notifyItemsOwnerChanged(), and Arcane::mesh::ItemFamily::removeNeedRemoveMarkedItems().
|
pure virtual |
Variable containing the number of the new subdomain owning the entity.
This variable is only used for mesh partitioning.
Implemented in Arcane::mesh::ItemFamily.
Referenced by Arcane::ArcaneInitialPartitioner::_mergeConstraints(), Arcane::mesh::DynamicMesh::_multipleExchangeItems(), Arcane::UnstructuredMeshUtilities::changeOwnersFromCells(), Arcane::mesh::TiedInterfaceBuilder::changeOwnersOld(), Arcane::BasicRayMeshIntersection::compute(), Arcane::mesh::MeshExchanger::computeExchangeInfos(), and Arcane::ArcaneInitialPartitioner::partitionAndDistributeMeshes().
|
pure virtual |
Entity sorting function.
The instance of this class remains the owner of the returned object, which must not be destroyed or modified.
Implemented in Arcane::mesh::ItemFamily.
References itemSortFunction().
Referenced by itemSortFunction().
|
pure virtual |
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.
Implemented in Arcane::mesh::ItemFamily.
References itemsUniqueIdToLocalId().
|
pure virtual |
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.
Implemented in Arcane::mesh::ItemFamily.
References itemsUniqueIdToLocalId().
Referenced by Arcane::ArcaneCasePartitioner::_computeGroups(), Arcane::VariableSynchronizerComputeList::_createList(), Arcane::mesh::DynamicMesh::_multipleExchangeItems(), Arcane::MshParallelMeshReader::_setNodesCoordinates(), Arcane::mesh::GraphDoFs::addDualNodes(), Arcane::mesh::GraphDoFs::addDualNodes(), Arcane::mesh::GraphDoFs::addLinks(), Arcane::mesh::TiedInterface::build(), Arcane::CartesianMeshCoarsening::createCoarseCells(), Arcane::mesh::ParticleFamilySerializer::deserializeItems(), Arcane::mesh::ItemGroupDynamicMeshObserver::executeReduce(), itemsUniqueIdToLocalId(), itemsUniqueIdToLocalId(), and Arcane::XmfMeshReader::readMeshFromFile().
|
pure virtual |
Information on local connectivity within the subdomain for this family.
Implemented in Arcane::mesh::ItemFamily.
References localConnectivityInfos().
Referenced by localConnectivityInfos().
|
pure virtual |
Size required to dimension variables on these entities.
This is the maximum of the Item::localId() of the entities in this family plus 1.
Implemented in Arcane::mesh::ItemFamily.
Referenced by Arcane::Materials::MaterialModifierOperation::_checkMaterialPresence(), Arcane::mesh::FaceUniqueIdBuilder::_computeFacesUniqueIdsParallelV2(), Arcane::ArcaneCasePartitioner::_computeGroups(), Arcane::Materials::AllEnvData::_computeInfosForEnvCells(), Arcane::ArcaneLoadBalanceModule::_computeWeights(), Arcane::Materials::MaterialModifierOperation::_filterValidIds(), Arcane::mesh::TiedInterfaceBuilder::changeOwners(), Arcane::mesh::TiedInterfaceBuilder::changeOwnersOld(), Arcane::mesh::Parallel3EdgeUniqueIdBuilder::compute(), Arcane::ActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::InnerActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::InnerFaceItemGroupComputeFunctor::executeFunctor(), Arcane::ItemItemGroupComputeFunctor< ItemType >::executeFunctor(), Arcane::OuterActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OuterFaceItemGroupComputeFunctor::executeFunctor(), and Arcane::OwnActiveFaceItemGroupComputeFunctor::executeFunctor().
|
pure virtual |
Associated mesh.
Implemented in Arcane::mesh::ItemFamily.
References mesh().
Referenced by Arcane::ItemPrinter::Internal::_printErrors(), Arcane::CartesianPatchGroup::addPatch(), Arcane::BasicRayMeshIntersection::compute(), Arcane::Hdf5VariableInfoBase::create(), Arcane::mesh::FaceFamilyPolicyMng::TiedInterfaceSerializeStepFactory::createStep(), Arcane::mesh::BasicParticleExchanger::initialize(), Arcane::mesh::CellMerger::merge(), mesh(), and Arcane::Materials::MeshMaterialExchangeMng::registerFactory().
|
pure virtual |
Family name.
Implemented in Arcane::mesh::DoFFamily, Arcane::mesh::ItemFamily, and Arcane::mesh::ParticleFamily.
Referenced by Arcane::ArcaneBasicMeshSubdividerService::_applyFamilyRenumbering(), Arcane::ArcaneCasePartitioner::_computeGroups(), Arcane::mesh::MeshExchange::_getItemsToSend(), Arcane::mesh::MeshExchange::_printItemToSend(), Arcane::MshMeshWriter::_writeElements(), Arcane::MeshUtils::checkUniqueIdsHashCollective(), Arcane::mesh::DynamicMeshChecker::checkValidConnectivity(), Arcane::mesh::MeshExchanger::computeExchangeInfos(), createGroup(), createGroup(), createGroup(), Arcane::mesh::MeshExchanger::findExchanger(), findGroup(), findGroup(), Arcane::mesh::IndexedIncrementalItemConnectivityMng::findOrCreateConnectivity(), findVariable(), Arcane::mesh::MeshExchange::getItemsToSend(), Arcane::mesh::BasicParticleExchanger::initialize(), Arcane::mesh::DynamicMesh::initializeVariables(), Arcane::Hdf5VariableReaderHelper::open(), Arcane::XmfMeshReader::readMeshFromFile(), Arcane::mesh::DynamicMeshIncrementalBuilder::removeNeedRemoveMarkedItems(), Arcane::mesh::ItemsExchangeInfo2::removeSentItems(), and Arcane::Hdf5VariableInfoBase::writeGroup().
|
pure virtual |
Number of entities.
Implemented in Arcane::mesh::DoFFamily, Arcane::mesh::ItemFamily, and Arcane::mesh::ParticleFamily.
Referenced by Arcane::ArcaneCasePartitioner::_addGhostGroups(), Arcane::ArcaneBasicMeshSubdividerService::_refineOnce(), Arcane::VtkLegacyMeshWriter::_writeMeshToFile(), Arcane::BasicRayMeshIntersection::compute(), and Arcane::LimaMeshWriter::writeMeshToFile().
|
pure virtual |
Notifies that the entities specific to the family's subdomain have been modified.
Implemented in Arcane::mesh::ItemFamily.
References notifyItemsOwnerChanged().
Referenced by Arcane::CartesianMeshCoarsening2::_createCoarseCells2D(), Arcane::CartesianMeshCoarsening2::_createCoarseCells3D(), Arcane::mesh::MeshExchanger::computeExchangeInfos(), Arcane::CartesianMeshCoarsening::createCoarseCells(), notifyItemsOwnerChanged(), and Arcane::mesh::ItemFamily::notifyItemsOwnerChanged().
|
pure virtual |
Notifies that the unique IDs of the entities have been modified.
Implemented in Arcane::mesh::ItemFamily, and Arcane::mesh::NodeFamily.
References notifyItemsUniqueIdChanged().
Referenced by Arcane::ArcaneBasicMeshSubdividerService::_applyFamilyRenumbering(), and notifyItemsUniqueIdChanged().
|
pure virtual |
Associated parallelism manager.
Implemented in Arcane::mesh::ItemFamily.
References parallelMng().
Referenced by Arcane::mesh::MeshCompactMng::beginCompact(), Arcane::MeshUtils::checkUniqueIdsHashCollective(), and parallelMng().
|
pure virtual |
IItemFamily parent.
Resulting from sub-mesh nesting
Implemented in Arcane::mesh::ItemFamily.
Referenced by Arcane::mesh::DynamicMeshChecker::checkValidConnectivity(), and Arcane::mesh::ItemGroupDynamicMeshObserver::executeCompact().
|
pure virtual |
Gives the nesting depth of the current mesh.
Implemented in Arcane::mesh::ItemFamily.
Referenced by Arcane::mesh::ItemFamily::setParentFamily().
|
pure virtual |
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().
Implemented in Arcane::mesh::ItemFamily.
References partialEndUpdate().
Referenced by partialEndUpdate().
|
pure virtual |
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.
Implemented in Arcane::mesh::ItemFamily.
References partialEndUpdateGroup().
Referenced by partialEndUpdateGroup().
|
pure virtual |
Updates a variable.
Updates the variable after a family modification. The update consists of resizing the variable after a possible addition of entities.
Implemented in Arcane::mesh::ItemFamily.
References partialEndUpdateVariable().
Referenced by partialEndUpdateVariable().
|
pure virtual |
Interface of behaviors/policies associated with this family.
Implemented in Arcane::mesh::ItemFamily.
Referenced by Arcane::Materials::MeshMaterialExchangeMng::registerFactory().
|
pure virtual |
Prepares data for dumping.
Implemented in Arcane::mesh::ItemFamily, and Arcane::mesh::ParticleFamily.
References prepareForDump().
Referenced by prepareForDump().
|
pure virtual |
Properties associated with this family.
Implemented in Arcane::mesh::ItemFamily.
|
pure virtual |
Reads data from a dump.
Implemented in Arcane::mesh::ItemFamily, and Arcane::mesh::ParticleFamily.
References readFromDump().
Referenced by readFromDump().
|
pure virtual |
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.
Implemented in Arcane::mesh::ItemFamily.
References reduceFromGhostItems().
Referenced by reduceFromGhostItems(), and reduceFromGhostItems().
|
pure virtual |
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.
Implemented in Arcane::mesh::ItemFamily.
References reduceFromGhostItems().
|
pure virtual |
Removes entities.
Uses the graph (Families, Connectivities) ItemFamilyNetwork
TODO: To be put in the internal API
Implemented in Arcane::mesh::ItemFamily.
|
pure virtual |
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
Implemented in Arcane::mesh::ItemFamily, and Arcane::mesh::ParticleFamily.
Referenced by Arcane::mesh::DynamicMeshIncrementalBuilder::removeNeedRemoveMarkedItems().
|
pure virtual |
Resizes the variables of this family.
This method is internal to Arcane.
Implemented in Arcane::mesh::ItemFamily.
|
pure virtual |
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.
Implemented in Arcane::mesh::ItemFamily, and Arcane::mesh::ParticleFamily.
References setHasUniqueIdMap().
Referenced by setHasUniqueIdMap().
|
pure virtual |
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().
Implemented in Arcane::mesh::ItemFamily.
References setItemSortFunction().
Referenced by setItemSortFunction().
|
pure virtual |
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
Implemented in Arcane::mesh::ItemFamily.
|
pure virtual |
Associated sub-domain.
Implemented in Arcane::mesh::ItemFamily.
References subDomain().
Referenced by subDomain().
|
pure virtual |
Synchronizes the variables variables.
The variables variables must all come from this family and must not be partial.
Implemented in Arcane::mesh::ItemFamily.
References synchronize().
Referenced by synchronize().
|
virtual |
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 in Arcane::mesh::ItemFamily.
Definition at line 307 of file InterfaceImpl.cc.
References ARCANE_THROW.
|
inlinevirtual |
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.
Reimplemented in Arcane::mesh::DoFFamily.
Definition at line 622 of file IItemFamily.h.
References toDoFFamily().
Referenced by toDoFFamily().
|
pure virtual |
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.
Implemented in Arcane::mesh::ItemFamily, and Arcane::mesh::ParticleFamily.
References toParticleFamily().
Referenced by Arcane::BasicRayMeshIntersection::compute(), Arcane::mesh::MeshExchanger::computeExchangeInfos(), Arcane::mesh::MeshExchanger::removeNeededItems(), Arcane::mesh::ItemsExchangeInfo2::removeSentItems(), and toParticleFamily().
|
pure virtual |
Associated trace manager.
Implemented in Arcane::mesh::ItemFamily.
References traceMng().
Referenced by Arcane::MeshUtils::checkUniqueIdsHashCollective(), Arcane::LimaUtils::createGroup(), Arcane::Materials::ItemMaterialVariableScalar< DataType >::serialize(), and traceMng().
|
pure virtual |
Adds the list of variables used by this family to the collection.
Implemented in Arcane::mesh::ItemFamily.
References usedVariables().
Referenced by usedVariables().
|
pure virtual |
View on all entities in the family.
Implemented in Arcane::mesh::ItemFamily.
|
pure virtual |
View on the entities.
Returns a view on the entities with local numbers local_ids.
Implemented in Arcane::mesh::ItemFamily.
Referenced by Arcane::CartesianMeshCoarsening2::_createCoarseCells2D(), Arcane::CartesianMeshCoarsening2::_createCoarseCells3D(), Arcane::MshMeshWriter::_writeElements(), Arcane::mesh::GraphDoFs::addDualNodes(), Arcane::mesh::GraphDoFs::addLinks(), Arcane::CartesianMeshCoarsening::createCoarseCells(), Arcane::mesh::ItemGroupDynamicMeshObserver::executeExtend(), Arcane::Materials::MeshMaterialVariableSynchronizer::recompute(), Arcane::mesh::ItemsExchangeInfo2::removeSentItems(), Arcane::Materials::ItemMaterialVariableArray< DataType >::serialize(), Arcane::Materials::ItemMaterialVariableScalar< DataType >::serialize(), and Arcane::mesh::ItemFamilyVariableSerializer::serialize().