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"
139 std::cerr <<
"Creating group with null pointer is not allowed\n";
140 m_impl = ItemGroupImpl::checkSharedNull();
193 m_impl->checkNeedUpdate();
206 m_impl->checkNeedUpdate();
220 m_impl->checkNeedUpdate();
233 m_impl->checkNeedUpdate();
245 m_impl->checkNeedUpdate();
257 m_impl->checkNeedUpdate();
269 m_impl->checkNeedUpdate();
281 m_impl->checkNeedUpdate();
293 m_impl->checkNeedUpdate();
308 m_impl->checkNeedUpdate();
320 m_impl->checkNeedUpdate();
332 m_impl->checkNeedUpdate();
344 m_impl->checkNeedUpdate();
355 m_impl->checkNeedUpdate();
367 m_impl->checkNeedUpdate();
382 m_impl->checkNeedUpdate();
394 m_impl->checkNeedUpdate();
409 m_impl->checkNeedUpdate();
451 m_impl->_checkNeedUpdateNoPadding();
452 m_impl->addItems(items_local_id,check_if_present);
473 m_impl->_checkNeedUpdateNoPadding();
474 m_impl->removeItems(items_local_id,check_if_present);
492 m_impl->setItems(items_local_id);
512 m_impl->setItems(items_local_id,do_sort);
534 m_impl->checkNeedUpdate();
535 m_impl->applyOperation(operation);
546 m_impl->_checkNeedUpdateNoPadding();
554_simdEnumerator()
const
558 m_impl->_checkNeedUpdateWithPadding();
565ItemVectorView ItemGroup::
566_view(
bool do_padding)
const
569 return ItemVectorView();
570 m_impl->_checkNeedUpdate(do_padding);
572 if (
m_impl->isContigousLocalIds())
575 return ItemVectorView(
m_impl->itemFamily(),ItemIndexArrayView(
m_impl->itemsLocalId(),0,flags));
611 return m_impl->isAllItems();
620 return m_impl->synchronizer();
629 return m_impl->hasComputeFunctor();
638 return m_impl->hasSynchronizer();
647 return m_impl->_internalApi();
656 m_impl->_checkNeedUpdate(
false);
657 return m_impl->checkIsSorted();
663extern ARCANE_CORE_EXPORT
bool
667 obj = mesh->findGroup(name);
671extern ARCANE_CORE_EXPORT
bool
672_caseOptionConvert(
const CaseOptionBase& co,
const String& name,
NodeGroup& obj)
674 IMesh* mesh = co.parentOptionList()->meshHandle().mesh();
679extern ARCANE_CORE_EXPORT
bool
682 IMesh* mesh = co.parentOptionList()->meshHandle().mesh();
687extern ARCANE_CORE_EXPORT
bool
690 IMesh* mesh = co.parentOptionList()->meshHandle().mesh();
695extern ARCANE_CORE_EXPORT
bool
698 IMesh* mesh = co.parentOptionList()->meshHandle().mesh();
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.
virtual ItemGroup findGroup(const String &name) const =0
Recherche un groupe.
Interface d'un opérateur sur des entités rangées par type.
virtual IItemFamily * nodeFamily()=0
Retourne la famille des noeuds.
virtual IItemFamily * edgeFamily()=0
Retourne la famille des arêtes.
virtual IItemFamily * faceFamily()=0
Retourne la famille des faces.
virtual IItemFamily * cellFamily()=0
Retourne la famille des mailles.
Interface d'un service de synchronisation de variable.
Fonctor pour le calcul des éléments d'un groupe.
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.
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.
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.
@ 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.