Implémentation d'un groupe d'entités de maillage. Plus de détails...
#include <arcane/core/ItemGroupImpl.h>
Classes | |
class | ItemSorter |
Fonctions membres publiques | |
ItemGroupImpl () | |
Construit un groupe nul. | |
ItemGroupImpl (IItemFamily *family, const String &name) | |
Construit un groupe. Construit un groupe vide de nom name, associé à la famille family. | |
ItemGroupImpl (IItemFamily *family, ItemGroupImpl *parent, const String &name) | |
Construit un groupe fils d'un autre groupe. Construit un groupe de nom name fils du groupe parent. Le genre de ce groupe est le même que celui de la famille à laquelle il appartient. | |
virtual | ~ItemGroupImpl () |
Libère les ressources. | |
virtual ISharedReference & | sharedReference () |
const String & | name () const |
Nom du groupe. | |
const String & | fullName () const |
Nom complet du groupe (avec maillage + famille) | |
virtual Integer | nbRef () const |
Nombre de références sur le groupe. | |
ItemGroupImpl * | parent () const |
Groupe parent (0 si aucun) | |
bool | null () const |
Retourne true si le groupe est nul. | |
bool | isOwn () const |
Retourne si le groupe contient uniquement des éléments propres au sous-domaine. | |
void | setOwn (bool v) |
Positionne la propriété de groupe local ou non. | |
ItemGroupImpl * | ownGroup () |
Groupe des entité propres des entités de ce groupe. | |
ItemGroupImpl * | ghostGroup () |
Items in the group not owned by the subdomain. | |
ItemGroupImpl * | interfaceGroup () |
ItemGroupImpl * | nodeGroup () |
Groupe des noeuds des éléments de ce groupe. | |
ItemGroupImpl * | edgeGroup () |
Groupe des arêtes des éléments de ce groupe. | |
ItemGroupImpl * | faceGroup () |
Groupe des faces des éléments de ce groupe. | |
ItemGroupImpl * | cellGroup () |
Groupe des mailles des éléments de ce groupe. | |
ItemGroupImpl * | createSubGroup (const String &suffix, IItemFamily *family, ItemGroupComputeFunctor *functor) |
Crée un sous-groupe calculé | |
ItemGroupImpl * | findSubGroup (const String &suffix) |
Accède à un sous-groupe calculé | |
ItemGroupImpl * | innerFaceGroup () |
Groupe des faces internes des éléments de ce groupe. | |
ItemGroupImpl * | outerFaceGroup () |
Groupe des faces externes des éléments de ce groupe. | |
ItemGroupImpl * | activeCellGroup () |
AMR. | |
ItemGroupImpl * | ownActiveCellGroup () |
Groupe des mailles propres actives de ce groupe. | |
ItemGroupImpl * | levelCellGroup (const Integer &level) |
Groupe des mailles actives de ce groupe. | |
ItemGroupImpl * | ownLevelCellGroup (const Integer &level) |
Groupe des mailles propres actives de ce groupe. | |
ItemGroupImpl * | activeFaceGroup () |
Groupe des faces actives propres au domaine. | |
ItemGroupImpl * | ownActiveFaceGroup () |
Groupe des faces externes actives des éléments de ce groupe. | |
ItemGroupImpl * | innerActiveFaceGroup () |
Groupe des faces internes actives des éléments de ce groupe. | |
ItemGroupImpl * | outerActiveFaceGroup () |
Groupe des faces externes actives des éléments de ce groupe. | |
bool | isLocalToSubDomain () const |
AMR OFF. | |
void | setLocalToSubDomain (bool v) |
Positionne le booléen indiquant si le groupe est local au sous-domaine. | |
IMesh * | mesh () const |
Maillage auquel appartient le groupe (0 pour le groupe nul). | |
eItemKind | itemKind () const |
Genre du groupe. Il s'agit du genre de ses éléments. | |
IItemFamily * | itemFamily () const |
Familly à laquelle appartient le groupe (ou 0 si aucune) | |
Integer | size () const |
Nombre d'entités du groupe. | |
bool | empty () const |
Vrai si le groupe est vide. | |
void | clear () |
Supprime les entités du groupe. | |
ItemGroup | parentGroup () |
Groupe parent. | |
void | invalidate (bool force_recompute) |
Invalide le groupe. | |
void | addItems (Int32ConstArrayView items_local_id, bool check_if_present) |
Ajoute les entités de numéros locaux items_local_id. | |
void | setItems (Int32ConstArrayView items_local_id) |
Positionne les entités du groupe à items_local_id. | |
void | setItems (Int32ConstArrayView items_local_id, bool do_sort) |
Positionne les entités du groupe à items_local_id en les triant éventuellement. | |
void | removeItems (Int32ConstArrayView items_local_id, bool check_if_present) |
Supprime les entités items_local_id du groupe. | |
void | removeAddItems (Int32ConstArrayView removed_local_id, Int32ConstArrayView added_local_id, bool check_if_present) |
Supprime et ajoute les entités removed_local_id et added_local_id du groupe. | |
void | removeSuppressedItems () |
Supprime du groupe les entités dont le flag isSuppressed() est vrai. | |
void | checkValid () |
Vérifie que le groupe est valide. | |
bool | checkNeedUpdate () |
Réactualise le groupe si nécessaire. | |
Int32ConstArrayView | itemsLocalId () const |
Liste des numéros locaux des entités de ce groupe. | |
void | beginTransaction () |
Débute une transaction. | |
void | endTransaction () |
Termine une transaction. | |
ItemInternalList | itemsInternal () const |
Liste des entités sur lesquelles s'appuie le groupe. | |
ItemInfoListView | itemInfoListView () const |
Liste des entités sur lesquelles s'appuie le groupe. | |
void | setIsAllItems () |
Indique à ce groupe qu'il s'agit du groupe de toutes les entités de la famille. | |
bool | isAllItems () const |
Indique si le groupe est celui de toutes les entités. | |
void | changeIds (Int32ConstArrayView old_to_new_ids) |
Change les indices des entités du groupe. | |
void | applyOperation (IItemOperationByBasicType *operation) |
Applique l'opération operation sur les entités du groupe. | |
bool | needSynchronization () const |
Indique si le groupe a structurellement besoin d'une synchro parallèle. | |
Int64 | timestamp () const |
Retourne le temps du groupe. Ce temps est incrémenté après chaque modification. | |
void | attachObserver (const void *ref, IItemGroupObserver *obs) |
Attache un observer. | |
void | detachObserver (const void *ref) |
Détache un observer. | |
bool | hasInfoObserver () const |
Indique si le contenu de ce groupe est observé. | |
void | setComputeFunctor (IFunctor *functor) |
Définit une fonction de calcul de groupe. | |
bool | hasComputeFunctor () const |
Indique si le groupe est calculé | |
void | destroy () |
Détruit le groupe. Après cet appel, le groupe devient un groupe nul. | |
SharedPtrT< GroupIndexTable > | localIdToIndex () |
Table des local ids vers une position pour toutes les entités du groupe. | |
IVariableSynchronizer * | synchronizer () |
Synchronizer du groupe. | |
bool | hasSynchronizer () |
Indique si ce groupe possède un synchroniser. | |
bool | checkIsSorted () const |
Vérifie et retourne si le groupe est trié par uniqueId() croissants. | |
bool | isContigousLocalIds () const |
Indique si les entités du groupe ont des localIds() contigüs. | |
void | checkLocalIdsAreContigous () const |
Vérifie si les entités du groupe ont des localIds() contigüs. | |
void | shrinkMemory () |
Limite au maximum la mémoire utilisée par le groupe. | |
Int64 | capacity () const |
Nombre d'éléments alloués. | |
ItemGroupImplInternal * | _internalApi () const |
API interne à Arcane. | |
Int32Array & | unguardedItemsLocalId (const bool self_invalidate=true) |
Liste des numéros locaux des entités de ce groupe. | |
Fonctions membres publiques hérités de Arcane::SharedReference | |
void | addRef () override |
Incrémente le compteur de référence. | |
void | removeRef () override |
Décrémente le compteur de référence. | |
Int32 | refCount () const override |
Retourne la valeur du compteur de référence. | |
Fonctions membres publiques hérités de Arcane::ISharedReference | |
virtual | ~ISharedReference () |
Libère les ressources. | |
Fonctions membres publiques statiques | |
static ItemGroupImpl * | checkSharedNull () |
static void | _buildSharedNull () |
static void | _destroySharedNull () |
Fonctions membres privées | |
void | _initChildrenByType () |
Initialisation des sous-groupes par types. | |
void | _computeChildrenByType () |
Méthode de calcul des sous-groupes par type. | |
void | _initChildrenByTypeV2 () |
Initialisation des sous-groupes par types. | |
void | _computeChildrenByTypeV2 () |
Méthode de calcul des sous-groupes par type. | |
void | _executeExtend (const Int32ConstArrayView *info) |
Invalidation des sous-groupes. | |
void | _executeReduce (const Int32ConstArrayView *info) |
Invalidation des sous-groupes. | |
void | _executeCompact (const Int32ConstArrayView *info) |
Invalidation des sous-groupes. | |
void | _executeReorder (const Int32ConstArrayView *info) |
Invalidation des sous-groupes. | |
void | _executeInvalidate () |
Invalidation des sous-groupes. | |
void | _updateNeedInfoFlag (const bool flag) |
Mise à jour forcée du flag d'information de restructuration. | |
void | _forceInvalidate (const bool self_invalidate) |
Invalidate forcée récursive. | |
void | _checkUpdateSimdPadding () |
virtual void | deleteMe () |
Notification de SharedReference indiquant qu'il faut détruire l'instance. | |
void | _removeItems (SmallSpan< const Int32 > items_local_id) |
Supprime les entités items_local_id du groupe. | |
bool | _checkNeedUpdateNoPadding () |
bool | _checkNeedUpdateWithPadding () |
bool | _checkNeedUpdate (bool do_padding) |
Attributs privés | |
friend | ItemGroup |
ItemGroupInternal * | m_p = nullptr |
Implémentation du groupe. | |
Attributs privés statiques | |
static ItemGroupImpl * | shared_null = 0 |
Implémentation d'un groupe d'entités de maillage.
Un groupe est un ensemble d'entité du maillage (noeuds,faces,mailles,...) de même genre.
Une instance de cette classe ne doit pas s'utiliser directement, mais par l'intermédiaire d'une instance de ItemGroup.
Une entité élément ne peut être présente qu'une seul fois.
Le développeur ne doit pas conserver directement des instances de cette class mais passer par un ItemGroup. Certains groupes étant déterminés dynamiquement suivant le contenu d'un autre groupe (par exemple, les groupes d'entités propres aux sous-domaines sont calculés à partir du groupe de toutes les entités du sous-domaine), ceci garantit que les mises à jour des groupes se font correctement.
Cette instance est géré par un compteur de référence et est détruite automatiquement lorsqu'il arrive à zéro.
Définition à la ligne 71 du fichier ItemGroupImpl.h.
Arcane::ItemGroupImpl::ItemGroupImpl | ( | ) |
Construit un groupe nul.
Définition à la ligne 146 du fichier ItemGroupImpl.cc.
Arcane::ItemGroupImpl::ItemGroupImpl | ( | IItemFamily * | family, |
const String & | name | ||
) |
Construit un groupe. Construit un groupe vide de nom name, associé à la famille family.
Définition à la ligne 128 du fichier ItemGroupImpl.cc.
Arcane::ItemGroupImpl::ItemGroupImpl | ( | IItemFamily * | family, |
ItemGroupImpl * | parent, | ||
const String & | name | ||
) |
Construit un groupe fils d'un autre groupe. Construit un groupe de nom name fils du groupe parent. Le genre de ce groupe est le même que celui de la famille à laquelle il appartient.
Définition à la ligne 137 du fichier ItemGroupImpl.cc.
|
virtual |
|
static |
Définition à la ligne 1727 du fichier ItemGroupImpl.cc.
Référencé par Arcane::ArcaneMain::arcaneInitialize().
Définition à la ligne 1111 du fichier ItemGroupImpl.cc.
|
private |
Définition à la ligne 1142 du fichier ItemGroupImpl.cc.
|
private |
Définition à la ligne 1151 du fichier ItemGroupImpl.cc.
|
private |
Définition à la ligne 1169 du fichier ItemGroupImpl.cc.
|
private |
Méthode de calcul des sous-groupes par type.
Définition à la ligne 1424 du fichier ItemGroupImpl.cc.
Références beginTransaction(), Arccore::ITraceMng::debug(), endTransaction(), ENUMERATE_ITEM, Arccore::Trace::High, Arcane::ItemGroupInternal::m_children_by_type, m_p, name(), Arcane::ItemTypeMng::nbBasicItemType(), setItems(), Arccore::TraceAccessor::traceMng(), et Arcane::Item::type().
Référencé par _initChildrenByType().
|
private |
Méthode de calcul des sous-groupes par type.
Définition à la ligne 1456 du fichier ItemGroupImpl.cc.
Références ENUMERATE_, Arccore::ITraceMng::info(), Arcane::IItemFamily::itemInfoListView(), Arcane::IMesh::itemTypeMng(), Arcane::ItemGroupInternal::m_children_by_type_ids, Arcane::ItemGroupInternal::m_item_family, m_p, Arcane::ItemGroupInternal::m_unique_children_type, mesh(), Arcane::IMesh::meshKind(), name(), Arcane::ItemTypeMng::nbBasicItemType(), size(), Arcane::IMeshBase::traceMng(), et Arcane::Item::type().
Référencé par applyOperation().
|
static |
Définition à la ligne 1739 du fichier ItemGroupImpl.cc.
Référencé par Arcane::ArcaneMain::arcaneFinalize().
|
private |
Invalidation des sous-groupes.
Définition à la ligne 1552 du fichier ItemGroupImpl.cc.
Références m_p.
Référencé par _updateNeedInfoFlag().
|
private |
Invalidation des sous-groupes.
Définition à la ligne 1528 du fichier ItemGroupImpl.cc.
Références m_p.
Référencé par _updateNeedInfoFlag().
|
private |
Invalidation des sous-groupes.
Définition à la ligne 1564 du fichier ItemGroupImpl.cc.
Références m_p.
Référencé par _updateNeedInfoFlag(), et createSubGroup().
|
private |
Invalidation des sous-groupes.
Définition à la ligne 1540 du fichier ItemGroupImpl.cc.
Références m_p.
Référencé par _updateNeedInfoFlag().
Invalidate forcée récursive.
Ne notifie pas les observers. Devra être suivi d'un invalidate() normal
Définition à la ligne 1600 du fichier ItemGroupImpl.cc.
Références Arcane::ItemGroupInternal::m_need_invalidate_on_recompute, m_p, et Arcane::ItemGroupInternal::m_sub_groups.
Référencé par unguardedItemsLocalId().
|
private |
Initialisation des sous-groupes par types.
Définition à la ligne 1388 du fichier ItemGroupImpl.cc.
Références _computeChildrenByType(), createSubGroup(), Arcane::ItemGroupInternal::m_children_by_type, Arcane::ItemGroupInternal::m_item_family, m_p, Arcane::IItemFamily::mesh(), et Arcane::ItemTypeMng::nbBasicItemType().
Référencé par applyOperation().
|
private |
Initialisation des sous-groupes par types.
Définition à la ligne 1407 du fichier ItemGroupImpl.cc.
Références Arccore::TraceAccessor::info(), Arcane::ItemGroupInternal::m_children_by_type_ids, m_p, name(), Arcane::ItemTypeMng::nbBasicItemType(), et Arcane::IMeshBase::traceMng().
Référencé par applyOperation().
ItemGroupImplInternal * Arcane::ItemGroupImpl::_internalApi | ( | ) | const |
Mise à jour forcée du flag d'information de restructuration.
Définition à la ligne 1574 du fichier ItemGroupImpl.cc.
Références _executeCompact(), _executeExtend(), _executeInvalidate(), _executeReduce(), attachObserver(), detachObserver(), Arcane::ItemGroupInternal::m_observer_need_info, m_p, Arcane::newItemGroupObserverT(), et parent().
Référencé par attachObserver(), et detachObserver().
ItemGroupImpl * Arcane::ItemGroupImpl::activeCellGroup | ( | ) |
AMR.
Groupe des mailles actives de ce groupe
Une maille active est une maille feuille dans l'arbre AMR.
Définition à la ligne 483 du fichier ItemGroupImpl.cc.
Références Arcane::IMeshBase::cellFamily(), createSubGroup(), Arcane::IK_Cell, itemKind(), Arcane::ItemGroupInternal::m_active_cell_group, Arcane::ItemGroupInternal::m_mesh, et m_p.
ItemGroupImpl * Arcane::ItemGroupImpl::activeFaceGroup | ( | ) |
Groupe des faces actives propres au domaine.
Ce groupe n'existe que pour un groupe de maille (itemKind()==IK_Cell). Une face est interne active si elle connectée à deux mailles actives de ce groupe.
Définition à la ligne 556 du fichier ItemGroupImpl.cc.
Références createSubGroup(), Arcane::IMeshBase::faceFamily(), Arcane::IK_Cell, itemKind(), Arcane::ItemGroupInternal::m_active_face_group, Arcane::ItemGroupInternal::m_mesh, et m_p.
void Arcane::ItemGroupImpl::addItems | ( | Int32ConstArrayView | items_local_id, |
bool | check_if_present | ||
) |
Ajoute les entités de numéros locaux items_local_id.
Définition à la ligne 769 du fichier ItemGroupImpl.cc.
Références ARCANE_FATAL, Arcane::arcaneIsCheck(), checkValid(), Arccore::ITraceMng::info(), isAllItems(), Arcane::ItemGroupInternal::m_compute_functor, Arcane::ItemGroupInternal::m_need_recompute, m_p, Arcane::ItemGroupInternal::m_transaction_mode, mesh(), name(), Arccore::Array< T >::resize(), et Arccore::TraceAccessor::traceMng().
Référencé par Arcane::mesh::DynamicMeshKindInfos::finalizeMeshChanged(), et removeAddItems().
void Arcane::ItemGroupImpl::applyOperation | ( | IItemOperationByBasicType * | operation | ) |
Applique l'opération operation sur les entités du groupe.
Définition à la ligne 1206 du fichier ItemGroupImpl.cc.
Références _computeChildrenByTypeV2(), _initChildrenByType(), _initChildrenByTypeV2(), Arccore::TraceAccessor::info(), Arcane::ItemGroupInternal::m_children_by_type, Arcane::ItemGroupInternal::m_children_by_type_ids, Arcane::ItemGroupInternal::m_children_by_type_ids_computed_timestamp, Arcane::ItemGroupInternal::m_item_family, Arcane::ItemGroupInternal::m_need_recompute, m_p, Arcane::ItemGroupInternal::m_unique_children_type, name(), size(), et Arcane::IMeshBase::traceMng().
void Arcane::ItemGroupImpl::attachObserver | ( | const void * | ref, |
IItemGroupObserver * | obs | ||
) |
Attache un observer.
ref | référence de l'émetteur de l'observer |
obs | Observer |
Définition à la ligne 1306 du fichier ItemGroupImpl.cc.
Références _updateNeedInfoFlag(), Arcane::ItemGroupInternal::m_observer_need_info, Arcane::ItemGroupInternal::m_observers, et m_p.
Référencé par _updateNeedInfoFlag(), Arcane::Materials::MeshEnvironment::build(), Arcane::mesh::DynamicMesh::build(), createSubGroup(), et Arcane::AnyItem::FamilyInternal::operator<<().
void Arcane::ItemGroupImpl::beginTransaction | ( | ) |
Débute une transaction.
Une transaction permet d'accèder en écriture à des groupes protégés. L'utilisation de ce mécanisme indique a Arcane que l'utilisateur a conscience qu'il modifie 'à ses risques' un groupe.
Définition à la ligne 209 du fichier ItemGroupImpl.cc.
Références ARCANE_FATAL, m_p, et Arcane::ItemGroupInternal::m_transaction_mode.
Référencé par _computeChildrenByType(), Arcane::OwnItemGroupComputeFunctor::executeFunctor(), Arcane::GhostItemGroupComputeFunctor::executeFunctor(), Arcane::InterfaceItemGroupComputeFunctor::executeFunctor(), Arcane::InnerFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OuterFaceItemGroupComputeFunctor::executeFunctor(), Arcane::ActiveCellGroupComputeFunctor::executeFunctor(), Arcane::OwnActiveCellGroupComputeFunctor::executeFunctor(), Arcane::LevelCellGroupComputeFunctor::executeFunctor(), Arcane::OwnLevelCellGroupComputeFunctor::executeFunctor(), Arcane::ActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OwnActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::InnerActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OuterActiveFaceItemGroupComputeFunctor::executeFunctor(), et Arcane::mesh::DynamicMeshKindInfos::finalizeMeshChanged().
Int64 Arcane::ItemGroupImpl::capacity | ( | ) | const |
ItemGroupImpl * Arcane::ItemGroupImpl::cellGroup | ( | ) |
Groupe des mailles des éléments de ce groupe.
Définition à la ligne 430 du fichier ItemGroupImpl.cc.
Références Arcane::IMeshBase::cellFamily(), createSubGroup(), Arcane::IK_Cell, itemKind(), Arcane::ItemGroupInternal::m_cell_group, Arcane::ItemGroupInternal::m_mesh, et m_p.
void Arcane::ItemGroupImpl::changeIds | ( | Int32ConstArrayView | old_to_new_ids | ) |
Change les indices des entités du groupe.
Définition à la ligne 663 du fichier ItemGroupImpl.cc.
Références checkNeedUpdate(), Arccore::ITraceMng::debug(), Arccore::Trace::High, isAllItems(), Arcane::ItemGroupInternal::m_compute_functor, Arcane::ItemGroupInternal::m_mesh, Arcane::ItemGroupInternal::m_observer_need_info, m_p, name(), et Arcane::IMeshBase::traceMng().
Référencé par Arcane::mesh::ItemFamily::compactVariablesAndGroups().
bool Arcane::ItemGroupImpl::checkIsSorted | ( | ) | const |
Vérifie et retourne si le groupe est trié par uniqueId() croissants.
Définition à la ligne 1684 du fichier ItemGroupImpl.cc.
void Arcane::ItemGroupImpl::checkLocalIdsAreContigous | ( | ) | const |
Vérifie si les entités du groupe ont des localIds() contigüs.
Si c'est le cas, alors isContigousLocalIds() retournera vrai.
Définition à la ligne 1760 du fichier ItemGroupImpl.cc.
Références Arcane::ItemGroupInternal::checkIsContigous(), et m_p.
bool Arcane::ItemGroupImpl::checkNeedUpdate | ( | ) |
Réactualise le groupe si nécessaire.
Un groupe doit être réactualisée lorsqu'il est devenu invalide, par exemple suite à un appel à invalidate().
true | si le groupe a été réactualisé, |
false | sinon. |
Définition à la ligne 1160 du fichier ItemGroupImpl.cc.
Référencé par changeIds(), Arcane::mesh::DynamicMeshKindInfos::finalizeMeshChanged(), et invalidate().
|
static |
Définition à la ligne 114 du fichier ItemGroupImpl.cc.
void Arcane::ItemGroupImpl::checkValid | ( | ) |
Vérifie que le groupe est valide.
Définition à la ligne 1102 du fichier ItemGroupImpl.cc.
Références m_p.
Référencé par addItems(), removeAddItems(), removeSuppressedItems(), et setItems().
void Arcane::ItemGroupImpl::clear | ( | ) |
Supprime les entités du groupe.
Définition à la ligne 1178 du fichier ItemGroupImpl.cc.
Références Arcane::ItemGroupInternal::m_need_recompute, m_p, et Arcane::ItemGroupInternal::m_sub_groups.
ItemGroupImpl * Arcane::ItemGroupImpl::createSubGroup | ( | const String & | suffix, |
IItemFamily * | family, | ||
ItemGroupComputeFunctor * | functor | ||
) |
Crée un sous-groupe calculé
Le gestion mémoire du functor est alors délégué au groupe
Définition à la ligne 622 du fichier ItemGroupImpl.cc.
Références _executeInvalidate(), ARCANE_FATAL, attachObserver(), Arcane::IItemFamily::createGroup(), m_p, Arcane::ItemGroupInternal::m_sub_groups, name(), et Arcane::newItemGroupObserverT().
Référencé par _initChildrenByType(), activeCellGroup(), activeFaceGroup(), cellGroup(), edgeGroup(), faceGroup(), ghostGroup(), innerActiveFaceGroup(), innerFaceGroup(), levelCellGroup(), nodeGroup(), outerActiveFaceGroup(), outerFaceGroup(), ownActiveCellGroup(), ownActiveFaceGroup(), ownGroup(), et ownLevelCellGroup().
|
privatevirtual |
Notification de SharedReference indiquant qu'il faut détruire l'instance.
Implémente Arcane::SharedReference.
Définition à la ligne 1713 du fichier ItemGroupImpl.cc.
void Arcane::ItemGroupImpl::destroy | ( | ) |
Détruit le groupe. Après cet appel, le groupe devient un groupe nul.
Définition à la ligne 1617 du fichier ItemGroupImpl.cc.
Références detachObserver(), Arcane::ItemGroupInternal::m_is_all_items, Arcane::ItemGroupInternal::m_observers, et m_p.
Référencé par Arcane::mesh::ItemFamily::destroyGroups().
Détache un observer.
ref | référence de l'émetteur de l'observer |
Définition à la ligne 1327 du fichier ItemGroupImpl.cc.
Références _updateNeedInfoFlag(), Arcane::ItemGroupInternal::m_group_index_table, Arcane::ItemGroupInternal::m_observers, m_p, et Arcane::ItemGroupInternal::m_synchronizer.
Référencé par _updateNeedInfoFlag(), destroy(), et Arcane::ItemPairGroupImpl::~ItemPairGroupImpl().
ItemGroupImpl * Arcane::ItemGroupImpl::edgeGroup | ( | ) |
Groupe des arêtes des éléments de ce groupe.
Définition à la ligne 398 du fichier ItemGroupImpl.cc.
Références createSubGroup(), Arcane::IMeshBase::edgeFamily(), Arcane::IK_Edge, itemKind(), Arcane::ItemGroupInternal::m_edge_group, Arcane::ItemGroupInternal::m_mesh, et m_p.
bool Arcane::ItemGroupImpl::empty | ( | ) | const |
Vrai si le groupe est vide.
Définition à la ligne 191 du fichier ItemGroupImpl.cc.
Références Arccore::ArrayView< T >::empty(), et m_p.
void Arcane::ItemGroupImpl::endTransaction | ( | ) |
Termine une transaction.
Définition à la ligne 220 du fichier ItemGroupImpl.cc.
Références ARCANE_FATAL, Arcane::ItemGroupInternal::m_need_invalidate_on_recompute, Arcane::ItemGroupInternal::m_need_recompute, m_p, et Arcane::ItemGroupInternal::m_transaction_mode.
Référencé par _computeChildrenByType(), Arcane::OwnItemGroupComputeFunctor::executeFunctor(), Arcane::GhostItemGroupComputeFunctor::executeFunctor(), Arcane::InterfaceItemGroupComputeFunctor::executeFunctor(), Arcane::InnerFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OuterFaceItemGroupComputeFunctor::executeFunctor(), Arcane::ActiveCellGroupComputeFunctor::executeFunctor(), Arcane::OwnActiveCellGroupComputeFunctor::executeFunctor(), Arcane::LevelCellGroupComputeFunctor::executeFunctor(), Arcane::OwnLevelCellGroupComputeFunctor::executeFunctor(), Arcane::ActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OwnActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::InnerActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OuterActiveFaceItemGroupComputeFunctor::executeFunctor(), et Arcane::mesh::DynamicMeshKindInfos::finalizeMeshChanged().
ItemGroupImpl * Arcane::ItemGroupImpl::faceGroup | ( | ) |
Groupe des faces des éléments de ce groupe.
Définition à la ligne 414 du fichier ItemGroupImpl.cc.
Références createSubGroup(), Arcane::IMeshBase::faceFamily(), Arcane::IK_Face, itemKind(), Arcane::ItemGroupInternal::m_face_group, Arcane::ItemGroupInternal::m_mesh, et m_p.
ItemGroupImpl * Arcane::ItemGroupImpl::findSubGroup | ( | const String & | suffix | ) |
Accède à un sous-groupe calculé
Le gestion mémoire du functor est alors délégué au groupe
Définition à la ligne 646 du fichier ItemGroupImpl.cc.
Références m_p, Arcane::ItemGroupInternal::m_sub_groups, et name().
const String & Arcane::ItemGroupImpl::fullName | ( | ) | const |
Nom complet du groupe (avec maillage + famille)
Définition à la ligne 173 du fichier ItemGroupImpl.cc.
Références m_p.
ItemGroupImpl * Arcane::ItemGroupImpl::ghostGroup | ( | ) |
Items in the group not owned by the subdomain.
Définition à la ligne 352 du fichier ItemGroupImpl.cc.
Références createSubGroup(), Arcane::ItemGroupInternal::m_ghost_group, Arcane::ItemGroupInternal::m_item_family, et m_p.
bool Arcane::ItemGroupImpl::hasComputeFunctor | ( | ) | const |
Indique si le groupe est calculé
Définition à la ligne 1379 du fichier ItemGroupImpl.cc.
Références Arcane::ItemGroupInternal::m_compute_functor, et m_p.
Référencé par Arcane::mesh::ItemFamily::notifyItemsOwnerChanged(), Arcane::mesh::ItemFamily::prepareForDump(), et shrinkMemory().
bool Arcane::ItemGroupImpl::hasInfoObserver | ( | ) | const |
Indique si le contenu de ce groupe est observé.
Ceci a pour effet d'embrayer des mécanismes de modification incrémentaux.
Un groupe peut n'être observé que pour sa structure par des objets recalculés non incrémentalement.
Définition à la ligne 1360 du fichier ItemGroupImpl.cc.
Références Arcane::ItemGroupInternal::m_observer_need_info, et m_p.
Référencé par Arcane::ItemGroupsSynchronize::synchronize().
bool Arcane::ItemGroupImpl::hasSynchronizer | ( | ) |
Indique si ce groupe possède un synchroniser.
Définition à la ligne 1675 du fichier ItemGroupImpl.cc.
Références m_p, et Arcane::ItemGroupInternal::m_synchronizer.
ItemGroupImpl * Arcane::ItemGroupImpl::innerActiveFaceGroup | ( | ) |
Groupe des faces internes actives des éléments de ce groupe.
Ce groupe n'existe que pour un groupe de maille (itemKind()==IK_Cell). Une face est interne active si elle connectée à deux mailles actives de ce groupe.
Définition à la ligne 589 du fichier ItemGroupImpl.cc.
Références createSubGroup(), Arcane::IMeshBase::faceFamily(), Arcane::IK_Cell, itemKind(), Arcane::ItemGroupInternal::m_inner_active_face_group, Arcane::ItemGroupInternal::m_mesh, et m_p.
ItemGroupImpl * Arcane::ItemGroupImpl::innerFaceGroup | ( | ) |
Groupe des faces internes des éléments de ce groupe.
Ce groupe n'existe que pour un groupe de maille (itemKind()==IK_Cell). Une face est interne si elle connectée à deux mailles de ce groupe.
Définition à la ligne 446 du fichier ItemGroupImpl.cc.
Références createSubGroup(), Arcane::IMeshBase::faceFamily(), Arcane::IK_Cell, itemKind(), Arcane::ItemGroupInternal::m_inner_face_group, Arcane::ItemGroupInternal::m_mesh, et m_p.
ItemGroupImpl * Arcane::ItemGroupImpl::interfaceGroup | ( | ) |
Définition à la ligne 366 du fichier ItemGroupImpl.cc.
Invalide le groupe.
Opération très violente qui induit une invalidation de toutes les dépendances autant des observers que des sous-groupes construits.
Définition à la ligne 712 du fichier ItemGroupImpl.cc.
Références checkNeedUpdate(), Arccore::TraceAccessor::debug(), Arccore::Trace::High, Arcane::ItemGroupInternal::m_mesh, m_p, name(), et Arcane::IMeshBase::traceMng().
Référencé par shrinkMemory().
bool Arcane::ItemGroupImpl::isAllItems | ( | ) | const |
Indique si le groupe est celui de toutes les entités.
Définition à la ligne 999 du fichier ItemGroupImpl.cc.
Références Arcane::ItemGroupInternal::m_is_all_items, et m_p.
Référencé par addItems(), changeIds(), removeAddItems(), et setOwn().
bool Arcane::ItemGroupImpl::isContigousLocalIds | ( | ) | const |
Indique si les entités du groupe ont des localIds() contigüs.
Définition à la ligne 1751 du fichier ItemGroupImpl.cc.
Références m_p.
bool Arcane::ItemGroupImpl::isLocalToSubDomain | ( | ) | const |
AMR OFF.
Vrai si le groupe est local au sous-domaine
Définition à la ligne 751 du fichier ItemGroupImpl.cc.
Références Arcane::ItemGroupInternal::m_is_local_to_sub_domain, et m_p.
bool Arcane::ItemGroupImpl::isOwn | ( | ) | const |
Retourne si le groupe contient uniquement des éléments propres au sous-domaine.
Définition à la ligne 289 du fichier ItemGroupImpl.cc.
Références Arcane::ItemGroupInternal::m_is_own, et m_p.
Référencé par removeAddItems().
IItemFamily * Arcane::ItemGroupImpl::itemFamily | ( | ) | const |
Familly à laquelle appartient le groupe (ou 0 si aucune)
Définition à la ligne 271 du fichier ItemGroupImpl.cc.
Références Arcane::ItemGroupInternal::m_item_family, et m_p.
Référencé par Arcane::InterfaceItemGroupComputeFunctor::executeFunctor(), Arcane::InnerFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OuterFaceItemGroupComputeFunctor::executeFunctor(), Arcane::ActiveCellGroupComputeFunctor::executeFunctor(), Arcane::OwnActiveCellGroupComputeFunctor::executeFunctor(), Arcane::LevelCellGroupComputeFunctor::executeFunctor(), Arcane::OwnLevelCellGroupComputeFunctor::executeFunctor(), Arcane::ActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OwnActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::InnerActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OuterActiveFaceItemGroupComputeFunctor::executeFunctor(), et setItems().
ItemInfoListView Arcane::ItemGroupImpl::itemInfoListView | ( | ) | const |
Liste des entités sur lesquelles s'appuie le groupe.
Définition à la ligne 742 du fichier ItemGroupImpl.cc.
Références m_p.
Référencé par setItems().
eItemKind Arcane::ItemGroupImpl::itemKind | ( | ) | const |
Genre du groupe. Il s'agit du genre de ses éléments.
Définition à la ligne 322 du fichier ItemGroupImpl.cc.
Références m_p.
Référencé par Arcane::ItemGroup::_check(), activeCellGroup(), activeFaceGroup(), cellGroup(), edgeGroup(), faceGroup(), innerActiveFaceGroup(), innerFaceGroup(), levelCellGroup(), nodeGroup(), outerActiveFaceGroup(), outerFaceGroup(), ownActiveCellGroup(), ownActiveFaceGroup(), et ownLevelCellGroup().
ItemInternalList Arcane::ItemGroupImpl::itemsInternal | ( | ) | const |
Liste des entités sur lesquelles s'appuie le groupe.
Définition à la ligne 733 du fichier ItemGroupImpl.cc.
Références m_p.
Référencé par removeAddItems().
Int32ConstArrayView Arcane::ItemGroupImpl::itemsLocalId | ( | ) | const |
Liste des numéros locaux des entités de ce groupe.
Définition à la ligne 200 du fichier ItemGroupImpl.cc.
Références m_p.
Référencé par Arcane::mesh::DynamicMeshKindInfos::beginCompactItems(), Arcane::mesh::DynamicMesh::build(), et Arcane::mesh::DynamicMeshKindInfos::clear().
ItemGroupImpl * Arcane::ItemGroupImpl::levelCellGroup | ( | const Integer & | level | ) |
Groupe des mailles actives de ce groupe.
Une maille active est une maille feuille dans l'arbre AMR.
Définition à la ligne 519 du fichier ItemGroupImpl.cc.
Références Arcane::IMeshBase::cellFamily(), createSubGroup(), Arcane::IK_Cell, itemKind(), Arcane::ItemGroupInternal::m_level_cell_group, Arcane::ItemGroupInternal::m_mesh, et m_p.
SharedPtrT< GroupIndexTable > Arcane::ItemGroupImpl::localIdToIndex | ( | ) |
Table des local ids vers une position pour toutes les entités du groupe.
Définition à la ligne 1643 du fichier ItemGroupImpl.cc.
Références Arccore::ITraceMng::debug(), Arccore::Trace::High, Arcane::ItemGroupInternal::m_group_index_table, Arcane::ItemGroupInternal::m_mesh, Arcane::ItemGroupInternal::m_name, m_p, et Arcane::IMeshBase::traceMng().
IMesh * Arcane::ItemGroupImpl::mesh | ( | ) | const |
Maillage auquel appartient le groupe (0 pour le groupe nul).
Définition à la ligne 262 du fichier ItemGroupImpl.cc.
Références m_p.
Référencé par _computeChildrenByTypeV2(), addItems(), Arcane::OwnItemGroupComputeFunctor::executeFunctor(), Arcane::GhostItemGroupComputeFunctor::executeFunctor(), Arcane::InterfaceItemGroupComputeFunctor::executeFunctor(), Arcane::InnerFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OuterFaceItemGroupComputeFunctor::executeFunctor(), Arcane::ActiveCellGroupComputeFunctor::executeFunctor(), Arcane::OwnActiveCellGroupComputeFunctor::executeFunctor(), Arcane::LevelCellGroupComputeFunctor::executeFunctor(), Arcane::OwnLevelCellGroupComputeFunctor::executeFunctor(), Arcane::ActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OwnActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::InnerActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OuterActiveFaceItemGroupComputeFunctor::executeFunctor(), et removeAddItems().
const String & Arcane::ItemGroupImpl::name | ( | ) | const |
Nom du groupe.
Définition à la ligne 164 du fichier ItemGroupImpl.cc.
Références m_p.
Référencé par Arcane::GeometryServiceBase::_checkItemGroupProperty(), _computeChildrenByType(), _computeChildrenByTypeV2(), _initChildrenByTypeV2(), Arcane::mesh::DynamicMesh::_prepareForDumpReal(), addItems(), applyOperation(), changeIds(), createSubGroup(), Arcane::mesh::DynamicMesh::defineParentForBuild(), Arcane::OwnItemGroupComputeFunctor::executeFunctor(), Arcane::GhostItemGroupComputeFunctor::executeFunctor(), Arcane::InterfaceItemGroupComputeFunctor::executeFunctor(), Arcane::InnerFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OuterFaceItemGroupComputeFunctor::executeFunctor(), Arcane::ActiveCellGroupComputeFunctor::executeFunctor(), Arcane::OwnActiveCellGroupComputeFunctor::executeFunctor(), Arcane::LevelCellGroupComputeFunctor::executeFunctor(), Arcane::OwnLevelCellGroupComputeFunctor::executeFunctor(), Arcane::ActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OwnActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::InnerActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OuterActiveFaceItemGroupComputeFunctor::executeFunctor(), findSubGroup(), invalidate(), removeAddItems(), removeSuppressedItems(), setItems(), et unguardedItemsLocalId().
|
inlinevirtual |
Nombre de références sur le groupe.
Définition à la ligne 118 du fichier ItemGroupImpl.h.
bool Arcane::ItemGroupImpl::needSynchronization | ( | ) | const |
Indique si le groupe a structurellement besoin d'une synchro parallèle.
Définition à la ligne 1286 du fichier ItemGroupImpl.cc.
Références Arcane::ItemGroupInternal::m_compute_functor, Arcane::ItemGroupInternal::m_is_local_to_sub_domain, Arcane::ItemGroupInternal::m_is_own, et m_p.
ItemGroupImpl * Arcane::ItemGroupImpl::nodeGroup | ( | ) |
Groupe des noeuds des éléments de ce groupe.
Définition à la ligne 382 du fichier ItemGroupImpl.cc.
Références createSubGroup(), Arcane::IK_Node, itemKind(), Arcane::ItemGroupInternal::m_mesh, Arcane::ItemGroupInternal::m_node_group, m_p, et Arcane::IMeshBase::nodeFamily().
bool Arcane::ItemGroupImpl::null | ( | ) | const |
Retourne true si le groupe est nul.
Définition à la ligne 280 du fichier ItemGroupImpl.cc.
Références m_p.
Référencé par checkIsSorted().
ItemGroupImpl * Arcane::ItemGroupImpl::outerActiveFaceGroup | ( | ) |
Groupe des faces externes actives des éléments de ce groupe.
Ce groupe n'existe que pour un groupe de maille (itemKind()==IK_Cell). Une face est externe active si elle n'est connectée qu'à une maille de ce groupe et est active.
Définition à la ligne 606 du fichier ItemGroupImpl.cc.
Références createSubGroup(), Arcane::IMeshBase::faceFamily(), Arcane::IK_Cell, itemKind(), Arcane::ItemGroupInternal::m_mesh, Arcane::ItemGroupInternal::m_outer_active_face_group, et m_p.
ItemGroupImpl * Arcane::ItemGroupImpl::outerFaceGroup | ( | ) |
Groupe des faces externes des éléments de ce groupe.
Ce groupe n'existe que pour un groupe de maille (itemKind()==IK_Cell). Une face est externe si elle n'est connectée qu'à une maille de ce groupe.
Définition à la ligne 463 du fichier ItemGroupImpl.cc.
Références createSubGroup(), Arcane::IMeshBase::faceFamily(), Arcane::IK_Cell, itemKind(), Arcane::ItemGroupInternal::m_mesh, Arcane::ItemGroupInternal::m_outer_face_group, et m_p.
ItemGroupImpl * Arcane::ItemGroupImpl::ownActiveCellGroup | ( | ) |
Groupe des mailles propres actives de ce groupe.
Définition à la ligne 501 du fichier ItemGroupImpl.cc.
Références Arcane::IMeshBase::cellFamily(), createSubGroup(), Arcane::IK_Cell, itemKind(), Arcane::ItemGroupInternal::m_mesh, Arcane::ItemGroupInternal::m_own_active_cell_group, et m_p.
ItemGroupImpl * Arcane::ItemGroupImpl::ownActiveFaceGroup | ( | ) |
Groupe des faces externes actives des éléments de ce groupe.
Ce groupe n'existe que pour un groupe de maille (itemKind()==IK_Cell). Une face est externe active si elle n'est connectée qu'à une maille de ce groupe et est active.
Définition à la ligne 573 du fichier ItemGroupImpl.cc.
Références createSubGroup(), Arcane::IMeshBase::faceFamily(), Arcane::IK_Cell, itemKind(), Arcane::ItemGroupInternal::m_mesh, Arcane::ItemGroupInternal::m_own_active_face_group, et m_p.
ItemGroupImpl * Arcane::ItemGroupImpl::ownGroup | ( | ) |
Groupe des entité propres des entités de ce groupe.
Définition à la ligne 331 du fichier ItemGroupImpl.cc.
Références createSubGroup(), Arcane::ItemGroupInternal::m_is_own, Arcane::ItemGroupInternal::m_item_family, Arcane::ItemGroupInternal::m_own_group, et m_p.
ItemGroupImpl * Arcane::ItemGroupImpl::ownLevelCellGroup | ( | const Integer & | level | ) |
Groupe des mailles propres actives de ce groupe.
Définition à la ligne 537 du fichier ItemGroupImpl.cc.
Références Arcane::IMeshBase::cellFamily(), createSubGroup(), Arcane::IK_Cell, itemKind(), Arcane::ItemGroupInternal::m_mesh, Arcane::ItemGroupInternal::m_own_level_cell_group, et m_p.
ItemGroupImpl * Arcane::ItemGroupImpl::parent | ( | ) | const |
Groupe parent (0 si aucun)
Définition à la ligne 253 du fichier ItemGroupImpl.cc.
Références m_p.
Référencé par _updateNeedInfoFlag(), Arcane::OwnItemGroupComputeFunctor::executeFunctor(), Arcane::GhostItemGroupComputeFunctor::executeFunctor(), Arcane::InterfaceItemGroupComputeFunctor::executeFunctor(), Arcane::InnerFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OuterFaceItemGroupComputeFunctor::executeFunctor(), Arcane::ActiveCellGroupComputeFunctor::executeFunctor(), Arcane::OwnActiveCellGroupComputeFunctor::executeFunctor(), Arcane::LevelCellGroupComputeFunctor::executeFunctor(), Arcane::OwnLevelCellGroupComputeFunctor::executeFunctor(), Arcane::ActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OwnActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::InnerActiveFaceItemGroupComputeFunctor::executeFunctor(), et Arcane::OuterActiveFaceItemGroupComputeFunctor::executeFunctor().
ItemGroup Arcane::ItemGroupImpl::parentGroup | ( | ) |
Groupe parent.
Définition à la ligne 1195 du fichier ItemGroupImpl.cc.
Références m_p.
Référencé par Arcane::mesh::ItemFamily::createGroup().
void Arcane::ItemGroupImpl::removeAddItems | ( | Int32ConstArrayView | removed_local_id, |
Int32ConstArrayView | added_local_id, | ||
bool | check_if_present | ||
) |
Supprime et ajoute les entités removed_local_id et added_local_id du groupe.
Définition à la ligne 854 du fichier ItemGroupImpl.cc.
Références addItems(), ARCANE_FATAL, ARCANE_THROW, Arcane::arcaneIsCheck(), checkValid(), Arccore::ITraceMng::info(), isAllItems(), isOwn(), Arcane::ItemBase::isSuppressed(), itemsInternal(), Arcane::ItemBase::localId(), Arcane::ItemGroupInternal::m_compute_functor, Arcane::ItemGroupInternal::m_item_family, Arcane::ItemGroupInternal::m_need_recompute, m_p, Arcane::ItemGroupInternal::m_transaction_mode, mesh(), name(), Arcane::IItemFamily::nbItem(), removeItems(), Arccore::Array< T >::resize(), size(), et Arccore::TraceAccessor::traceMng().
Référencé par Arcane::mesh::DynamicMeshKindInfos::finalizeMeshChanged().
void Arcane::ItemGroupImpl::removeItems | ( | Int32ConstArrayView | items_local_id, |
bool | check_if_present | ||
) |
Supprime les entités items_local_id du groupe.
Définition à la ligne 845 du fichier ItemGroupImpl.cc.
Références m_p.
Référencé par Arcane::mesh::DynamicMeshKindInfos::finalizeMeshChanged(), et removeAddItems().
void Arcane::ItemGroupImpl::removeSuppressedItems | ( | ) |
Supprime du groupe les entités dont le flag isSuppressed() est vrai.
Définition à la ligne 1027 du fichier ItemGroupImpl.cc.
Références Arcane::arcaneIsCheck(), checkValid(), Arccore::ITraceMng::debug(), Arccore::ITraceMng::fatal(), Arccore::Trace::High, Arcane::ItemGroupInternal::m_compute_functor, Arcane::ItemGroupInternal::m_observer_need_info, m_p, name(), Arccore::ConstArrayView< T >::size(), et Arcane::IMeshBase::traceMng().
Définit une fonction de calcul de groupe.
Définition à la ligne 1369 du fichier ItemGroupImpl.cc.
Références Arcane::ItemGroupInternal::m_compute_functor, et m_p.
void Arcane::ItemGroupImpl::setIsAllItems | ( | ) |
Indique à ce groupe qu'il s'agit du groupe de toutes les entités de la famille.
Définition à la ligne 990 du fichier ItemGroupImpl.cc.
Références Arcane::ItemGroupInternal::m_is_all_items, et m_p.
void Arcane::ItemGroupImpl::setItems | ( | Int32ConstArrayView | items_local_id | ) |
Positionne les entités du groupe à items_local_id.
Définition à la ligne 926 du fichier ItemGroupImpl.cc.
Références ARCANE_FATAL, Arcane::arcaneIsCheck(), checkValid(), Arccore::ITraceMng::debug(), Arccore::Trace::High, Arcane::ItemGroupInternal::m_compute_functor, Arcane::ItemGroupInternal::m_need_recompute, m_p, Arcane::ItemGroupInternal::m_transaction_mode, name(), size(), et Arcane::IMeshBase::traceMng().
Référencé par _computeChildrenByType(), Arcane::OwnItemGroupComputeFunctor::executeFunctor(), Arcane::GhostItemGroupComputeFunctor::executeFunctor(), Arcane::InterfaceItemGroupComputeFunctor::executeFunctor(), Arcane::InnerFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OuterFaceItemGroupComputeFunctor::executeFunctor(), Arcane::ActiveCellGroupComputeFunctor::executeFunctor(), Arcane::OwnActiveCellGroupComputeFunctor::executeFunctor(), Arcane::LevelCellGroupComputeFunctor::executeFunctor(), Arcane::OwnLevelCellGroupComputeFunctor::executeFunctor(), Arcane::ActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OwnActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::InnerActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OuterActiveFaceItemGroupComputeFunctor::executeFunctor(), et setItems().
void Arcane::ItemGroupImpl::setItems | ( | Int32ConstArrayView | items_local_id, |
bool | do_sort | ||
) |
Positionne les entités du groupe à items_local_id en les triant éventuellement.
Définition à la ligne 974 du fichier ItemGroupImpl.cc.
Références itemFamily(), itemInfoListView(), et setItems().
Positionne le booléen indiquant si le groupe est local au sous-domaine.
Définition à la ligne 760 du fichier ItemGroupImpl.cc.
Références Arcane::ItemGroupInternal::m_is_local_to_sub_domain, et m_p.
Positionne la propriété de groupe local ou non.
Définition à la ligne 298 du fichier ItemGroupImpl.cc.
Références ARCANE_THROW, isAllItems(), Arcane::ItemGroupInternal::m_is_own, Arcane::ItemGroupInternal::m_own_group, et m_p.
|
inlinevirtual |
Définition à la ligne 107 du fichier ItemGroupImpl.h.
void Arcane::ItemGroupImpl::shrinkMemory | ( | ) |
Limite au maximum la mémoire utilisée par le groupe.
Si le groupe est un groupe calculé, il est invalidé et toute sa mémoire allouée est libérée.
Si le groupe est un groupe créé par l'utilisateur (donc persistant), s'assure que la mémoire consommée est minimale. Normalement Arcane alloue un peu plus d'éléments que nécessaire pour éviter de faire des réallocations trop souvent.
Définition à la ligne 1779 du fichier ItemGroupImpl.cc.
Références Arcane::ItemGroupInternal::applySimdPadding(), hasComputeFunctor(), invalidate(), m_p, Arcane::IVariable::shrinkMemory(), et Arcane::VariableRef::variable().
Integer Arcane::ItemGroupImpl::size | ( | ) | const |
Nombre d'entités du groupe.
Définition à la ligne 182 du fichier ItemGroupImpl.cc.
Références m_p, et Arccore::ArrayView< T >::size().
Référencé par _computeChildrenByTypeV2(), applyOperation(), Arcane::OwnItemGroupComputeFunctor::executeFunctor(), Arcane::GhostItemGroupComputeFunctor::executeFunctor(), Arcane::InterfaceItemGroupComputeFunctor::executeFunctor(), Arcane::InnerFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OuterFaceItemGroupComputeFunctor::executeFunctor(), Arcane::ActiveCellGroupComputeFunctor::executeFunctor(), Arcane::OwnActiveCellGroupComputeFunctor::executeFunctor(), Arcane::LevelCellGroupComputeFunctor::executeFunctor(), Arcane::OwnLevelCellGroupComputeFunctor::executeFunctor(), Arcane::ActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OwnActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::InnerActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OuterActiveFaceItemGroupComputeFunctor::executeFunctor(), removeAddItems(), et setItems().
IVariableSynchronizer * Arcane::ItemGroupImpl::synchronizer | ( | ) |
Synchronizer du groupe.
Définition à la ligne 1658 du fichier ItemGroupImpl.cc.
Références Arcane::ParallelMngUtils::createSynchronizerRef(), Arccore::ITraceMng::debug(), Arccore::Trace::High, Arcane::ItemGroupInternal::m_mesh, Arcane::ItemGroupInternal::m_name, m_p, Arcane::ItemGroupInternal::m_synchronizer, Arcane::IMesh::parallelMng(), et Arcane::IMeshBase::traceMng().
Int64 Arcane::ItemGroupImpl::timestamp | ( | ) | const |
Retourne le temps du groupe. Ce temps est incrémenté après chaque modification.
Définition à la ligne 1297 du fichier ItemGroupImpl.cc.
Références m_p.
Int32Array & Arcane::ItemGroupImpl::unguardedItemsLocalId | ( | const bool | self_invalidate = true | ) |
Liste des numéros locaux des entités de ce groupe.
Définition à la ligne 236 du fichier ItemGroupImpl.cc.
Références _forceInvalidate(), ARCANE_FATAL, Arccore::ITraceMng::debug(), Arcane::ItemGroupInternal::m_compute_functor, Arcane::ItemGroupInternal::m_mesh, m_p, Arcane::ItemGroupInternal::m_transaction_mode, Arccore::Trace::Medium, name(), et Arcane::IMeshBase::traceMng().
|
private |
Définition à la ligne 76 du fichier ItemGroupImpl.h.
|
private |
Implémentation du groupe.
Définition à la ligne 487 du fichier ItemGroupImpl.h.
Référencé par _computeChildrenByType(), _computeChildrenByTypeV2(), _executeCompact(), _executeExtend(), _executeInvalidate(), _executeReduce(), _forceInvalidate(), _initChildrenByType(), _initChildrenByTypeV2(), _internalApi(), _updateNeedInfoFlag(), activeCellGroup(), activeFaceGroup(), addItems(), applyOperation(), attachObserver(), beginTransaction(), capacity(), cellGroup(), changeIds(), checkIsSorted(), checkLocalIdsAreContigous(), checkValid(), clear(), createSubGroup(), destroy(), detachObserver(), edgeGroup(), empty(), endTransaction(), faceGroup(), findSubGroup(), fullName(), ghostGroup(), hasComputeFunctor(), hasInfoObserver(), hasSynchronizer(), innerActiveFaceGroup(), innerFaceGroup(), invalidate(), isAllItems(), isContigousLocalIds(), isLocalToSubDomain(), isOwn(), itemFamily(), itemInfoListView(), itemKind(), itemsInternal(), itemsLocalId(), levelCellGroup(), localIdToIndex(), mesh(), name(), needSynchronization(), nodeGroup(), null(), outerActiveFaceGroup(), outerFaceGroup(), ownActiveCellGroup(), ownActiveFaceGroup(), ownGroup(), ownLevelCellGroup(), parent(), parentGroup(), removeAddItems(), removeItems(), removeSuppressedItems(), setComputeFunctor(), setIsAllItems(), setItems(), setLocalToSubDomain(), setOwn(), shrinkMemory(), size(), synchronizer(), timestamp(), unguardedItemsLocalId(), et ~ItemGroupImpl().
|
staticprivate |
Définition à la ligne 99 du fichier ItemGroupImpl.h.