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 return m_impl->checkIsSorted();
662extern ARCANE_CORE_EXPORT
bool
670extern ARCANE_CORE_EXPORT
bool
671_caseOptionConvert(
const CaseOptionBase& co,
const String& name,
NodeGroup& obj)
673 IMesh* mesh = co.parentOptionList()->meshHandle().mesh();
678extern ARCANE_CORE_EXPORT
bool
679_caseOptionConvert(
const CaseOptionBase& co,
const String& name,
EdgeGroup& obj)
681 IMesh* mesh = co.parentOptionList()->meshHandle().mesh();
682 obj = mesh->edgeFamily()->findGroup(name);
686extern ARCANE_CORE_EXPORT
bool
687_caseOptionConvert(
const CaseOptionBase& co,
const String& name,
FaceGroup& obj)
689 IMesh* mesh = co.parentOptionList()->meshHandle().mesh();
690 obj = mesh->faceFamily()->findGroup(name);
694extern ARCANE_CORE_EXPORT
bool
695_caseOptionConvert(
const CaseOptionBase& co,
const String& name,
CellGroup& obj)
697 IMesh* mesh = co.parentOptionList()->meshHandle().mesh();
698 obj = mesh->cellFamily()->findGroup(name);
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 ItemGroup findGroup(const String &name)=0
Retourne le groupe de nom name ou le groupe nul s'il n'y en a pas.
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é.
Exception lorsqu'un argument est invalide.
Vue constante d'un tableau de type T.
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 -*-