Groupe d'entités de maillage. Plus de détails...
#include <arcane/core/ItemGroup.h>
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. | |
ItemGroup & | operator= (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 String & | name () const |
Nom du groupe. | |
const String & | fullName () 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. | |
ItemGroupImpl * | internal () const |
Retourne l'implémentation du groupe. | |
IItemFamily * | itemFamily () const |
Famille d'entité à laquelle appartient ce groupe (0 pour le group nul) | |
IMesh * | mesh () 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< GroupIndexTable > | localIdToIndex () const |
Table des local ids vers une position pour toutes les entités du groupe. | |
IVariableSynchronizer * | synchronizer () 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< ItemGroupImpl > | m_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 |
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:
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:
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:
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.
Type de l'intervalle d'itération (à supprimer)
Définition à la ligne 65 du fichier ItemGroup.h.
Arcane::ItemGroup::ItemGroup | ( | ) |
Construit un groupe nul.
Définition à la ligne 147 du fichier ItemGroup.cc.
Référencé par activeCellGroup(), activeFaceGroup(), cellGroup(), createSubGroup(), edgeGroup(), faceGroup(), findSubGroup(), innerActiveFaceGroup(), innerFaceGroup(), levelCellGroup(), nodeGroup(), outerActiveFaceGroup(), outerFaceGroup(), own(), ownActiveCellGroup(), ownActiveFaceGroup(), et ownLevelCellGroup().
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.
|
inline |
Construit une référence au groupe from.
Définition à la ligne 59 du fichier ItemGroup.h.
|
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().
ItemGroupImplInternal * Arcane::ItemGroup::_internalApi | ( | ) | const |
API interne à Arcane.
Définition à la ligne 644 du fichier ItemGroup.cc.
Références m_impl.
Référencé par Arcane::Materials::AllEnvData::_computeInfosForEnvCells(), Arcane::Materials::MeshEnvironment::build(), et Arcane::Materials::MeshMaterial::build().
ItemVectorView Arcane::ItemGroup::_paddedView | ( | ) | const |
Vue sur les entités du groupe avec padding pour la vectorisation.
Définition à la ligne 590 du fichier ItemGroup.cc.
Référencé par Arcane::arcaneParallelForeach(), Arcane::arcaneParallelForeach(), Arcane::arcaneParallelForeach(), Arcane::arcaneParallelForeach(), Arcane::Parallel::Foreach(), Arcane::Parallel::Foreach(), Arcane::Parallel::Foreach(), et Arcane::Parallel::Foreach().
|
private |
Enumérateur sur les entités du groupe pour la vectorisation.
Définition à la ligne 553 du fichier ItemGroup.cc.
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.
|
protected |
Définition à la ligne 565 du fichier ItemGroup.cc.
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().
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().
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().
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érencé par Arcane::BarycentricGeomShapeComputer::computeAll().
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().
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.
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().
void Arcane::ItemGroup::clear | ( | ) |
Supprime les entités du groupe.
Définition à la ligne 427 du fichier ItemGroup.cc.
Références m_impl.
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 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().
|
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
).
true | si le groupe est vide, |
false | sinon. |
Définition à la ligne 102 du fichier ItemGroup.h.
ItemEnumerator Arcane::ItemGroup::enumerator | ( | ) | const |
Enumérateur sur les entités du groupe.
Définition à la ligne 541 du fichier ItemGroup.cc.
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().
Accès à un sous-groupe.
Définition à la ligne 416 du fichier ItemGroup.cc.
Références ItemGroup(), m_impl, et null().
|
inline |
Nom du groupe.
Définition à la ligne 82 du fichier ItemGroup.h.
Référencé par Arcane::mesh::CommonItemGroupFilterer::applyFiltering().
ItemGroup Arcane::ItemGroup::ghost | ( | ) | const |
Définition à la ligne 201 du fichier ItemGroup.cc.
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().
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().
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().
ItemGroup Arcane::ItemGroup::interface | ( | ) | const |
Définition à la ligne 215 du fichier ItemGroup.cc.
|
inline |
Retourne l'implémentation du groupe.
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().
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().
bool Arcane::ItemGroup::isAllItems | ( | ) | const |
Indique si le groupe est celui de toutes les entités.
Définition à la ligne 608 du fichier ItemGroup.cc.
Références m_impl.
Référencé par Arcane::ArcaneCasePartitioner::_computeGroups(), addItems(), Arcane::mesh::ItemFamily::destroyGroups(), Arcane::InnerFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OuterFaceItemGroupComputeFunctor::executeFunctor(), Arcane::ActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OwnActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::InnerActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OuterActiveFaceItemGroupComputeFunctor::executeFunctor(), removeItems(), Arcane::Variable::resizeFromGroup(), et Arcane::LimaMeshWriter::writeMeshToFile().
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.
|
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().
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érencé par Arcane::ArcaneCasePartitioner::_computeGroups(), et own().
|
inline |
Famille d'entité à laquelle appartient ce groupe (0 pour le group nul)
Définition à la ligne 123 du fichier ItemGroup.h.
Référencé par Arcane::CellDirectionMng::_internalComputeInnerAndOuterItems(), Arcane::ItemGroupDynamicMeshObserver::executeExtend(), Arcane::InnerFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OuterFaceItemGroupComputeFunctor::executeFunctor(), Arcane::ActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OwnActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::InnerActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::OuterActiveFaceItemGroupComputeFunctor::executeFunctor(), Arcane::ItemGroupDynamicMeshObserver::executeReduce(), Arcane::VariableArrayT< T >::initialize(), et Arcane::ItemPairGroup::ItemPairGroup().
|
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().
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().
|
inline |
Table des local ids vers une position pour toutes les entités du groupe.
Définition à la ligne 292 du fichier ItemGroup.h.
Référencé par Arcane::ItemGroupPartialVariableObserver::executeCompact(), Arcane::ItemGroupPartialVariableObserver::executeExtend(), Arcane::ItemGroupPartialVariableObserver::executeInvalidate(), et Arcane::ItemGroupPartialVariableObserver::executeReduce().
|
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().
|
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 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().
|
inline |
true is le groupe est le groupe nul
Définition à la ligne 70 du fichier ItemGroup.h.
Référencé par Arcane::ArcanePostProcessingModule::_readConfig(), Arcane::mesh::ItemFamily::_readGroups(), _simdEnumerator(), activeCellGroup(), activeFaceGroup(), addItems(), applyOperation(), cellGroup(), Arcane::mesh::ItemFamily::createGroup(), Arcane::mesh::ItemFamily::createGroup(), createSubGroup(), Arcane::VariableMng::detachMeshVariables(), edgeGroup(), enumerator(), faceGroup(), Arcane::mesh::DynamicMesh::findGroup(), Arcane::mesh::ItemFamily::findGroup(), findSubGroup(), Arcane::GetVariablesValuesParallelOperation::getVariableValues(), Arcane::GetVariablesValuesParallelOperation::getVariableValues(), innerActiveFaceGroup(), innerFaceGroup(), isOwn(), levelCellGroup(), nodeGroup(), outerActiveFaceGroup(), outerFaceGroup(), own(), ownActiveCellGroup(), ownActiveFaceGroup(), ownLevelCellGroup(), Arcane::CartesianMeshImpl::recreateFromDump(), Arcane::Materials::MeshMaterialMng::recreateFromDump(), removeItems(), Arcane::Variable::resizeFromGroup(), setItems(), setItems(), setOwn(), Arcane::Variable::setUsed(), et Arcane::ManualHdf5DataWriter::write().
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().
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().
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é:
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().
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().
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().
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().
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().
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érencé par Arcane::mesh::ItemFamily::createGroup(), et Arcane::ItemGroupsSynchronize::synchronize().
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.
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.
Positionne la propriété de groupe local ou non.
Définition à la ligne 168 du fichier ItemGroup.cc.
|
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().
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().
|
inline |
Retourne le temps du groupe. Ce temps est incrémenté après chaque modification.
Définition à la ligne 286 du fichier ItemGroup.h.
ItemVectorView Arcane::ItemGroup::view | ( | ) | const |
Vue sur les entités du groupe.
Définition à la ligne 581 du fichier ItemGroup.cc.
Référencé par Arcane::ItemGroupPartialVariableObserver::executeReduce(), Arcane::Materials::AllEnvData::forceRecompute(), et Arcane::mesh::ItemFamily::view().
|
friend |
Définition à la ligne 333 du fichier ItemGroup.h.
|
protected |
Représentation interne du groupe.
Définition à la ligne 340 du fichier ItemGroup.h.
Référencé par _internalApi(), _simdEnumerator(), activeCellGroup(), activeFaceGroup(), addItems(), applyOperation(), cellGroup(), checkIsSorted(), checkValid(), clear(), createSubGroup(), edgeGroup(), enumerator(), faceGroup(), findSubGroup(), hasSynchronizer(), innerActiveFaceGroup(), innerFaceGroup(), isAllItems(), isAutoComputed(), isOwn(), ItemGroup(), levelCellGroup(), nodeGroup(), outerActiveFaceGroup(), outerFaceGroup(), own(), ownActiveCellGroup(), ownActiveFaceGroup(), ownLevelCellGroup(), removeItems(), setItems(), setItems(), setOwn(), et synchronizer().