Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::ItemGroup

Groupe d'entités de maillage. Plus de détails...

#include <arcane/core/ItemGroup.h>

+ Graphe d'héritage de Arcane::ItemGroup:
+ Graphe de collaboration de Arcane::ItemGroup:

Types publics

typedef ItemEnumerator const_iter
 Type de l'intervalle d'itération (à supprimer)
 

Fonctions membres publiques

 ItemGroup ()
 Construit un groupe nul.
 
 ItemGroup (ItemGroupImpl *prv)
 Construit un groupe à partir de la représentation interne prv.
 
 ItemGroup (const ItemGroup &from)
 Construit une référence au groupe from.
 
ItemGroupoperator= (const ItemGroup &from)=default
 Affecte à cette instance une référence au groupe from.
 
bool null () const
 true is le groupe est le groupe nul
 
const Stringname () const
 Nom du groupe.
 
const StringfullName () const
 Nom du groupe.
 
Integer size () const
 Nombre d'éléments du groupe.
 
bool empty () const
 Teste si le groupe est vide.
 
eItemKind itemKind () const
 Genre du groupe. Il s'agit du genre de ses éléments.
 
ItemGroupImplinternal () const
 Retourne l'implémentation du groupe.
 
IItemFamilyitemFamily () const
 Famille d'entité à laquelle appartient ce groupe (0 pour le group nul)
 
IMeshmesh () const
 Maillage auquel appartient ce groupe (0 pour le group nul)
 
ItemGroup own () const
 Groupe équivalent à celui-ci mais contenant uniquement les éléments propres au sous-domaine.
 
ItemGroup ghost () const
 
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.
 
ItemGroup interface () const
 
NodeGroup nodeGroup () const
 Groupe des noeuds des éléments de ce groupe.
 
EdgeGroup edgeGroup () const
 Groupe des arêtes des éléments de ce groupe.
 
FaceGroup faceGroup () const
 Groupe des faces des éléments de ce groupe.
 
CellGroup cellGroup () const
 Groupe des mailles des éléments de ce groupe.
 
FaceGroup innerFaceGroup () const
 Groupe des faces internes des éléments de ce groupe.
 
FaceGroup outerFaceGroup () const
 Groupe des faces externes des éléments de ce groupe.
 
CellGroup activeCellGroup () const
 AMR.
 
CellGroup ownActiveCellGroup () const
 Groupe des mailles propres actives des éléments de ce groupe.
 
CellGroup levelCellGroup (const Integer &level) const
 Groupe des mailles de niveau l des éléments de ce groupe.
 
CellGroup ownLevelCellGroup (const Integer &level) const
 Groupe des mailles propres de niveau l des éléments de ce groupe.
 
FaceGroup activeFaceGroup () const
 Groupe des faces actives.
 
FaceGroup ownActiveFaceGroup () const
 Groupe des faces actives propres au domaine des éléments de ce groupe.
 
FaceGroup innerActiveFaceGroup () const
 Groupe des faces internes des éléments de ce groupe.
 
FaceGroup outerActiveFaceGroup () const
 Groupe des faces externes actives des éléments de ce groupe.
 
ItemGroup createSubGroup (const String &suffix, IItemFamily *family, ItemGroupComputeFunctor *functor) const
 Crée un sous-groupe calculé
 
ItemGroup findSubGroup (const String &suffix) const
 Accès à un sous-groupe.
 
bool isLocalToSubDomain () const
 Vrai si le groupe est local au sous-domaine.
 
void setLocalToSubDomain (bool v)
 Positionne le booléen indiquant si le groupe est local au sous-domaine.
 
void invalidate (bool force_recompute=false)
 Invalide le groupe.
 
void addItems (Int32ConstArrayView items_local_id, bool check_if_present=true)
 Ajoute des entités.
 
void removeItems (Int32ConstArrayView items_local_id, bool check_if_present=true)
 Supprime des entités.
 
void setItems (Int32ConstArrayView items_local_id)
 Positionne les entités du groupe.
 
void setItems (Int32ConstArrayView items_local_id, bool do_sort)
 Positionne les entités du groupe.
 
void checkValid ()
 Vérification interne de la validité du groupe.
 
void clear ()
 Supprime les entités du groupe.
 
void applyOperation (IItemOperationByBasicType *operation) const
 Applique l'opération operation sur les entités du groupe.
 
