14#include "arcane/core/ItemGroup.h"
16#include "arcane/utils/String.h"
17#include "arcane/utils/ArgumentException.h"
19#include "arcane/core/IItemFamily.h"
20#include "arcane/core/IMesh.h"
21#include "arcane/core/ICaseMng.h"
22#include "arcane/core/CaseOptionBase.h"
23#include "arcane/core/ICaseOptionList.h"
24#include "arcane/core/MeshHandle.h"
25#include "arcane/core/internal/ItemGroupInternal.h"
140 std::cerr <<
"Creating group with null pointer is not allowed\n";
141 m_impl = ItemGroupImpl::checkSharedNull();
194 m_impl->checkNeedUpdate();
207 m_impl->checkNeedUpdate();
221 m_impl->checkNeedUpdate();
234 m_impl->checkNeedUpdate();
246 m_impl->checkNeedUpdate();
258 m_impl->checkNeedUpdate();
270 m_impl->checkNeedUpdate();
282 m_impl->checkNeedUpdate();
294 m_impl->checkNeedUpdate();
309 m_impl->checkNeedUpdate();
321 m_impl->checkNeedUpdate();
333 m_impl->checkNeedUpdate();
345 m_impl->checkNeedUpdate();
356 m_impl->checkNeedUpdate();
368 m_impl->checkNeedUpdate();
383 m_impl->checkNeedUpdate();
395 m_impl->checkNeedUpdate();
410 m_impl->checkNeedUpdate();
452 m_impl->_checkNeedUpdateNoPadding();
453 m_impl->addItems(items_local_id,check_if_present);
474 m_impl->_checkNeedUpdateNoPadding();
475 m_impl->removeItems(items_local_id,check_if_present);
493 m_impl->setItems(items_local_id);
513 m_impl->setItems(items_local_id,do_sort);
535 m_impl->checkNeedUpdate();
536 m_impl->applyOperation(operation);
547 m_impl->_checkNeedUpdateNoPadding();
559 m_impl->_checkNeedUpdateWithPadding();
567_view(
bool do_padding)
const
571 m_impl->_checkNeedUpdate(do_padding);
573 if (
m_impl->isContigousLocalIds())
612 return m_impl->isAllItems();
621 return m_impl->synchronizer();
630 return m_impl->hasComputeFunctor();
639 return m_impl->hasSynchronizer();
648 return m_impl->_internalApi();
657 m_impl->_checkNeedUpdate(
false);
658 return m_impl->checkIsSorted();
667 m_impl->m_p->updateTimestamp();
673extern ARCANE_CORE_EXPORT
bool
677 obj =
mesh->findGroup(name);
681extern ARCANE_CORE_EXPORT
bool
682_caseOptionConvert(
const CaseOptionBase& co,
const String& name,
NodeGroup& obj)
684 IMesh* mesh = co.parentOptionList()->meshHandle().mesh();
685 obj = mesh->nodeFamily()->findGroup(name);
689extern ARCANE_CORE_EXPORT
bool
692 IMesh*
mesh = co.parentOptionList()->meshHandle().mesh();
693 obj =
mesh->edgeFamily()->findGroup(name);
697extern ARCANE_CORE_EXPORT
bool
700 IMesh*
mesh = co.parentOptionList()->meshHandle().mesh();
701 obj =
mesh->faceFamily()->findGroup(name);
705extern ARCANE_CORE_EXPORT
bool
708 IMesh*
mesh = co.parentOptionList()->meshHandle().mesh();
709 obj =
mesh->cellFamily()->findGroup(name);
Exception lorsqu'un argument est invalide.
Classe de base d'une option du jeu de donnée.
ICaseOptionList * parentOptionList() const
OptionList parent.
virtual MeshHandle meshHandle() const =0
Handle du maillage associé
Interface d'une famille d'entités.
Interface d'un opérateur sur des entités rangées par type.
Interface d'un service de synchronisation de variable.
Fonctor pour le calcul des éléments d'un groupe.
API interne à Arcane de ItemGroupImpl.
Implémentation d'un groupe d'entités de maillage.
Groupe d'entités de maillage.
ItemEnumerator enumerator() const
Enumérateur sur les entités du groupe.
bool checkIsSorted() const
Vérifie et retourne si le groupe est trié par uniqueId() croissants.
void clear()
Supprime les entités du groupe.
ItemGroup findSubGroup(const String &suffix) const
Accès à un sous-groupe.
ItemGroup createSubGroup(const String &suffix, IItemFamily *family, ItemGroupComputeFunctor *functor) const
Crée un sous-groupe calculé
IVariableSynchronizer * synchronizer() const
Synchronizer du groupe.
NodeGroup nodeGroup() const
Groupe des noeuds des éléments de ce groupe.
bool isAutoComputed() const
Vrai s'il s'agit d'un groupe calculé automatiquement.
FaceGroup faceGroup() const
Groupe des faces des éléments de ce groupe.
void incrementTimestamp() const
Incrément le temps de dernière modification du groupe.
bool isOwn() const
Retourne si le groupe contient uniquement des éléments propres au sous-domaine.
void removeItems(Int32ConstArrayView items_local_id, bool check_if_present=true)
Supprime des entités.
FaceGroup activeFaceGroup() const
Groupe des faces actives.
FaceGroup innerActiveFaceGroup() const
Groupe des faces internes des éléments de ce groupe.
ItemVectorView view() const
Vue sur les entités du groupe.
void setItems(Int32ConstArrayView items_local_id)
Positionne les entités du groupe.
FaceGroup ownActiveFaceGroup() const
Groupe des faces actives propres au domaine des éléments de ce groupe.
CellGroup cellGroup() const
Groupe des mailles des éléments de ce groupe.
void applyOperation(IItemOperationByBasicType *operation) const
Applique l'opération operation sur les entités du groupe.
AutoRefT< ItemGroupImpl > m_impl
Représentation interne du groupe.
CellGroup levelCellGroup(const Integer &level) const
Groupe des mailles de niveau l des éléments de ce groupe.
void addItems(Int32ConstArrayView items_local_id, bool check_if_present=true)
Ajoute des entités.
FaceGroup innerFaceGroup() const
Groupe des faces internes des éléments de ce groupe.
ItemGroupImplInternal * _internalApi() const
API interne à Arcane.
ItemEnumerator _simdEnumerator() const
Enumérateur sur les entités du groupe pour la vectorisation.
ItemVectorView _paddedView() const
Vue sur les entités du groupe avec padding pour la vectorisation.
bool hasSynchronizer() const
Indique si le groupe possède un synchroniser actif.
bool isAllItems() const
Indique si le groupe est celui de toutes les entités.
ItemVectorView _unpaddedView() const
Vue sur les entités du groupe sans padding pour la vectorisation.
EdgeGroup edgeGroup() const
Groupe des arêtes des éléments de ce groupe.
CellGroup ownActiveCellGroup() const
Groupe des mailles propres actives des éléments de ce groupe.
void checkValid()
Vérification interne de la validité du groupe.
bool null() const
true is le groupe est le groupe nul
void setOwn(bool v)
Positionne la propriété de groupe local ou non.
CellGroup ownLevelCellGroup(const Integer &level) const
Groupe des mailles propres de niveau l des éléments de ce groupe.
ItemGroup()
Construit un groupe nul.
FaceGroup outerActiveFaceGroup() const
Groupe des faces externes actives des éléments de ce groupe.
ItemGroup own() const
Groupe équivalent à celui-ci mais contenant uniquement les éléments propres au sous-domaine.
CellGroup activeCellGroup() const
AMR.
FaceGroup outerFaceGroup() const
Groupe des faces externes des éléments de ce groupe.
Vue sur un tableau d'index (localIds()) d'entités.
@ F_Contigous
Les numéros locaux sont contigüs.
Vue sur un vecteur d'entités.
IMesh * mesh() const
Maillage associé.
Chaîne de caractères unicode.
ItemGroupT< Cell > CellGroup
Groupe de mailles.
ItemGroupT< Face > FaceGroup
Groupe de faces.
ItemGroupT< Edge > EdgeGroup
Groupe d'arêtes.
ItemGroupT< Node > NodeGroup
Groupe de noeuds.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
std::int32_t Int32
Type entier signé sur 32 bits.