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->isContiguousLocalIds())
 
  574    flags |= ItemIndexArrayView::F_Contigous;
 
  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.
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.