ItemVectorView view () const
 Vue sur les entités du groupe.
 
bool isAllItems () const
 Indique si le groupe est celui de toutes les entités.
 
Int64 timestamp () const
 Retourne le temps du groupe. Ce temps est incrémenté après chaque modification.
 
SharedPtrT< GroupIndexTablelocalIdToIndex () const
 Table des local ids vers une position pour toutes les entités du groupe.
 
IVariableSynchronizersynchronizer () const
 Synchronizer du groupe.
 
bool isAutoComputed () const
 Vrai s'il s'agit d'un groupe calculé automatiquement.
 
bool hasSynchronizer () const
 Indique si le groupe possède un synchroniser actif.
 
bool checkIsSorted () const
 Vérifie et retourne si le groupe est trié par uniqueId() croissants.
 
ItemVectorView _paddedView () const
 Vue sur les entités du groupe avec padding pour la vectorisation.
 
ItemVectorView _unpaddedView () const
 Vue sur les entités du groupe sans padding pour la vectorisation.
 
ItemGroupImplInternal_internalApi () const
 API interne à Arcane.
 
ItemEnumerator enumerator () const
 Enumérateur sur les entités du groupe.
 

Fonctions membres protégées

ItemVectorView _view (bool do_padding) const
 

Fonctions membres protégées statiques

static ItemGroupImpl_check (ItemGroupImpl *impl, eItemKind ik)
 Retourne le groupe impl s'il est du genre kt, le groupe nul sinon.
 

Attributs protégés

AutoRefT< ItemGroupImplm_impl
 Représentation interne du groupe.
 

Fonctions membres privées

ItemEnumerator _simdEnumerator () const
 Enumérateur sur les entités du groupe pour la vectorisation.
 

Amis

template<typename T >
class SimdItemEnumeratorContainerTraits
 

Description détaillée

Groupe d'entités de maillage.

Un groupe d'entité contient un ensemble d'entité d'une famille donnée. Un groupe se créé via la famille correspondante par IItemFamily::createGroup(), IItemFamily::findGroup().

Un groupe d'entité du maillage est une liste d'entités d'une même famille (IItemFamily).

Une entité ne peut être présente qu'une seule fois dans un groupe.

Une instance de cette classe possède une référence sur un groupe quelconque d'entités du maillage. Il est possible à partir de cette référence de connaître le genre (itemKind(), le nom (name()) et le nombre d'éléments (size()) du groupe et d'itérer de manière générique sur les éléments qui le compose. Pour itérer sur les éléments dérivés (mailles, noeuds, ...), il faut d'abord le convertir en une référence sur un groupe spécifique (NodeGroup, FaceGroup, EdgeGroup ou CellGroup). Par exemple:

ItemGroup group = subDomain()->defaultMesh()->findGroup("Surface");
FaceGroup surface(surface);
if (surface.null())
// Pas une surface.
if (surface.empty())
// Surface existe mais est vide
Groupe d'entités de maillage.
Definition ItemGroup.h:49

Il est possible de trier un groupe pour que ses éléments soient toujours être classés par ordre croissant des uniqueId() des éléments, afin de garantir que les codes séquentiels et parallèles peuvent donner le même résultat.

Il existe un groupe spécial, dit groupe nul, permettant de représenter un groupe non référencé, c'est à dire qui n'existe pas. Ce groupe est le seul pour lequel null() retourne true. Le groupe nul possède les propriétés suivantes:

Cette classe utilise un compteur de référence et s'utilise donc par référence. Par exemple:

ItemGroup a = subDomain()->defaultMesh()->findGroup("Toto");
ItemGroup b = a; // b et a font référence au même groupe.
if (a.null())
// Groupe pas trouvé...
;
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120

Pour parcourir les entités d'un groupe, il faut utiliser un énumérateur, par l'intermédiaire des macros ENUMERATE_*, par exemple ENUMERATE_CELL pour un groupe de mailles:

m_mass[icell] = m_volume[icell] * m_density[icell];
}
#define ENUMERATE_CELL(name, group)
Enumérateur générique d'un groupe de mailles.

Il est possible d'ajouter (addItems()) ou supprimer des entités d'un groupe (removeItems()).

Les groupes qui n'ont pas de parents sont persistants et peuvent être récupérés lors d'une reprise. Les éléments de ces groupes sont automatiquement mis à jour lors de la modification de la famille associée. Par exemple, si un élément d'une famille est supprimé et qu'il appartenait à un groupe, il est automatiquement supprimé de ce groupe. De même les groupes sont mis à jour lors d'un repartitionnement du maillage. Il existe cependant une petite restriction avec l'implémentation actuelle sur cette utilisation. Pour éviter de remettre à jour le groupe à chaque changement de la famille, le groupe est marqué comme devant être remis à jour (via invalidate()) à chaque changement mais n'est réellement recalculé que lorsqu'il sera utilisé. Il est donc théoriquement possible que des ajouts et suppressions multiples entre deux utilisations du groupe rendent ses éléments incohérents (TODO: lien sur explication detaillée). Pour éviter ce problème, il est possible de forcer le recalcul du groupe en appelant invalidate() avec comme argument true.

Les groupes dits dérivés (qui ont un parent) comme les own() ou les cellGroup() sont invalidés et vidés de leurs éléments lors d'une modification de la famille associée.

Si un groupe est utilisé comme support pour des variables partielles, alors les entités appartenant au groupe doivent être cohérentes entre les sous-domaines. C'est à dire que si une entité x est présente dans plusieurs sous-domaines (que soit en tant qu'entité propre ou fantôme), il faut qu'elle soit dans ce groupe pour tous les sous-domaines ou dans aucun des groupes. Par exemple, si la maille de uniqueId() 238 est présente les sous-domaines 1, 4 et 8 et que pour le sous-domaine 4 elle est dans le groupe de mailles 'TOTO', alors il faut aussi qu'elle soit dans ce groupe de mailles 'TOTO' pour les sous-domaines 1 et 8.

Définition à la ligne 48 du fichier ItemGroup.h.

Documentation des définitions de type membres

◆ const_iter

Type de l'intervalle d'itération (à supprimer)

Définition à la ligne 65 du fichier ItemGroup.h.

Documentation des constructeurs et destructeur

◆ ItemGroup() [1/3]

◆ ItemGroup() [2/3]

Arcane::ItemGroup::ItemGroup ( ItemGroupImpl prv)

Construit un groupe à partir de la représentation interne prv.

Définition à la ligne 129 du fichier ItemGroup.cc.

Références m_impl.

◆ ItemGroup() [3/3]

Arcane::ItemGroup::ItemGroup ( const ItemGroup from)
inline

Construit une référence au groupe from.

Définition à la ligne 59 du fichier ItemGroup.h.

Documentation des fonctions membres

◆ _check()

static ItemGroupImpl * Arcane::ItemGroup::_check ( ItemGroupImpl impl,
eItemKind  ik 
)
inlinestaticprotected

Retourne le groupe impl s'il est du genre kt, le groupe nul sinon.

Définition à la ligne 345 du fichier ItemGroup.h.

Références Arcane::ItemGroupImpl::itemKind().

◆ _internalApi()

ItemGroupImplInternal * Arcane::ItemGroup::_internalApi ( ) const

◆ _paddedView()

ItemVectorView Arcane::ItemGroup::_paddedView ( ) const

◆ _simdEnumerator()

ItemEnumerator Arcane::ItemGroup::_simdEnumerator ( ) const
private

Enumérateur sur les entités du groupe pour la vectorisation.

Définition à la ligne 553 du fichier ItemGroup.cc.

Références m_impl, et null().

◆ _unpaddedView()

ItemVectorView Arcane::ItemGroup::_unpaddedView ( ) const

Vue sur les entités du groupe sans padding pour la vectorisation.

La vue retournée NE doit PAS être utilisée dans les macros de vectorisation telles ENUMERATE_SIMD_CELL().

Définition à la ligne 599 du fichier ItemGroup.cc.

◆ _view()

ItemVectorView Arcane::ItemGroup::_view ( bool  do_padding) const
protected

Définition à la ligne 565 du fichier ItemGroup.cc.

◆ activeCellGroup()

CellGroup Arcane::ItemGroup::activeCellGroup ( ) const

AMR.

AMR Groupe des mailles actives des éléments de ce groupe

Définition à la ligne 303 du fichier ItemGroup.cc.

Références ItemGroup(), m_impl, et null().

Référencé par Arcane::mesh::DynamicMesh::allActiveCells().

◆ activeFaceGroup()

FaceGroup Arcane::ItemGroup::activeFaceGroup ( ) const

Groupe des faces actives.

Ce groupe n'existe que pour un groupe de maille (itemKind()==IK_Cell).

Définition à la ligne 350 du fichier ItemGroup.cc.

Références ItemGroup(), m_impl, et null().

Référencé par Arcane::mesh::DynamicMesh::allActiveFaces().

◆ addItems()

void Arcane::ItemGroup::addItems ( Int32ConstArrayView  items_local_id,
bool  check_if_present = true 
)

Ajoute des entités.

Ajoute les entités de numéros locaux items_local_id.

La paramètre check_if_present indique s'il vaut vérifier si les entités à ajouter sont déjà présentes dans le groupe, auquel cas elles ne sont pas ajouter. Si l'appelant est certain que les entités à ajouter ne sont pas actuellement dans le groupe, il peut positionner le paramètre check_if_present à false ce qui accélère l'ajout.

Définition à la ligne 444 du fichier ItemGroup.cc.

Références isAllItems(), m_impl, et null().

Référencé par Arcane::ItemGroupsSynchronize::synchronize().

◆ applyOperation()

void Arcane::ItemGroup::applyOperation ( IItemOperationByBasicType operation) const

Applique l'opération operation sur les entités du groupe.

Définition à la ligne 529 du fichier ItemGroup.cc.

Références m_impl, et null().

Référencé par Arcane::BarycentricGeomShapeComputer::computeAll().

◆ cellGroup()

CellGroup Arcane::ItemGroup::cellGroup ( ) const

Groupe des mailles des éléments de ce groupe.

Définition à la ligne 264 du fichier ItemGroup.cc.

Références ItemGroup(), m_impl, et null().

◆ checkIsSorted()

bool Arcane::ItemGroup::checkIsSorted ( ) const

Vérifie et retourne si le groupe est trié par uniqueId() croissants.

Définition à la ligne 653 du fichier ItemGroup.cc.

Références m_impl.

◆ checkValid()

void Arcane::ItemGroup::checkValid ( )

Vérification interne de la validité du groupe.

Définition à la ligne 520 du fichier ItemGroup.cc.

Références m_impl.

Référencé par Arcane::mesh::DynamicMeshKindInfos::finalizeMeshChanged().

◆ clear()

void Arcane::ItemGroup::clear ( )

Supprime les entités du groupe.

Définition à la ligne 427 du fichier ItemGroup.cc.

Références m_impl.

◆ createSubGroup()

ItemGroup Arcane::ItemGroup::createSubGroup ( const String suffix,
IItemFamily family,
ItemGroupComputeFunctor functor 
) const

Crée un sous-groupe calculé

Le gestion mémoire du functor est alors délégué au groupe

Définition à la ligne 404 du fichier ItemGroup.cc.

Références ItemGroup(), m_impl, et null().

◆ edgeGroup()

EdgeGroup Arcane::ItemGroup::edgeGroup ( ) const

Groupe des arêtes des éléments de ce groupe.

Définition à la ligne 240 du fichier ItemGroup.cc.

Références ItemGroup(), m_impl, et null().

◆ empty()

bool Arcane::ItemGroup::empty ( ) const
inline

Teste si le groupe est vide.

Un groupe est vide s'il est nul (null() retourne true) ou s'il n'a pas d'éléments (size() retourne 0).

Valeurs retournées
truesi le groupe est vide,
falsesinon.

Définition à la ligne 102 du fichier ItemGroup.h.

◆ enumerator()

ItemEnumerator Arcane::ItemGroup::enumerator ( ) const

Enumérateur sur les entités du groupe.

Définition à la ligne 541 du fichier ItemGroup.cc.

Références m_impl, et null().

◆ faceGroup()

FaceGroup Arcane::ItemGroup::faceGroup ( ) const

Groupe des faces des éléments de ce groupe.

Définition à la ligne 252 du fichier ItemGroup.cc.

Références ItemGroup(), m_impl, et null().

◆ findSubGroup()

ItemGroup Arcane::ItemGroup::findSubGroup ( const String suffix) const

Accès à un sous-groupe.

Définition à la ligne 416 du fichier ItemGroup.cc.

Références ItemGroup(), m_impl, et null().

◆ fullName()

const String & Arcane::ItemGroup::fullName ( ) const
inline

Nom du groupe.

Définition à la ligne 82 du fichier ItemGroup.h.

Référencé par Arcane::mesh::CommonItemGroupFilterer::applyFiltering().

◆ ghost()

ItemGroup Arcane::ItemGroup::ghost ( ) const

Définition à la ligne 201 du fichier ItemGroup.cc.

◆ hasSynchronizer()

bool Arcane::ItemGroup::hasSynchronizer ( ) const

Indique si le groupe possède un synchroniser actif.

Définition à la ligne 635 du fichier ItemGroup.cc.

Références m_impl.

Référencé par Arcane::mesh::ItemFamily::compactVariablesAndGroups().

◆ innerActiveFaceGroup()

FaceGroup Arcane::ItemGroup::innerActiveFaceGroup ( ) const

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 actives de ce groupe.

Définition à la ligne 377 du fichier ItemGroup.cc.

Références ItemGroup(), m_impl, et null().

Référencé par Arcane::mesh::DynamicMesh::innerActiveFaces().

◆ innerFaceGroup()

FaceGroup Arcane::ItemGroup::innerFaceGroup ( ) const

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 276 du fichier ItemGroup.cc.

Références ItemGroup(), m_impl, et null().

◆ interface()

ItemGroup Arcane::ItemGroup::interface ( ) const

Définition à la ligne 215 du fichier ItemGroup.cc.

◆ internal()

ItemGroupImpl * Arcane::ItemGroup::internal ( ) const
inline

Retourne l'implémentation du groupe.

Avertissement
Cette méthode retourne un pointeur sur la représentation interne du groupe et ne doit pas être utilisée en dehors d'Arcane.

Définition à la ligne 120 du fichier ItemGroup.h.

Référencé par Arcane::GeometryServiceBase::addItemGroupProperty(), Arcane::GeometryServiceBase::addItemGroupProperty(), Arcane::GeometryServiceBase::addItemGroupProperty(), Arcane::mesh::DynamicMeshKindInfos::beginCompactItems(), Arcane::Materials::MeshEnvironment::build(), Arcane::mesh::DynamicMeshKindInfos::clear(), Arcane::mesh::ItemFamily::compactVariablesAndGroups(), Arcane::AnyItem::FamilyInternal::contains(), Arcane::mesh::ItemFamily::createGroup(), Arcane::mesh::DynamicMesh::defineParentForBuild(), Arcane::mesh::ItemFamily::destroyGroups(), Arcane::mesh::DynamicMeshKindInfos::finalizeMeshChanged(), Arcane::AnyItem::FamilyInternal::firstLocalId(), Arcane::GeometryServiceBase::getItemGroupProperty(), Arcane::GeometryServiceBase::getItemGroupPropertyStorage(), Arcane::GeometryServiceBase::getReal3VariableProperty(), Arcane::GeometryServiceBase::getRealVariableProperty(), Arcane::AnyItem::FamilyInternal::groupIndex(), Arcane::AnyItem::FamilyInternal::isPartial(), Arcane::mesh::ItemFamily::notifyItemsOwnerChanged(), Arcane::AnyItem::FamilyInternal::operator<<(), Arcane::AnyItem::UserGroup::operator<<(), Arcane::mesh::ItemFamily::prepareForDump(), Arcane::ItemGroupsSynchronize::synchronize(), et Arcane::ItemPairGroupImpl::~ItemPairGroupImpl().

◆ invalidate()

void Arcane::ItemGroup::invalidate ( bool  force_recompute = false)
inline

Invalide le groupe.

Pour un groupe calculé dynamiquement (comme le groupe des entités propres au sous-domaine), cela signifie qu'il doit se recalculer.

Si force_recompute est faux, le groupe est juste invalidé et sera recalculé la première fois qu'on y accédera. Sinon, il est immédiatement recalculé.

Définition à la ligne 252 du fichier ItemGroup.h.

Référencé par Arcane::mesh::ItemFamily::notifyItemsOwnerChanged().

◆ isAllItems()

◆ isAutoComputed()

bool Arcane::ItemGroup::isAutoComputed ( ) const

Vrai s'il s'agit d'un groupe calculé automatiquement.

Définition à la ligne 626 du fichier ItemGroup.cc.

Références m_impl.

◆ isLocalToSubDomain()

bool Arcane::ItemGroup::isLocalToSubDomain ( ) const
inline

Vrai si le groupe est local au sous-domaine.

Définition à la ligne 225 du fichier ItemGroup.h.

Référencé par Arcane::mesh::ItemFamily::prepareForDump(), et Arcane::MeshUtils::writeMeshConnectivity().

◆ isOwn()

bool Arcane::ItemGroup::isOwn ( ) const

Retourne si le groupe contient uniquement des éléments propres au sous-domaine.

Définition à la ligne 156 du fichier ItemGroup.cc.

Références m_impl, et null().

Référencé par Arcane::ArcaneCasePartitioner::_computeGroups(), et own().

◆ itemFamily()

◆ itemKind()

eItemKind Arcane::ItemGroup::itemKind ( ) const
inline

Genre du groupe. Il s'agit du genre de ses éléments.

Définition à la ligne 109 du fichier ItemGroup.h.

Référencé par Arcane::mesh::DynamicMesh::defineParentForBuild(), Arcane::VariableArrayT< T >::initialize(), et Arcane::GeometryServiceBase::update().

◆ levelCellGroup()

CellGroup Arcane::ItemGroup::levelCellGroup ( const Integer &  level) const

Groupe des mailles de niveau l des éléments de ce groupe.

Définition à la ligne 327 du fichier ItemGroup.cc.

Références ItemGroup(), m_impl, et null().

Référencé par Arcane::mesh::DynamicMesh::allLevelCells().

◆ localIdToIndex()

SharedPtrT< GroupIndexTable > Arcane::ItemGroup::localIdToIndex ( ) const
inline

◆ mesh()

IMesh * Arcane::ItemGroup::mesh ( ) const
inline

Maillage auquel appartient ce groupe (0 pour le group nul)

Définition à la ligne 126 du fichier ItemGroup.h.

Référencé par Arcane::buildFaceGroupSurface(), Arcane::mesh::DynamicMesh::defineParentForBuild(), Arcane::VariableMng::detachMeshVariables(), et Arcane::Hdf5VariableInfoBase::writeGroup().

◆ name()

const String & Arcane::ItemGroup::name ( ) const
inline

Nom du groupe.

Définition à la ligne 76 du fichier ItemGroup.h.

Référencé par Arcane::ArcaneCasePartitioner::_computeGroups(), Arcane::mesh::TiedInterfaceBuilder::_computeMasterInterface(), Arcane::ArcanePostProcessingModule::_readConfig(), Arcane::mesh::TiedInterfaceBuilder::_removeMasterFacesWithNoSlave(), Arcane::GeometryServiceBase::addItemGroupProperty(), Arcane::GeometryServiceBase::addItemGroupProperty(), Arcane::GeometryServiceBase::addItemGroupProperty(), Arcane::VariableSynchronizer::changeLocalIds(), Arcane::mesh::ItemFamily::compactVariablesAndGroups(), Arcane::mesh::TiedInterfaceBuilder::computeInterfaceConnections(), Arcane::Materials::MeshEnvironment::computeItemListForMaterials(), Arcane::mesh::ItemFamily::createGroup(), Arcane::OwnItemGroupComputeFunctor::executeFunctor(), Arcane::GhostItemGroupComputeFunctor::executeFunctor(), Arcane::InterfaceItemGroupComputeFunctor::executeFunctor(), Arcane::ItemItemGroupComputeFunctor< ItemType >::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(), Arcane::mesh::ItemFamily::findAdjencyItems(), Arcane::mesh::ItemFamily::findGroup(), Arcane::AnyItem::FamilyInternal::firstLocalId(), Arcane::Materials::AllEnvData::forceRecompute(), Arcane::AnyItem::FamilyInternal::groupIndex(), Arcane::VariableArrayT< T >::initialize(), Arcane::AnyItem::FamilyInternal::isPartial(), Arcane::AnyItem::FamilyInternal::operator<<(), Arcane::AnyItem::UserGroup::operator<<(), Arcane::mesh::ItemFamily::prepareForDump(), Arcane::ItemGroupsSynchronize::synchronize(), Arcane::ParallelCorefinementService::update(), Arcane::ManualHdf5DataWriter::write(), Arcane::MeshUtils::writeMeshConnectivity(), et Arcane::LimaMeshWriter::writeMeshToFile().

◆ nodeGroup()

NodeGroup Arcane::ItemGroup::nodeGroup ( ) const

Groupe des noeuds des éléments de ce groupe.

Définition à la ligne 228 du fichier ItemGroup.cc.

Références ItemGroup(), m_impl, et null().

◆ null()

◆ outerActiveFaceGroup()

FaceGroup Arcane::ItemGroup::outerActiveFaceGroup ( ) const

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 si elle n'est connectée qu'à une maille de ce groupe et est active.

Définition à la ligne 389 du fichier ItemGroup.cc.

Références ItemGroup(), m_impl, et null().

Référencé par Arcane::mesh::DynamicMesh::outerActiveFaces().

◆ outerFaceGroup()

FaceGroup Arcane::ItemGroup::outerFaceGroup ( ) const

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 288 du fichier ItemGroup.cc.

Références ItemGroup(), m_impl, et null().

Référencé par Arcane::mesh::DynamicMesh::outerFaces().

◆ own()

ItemGroup Arcane::ItemGroup::own ( ) const

Groupe équivalent à celui-ci mais contenant uniquement les éléments propres au sous-domaine.

Si ce groupe est déjà un groupe ne contenant que des éléments propres au sous-domaine, c'est lui même qui est retourné:

group.own()==group; // Pour un groupe local
group.own().own()==group.own(); // Invariant

Définition à la ligne 188 du fichier ItemGroup.cc.

Références isOwn(), ItemGroup(), m_impl, et null().

Référencé par Arcane::Hdf5VariableInfoBase::writeGroup(), et Arcane::Hdf5ItemVariableInfo< VariableType, DataType >::writeVariable().

◆ ownActiveCellGroup()

CellGroup Arcane::ItemGroup::ownActiveCellGroup ( ) const

Groupe des mailles propres actives des éléments de ce groupe.

Définition à la ligne 315 du fichier ItemGroup.cc.

Références ItemGroup(), m_impl, et null().

Référencé par Arcane::mesh::DynamicMesh::ownActiveCells().

◆ ownActiveFaceGroup()

FaceGroup Arcane::ItemGroup::ownActiveFaceGroup ( ) const

Groupe des faces actives propres au domaine des éléments de ce groupe.

Ce groupe n'existe que pour un groupe de maille (itemKind()==IK_Cell).

Définition à la ligne 362 du fichier ItemGroup.cc.

Références ItemGroup(), m_impl, et null().

Référencé par Arcane::mesh::DynamicMesh::ownActiveFaces().

◆ ownLevelCellGroup()

CellGroup Arcane::ItemGroup::ownLevelCellGroup ( const Integer &  level) const

Groupe des mailles propres de niveau l des éléments de ce groupe.

Définition à la ligne 339 du fichier ItemGroup.cc.

Références ItemGroup(), m_impl, et null().

Référencé par Arcane::mesh::DynamicMesh::ownLevelCells().

◆ removeItems()

void Arcane::ItemGroup::removeItems ( Int32ConstArrayView  items_local_id,
bool  check_if_present = true 
)

Supprime des entités.

Supprime les entités de numéros locaux items_local_id.

La paramètre check_if_present indique s'il vaut vérifier si les entités à supprimer ne sont déjà présentes dans le groupe, auquel cas elles ne sont pas supprimées. Si l'appelant est certain que les entités à supprimer sont dans le groupe, il peut positionner le paramètre check_if_present à false ce qui accélère la suppression.

Définition à la ligne 466 du fichier ItemGroup.cc.

Références isAllItems(), m_impl, et null().

Référencé par Arcane::mesh::TiedInterfaceBuilder::_removeMasterFacesWithNoSlave(), et Arcane::ItemGroupsSynchronize::synchronize().

◆ setItems() [1/2]

void Arcane::ItemGroup::setItems ( Int32ConstArrayView  items_local_id)

Positionne les entités du groupe.

Positionne les entités dont les numéros locaux sont donnés par items_local_id. L'appelant garanti que chaque entité n'est présente qu'une fois dans ce tableau

Définition à la ligne 487 du fichier ItemGroup.cc.

Références m_impl, et null().

Référencé par Arcane::mesh::ItemFamily::createGroup(), et Arcane::ItemGroupsSynchronize::synchronize().

◆ setItems() [2/2]

void Arcane::ItemGroup::setItems ( Int32ConstArrayView  items_local_id,
bool  do_sort 
)

Positionne les entités du groupe.

Si do_sort est vrai, les entités sont triées par uniqueId croissant.

Positionne les entités dont les numéros locaux sont donnés par items_local_id. L'appelant garanti que chaque entité n'est présente qu'une fois dans ce tableau Si do_sort est vrai, les entités sont triées par uniqueId croissant avant d'être ajoutées au groupe.

Définition à la ligne 507 du fichier ItemGroup.cc.

Références m_impl, et null().

◆ setLocalToSubDomain()

void Arcane::ItemGroup::setLocalToSubDomain ( bool  v)
inline

Positionne le booléen indiquant si le groupe est local au sous-domaine.

Par défaut lors de sa création, un groupe est commun à tous les sous-domaines, ce qui signifie que chaque sous-domaine doit posséder une instance de ce groupe, même si cette instance est vide.

Un groupe local au sous-domaine n'est pas transféré lors d'un rééquilibrage.

Définition à la ligne 238 du fichier ItemGroup.h.

◆ setOwn()

void Arcane::ItemGroup::setOwn ( bool  v)

Positionne la propriété de groupe local ou non.

Définition à la ligne 168 du fichier ItemGroup.cc.

Références m_impl, et null().

◆ size()

Integer Arcane::ItemGroup::size ( ) const
inline

Nombre d'éléments du groupe.

Définition à la ligne 88 du fichier ItemGroup.h.

Référencé par Arcane::mesh::MeshRefinement::_coarsenItems(), Arcane::Materials::AllEnvData::_computeInfosForEnvCells(), Arcane::mesh::TiedInterfaceBuilder::_computeMasterInterface(), Arcane::mesh::MeshRefinement::_makeFlagParallelConsistent(), Arcane::mesh::DynamicMesh::_multipleExchangeItems(), Arcane::mesh::MeshRefinement::_refineItems(), Arcane::ItemFamilyVariableSerializer::_serializePartialVariable(), Arcane::ExternalPartitionConstraint::addLinkedCells(), Arcane::buildFaceGroupSurface(), Arcane::DynamicMeshChecker::checkValidReplication(), Arcane::BasicRayMeshIntersection::compute(), Arcane::BasicRayMeshIntersection::compute(), Arcane::Materials::MeshEnvironment::computeItemListForMaterials(), Arcane::ItemGroupPartialVariableObserver::executeExtend(), Arcane::OwnItemGroupComputeFunctor::executeFunctor(), Arcane::GhostItemGroupComputeFunctor::executeFunctor(), Arcane::InterfaceItemGroupComputeFunctor::executeFunctor(), Arcane::ItemItemGroupComputeFunctor< ItemType >::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(), Arcane::ItemGroupPartialVariableObserver::executeReduce(), Arcane::Materials::AllEnvData::forceRecompute(), MeshMaterialSimdUnitTest::initializeTest(), Arcane::Materials::MeshEnvironment::isMonoMaterial(), Arcane::AnyItem::FamilyInternal::operator<<(), Arcane::Variable::resizeFromGroup(), Arcane::ItemGroupsSynchronize::synchronize(), et Arcane::ParallelCorefinementService::update().

◆ synchronizer()

IVariableSynchronizer * Arcane::ItemGroup::synchronizer ( ) const

Synchronizer du groupe.

Définition à la ligne 617 du fichier ItemGroup.cc.

Références m_impl.

Référencé par Arcane::mesh::ItemFamily::compactVariablesAndGroups().

◆ timestamp()

Int64 Arcane::ItemGroup::timestamp ( ) const
inline

Retourne le temps du groupe. Ce temps est incrémenté après chaque modification.

Définition à la ligne 286 du fichier ItemGroup.h.

◆ view()

ItemVectorView Arcane::ItemGroup::view ( ) const

Documentation des fonctions amies et associées

◆ SimdItemEnumeratorContainerTraits

Définition à la ligne 333 du fichier ItemGroup.h.

Documentation des données membres

◆ m_impl


La documentation de cette classe a été générée à partir des fichiers suivants :