12#ifndef ARCANE_CORE_ITEM_H
13#define ARCANE_CORE_ITEM_H
18#include "arcane/core/ItemInternal.h"
19#include "arcane/core/ItemLocalId.h"
35#define ARCANE_CHECK_KIND(type) _checkKind(type())
37#define ARCANE_CHECK_KIND(type)
41#define ARCANE_WANT_ITEM_STAT
44#ifdef ARCANE_WANT_ITEM_STAT
45#define ARCANE_ITEM_ADD_STAT(var) ++var
47#define ARCANE_ITEM_ADD_STAT(var)
82class ARCANE_CORE_EXPORT
Item
123 Index() : m_local_id(NULL_ITEM_LOCAL_ID){}
124 explicit Index(Int32
id) : m_local_id(id){}
125 Index(Item item) : m_local_id(item.localId()){}
126 operator ItemLocalId()
const {
return ItemLocalId{m_local_id}; }
128 Int32 localId()
const {
return m_local_id; }
145 Vertex ARCANE_DEPRECATED_REASON(
"Use 'IT_Vertex' instead") = IT_Vertex,
146 Bar2 ARCANE_DEPRECATED_REASON(
"Use 'IT_Line2' instead") = IT_Line2,
147 Tri3 ARCANE_DEPRECATED_REASON(
"Use 'IT_Triangle3' instead") = IT_Triangle3,
148 Quad4 ARCANE_DEPRECATED_REASON(
"Use 'IT_Quad4' instead") = IT_Quad4,
149 Pentagon5 ARCANE_DEPRECATED_REASON(
"Use 'IT_Pentagon5' instead") = IT_Pentagon5,
150 Hexagon6 ARCANE_DEPRECATED_REASON(
"Use 'IT_Hexagon6' instead") = IT_Hexagon6,
151 Tetra ARCANE_DEPRECATED_REASON(
"Use 'IT_Tetraedron4' instead") = IT_Tetraedron4,
152 Pyramid ARCANE_DEPRECATED_REASON(
"Use 'IT_Pyramid5' instead") = IT_Pyramid5,
153 Penta ARCANE_DEPRECATED_REASON(
"Use 'IT_Pentaedron6' instead") = IT_Pentaedron6,
154 Hexa ARCANE_DEPRECATED_REASON(
"Use 'IT_Hexaedron8' instead") = IT_Hexaedron8,
155 Wedge7 ARCANE_DEPRECATED_REASON(
"Use 'IT_Heptaedron10' instead") = IT_Heptaedron10,
156 Wedge8 ARCANE_DEPRECATED_REASON(
"Use 'IT_Octaedron12' instead") = IT_Octaedron12
161 static const Int32 NULL_ELEMENT = NULL_ITEM_ID;
164 ARCCORE_DEPRECATED_2021(
"Use ItemTypeMng::typeName() instead")
171 : m_shared_info(
shared_info), m_local_id(local_id) {}
183 m_shared_info =
ainternal->m_shared_info;
185 ARCANE_ITEM_ADD_STAT(m_nb_created_from_internal);
195 :
Item(local_id,
internals[local_id]->m_shared_info) { ARCANE_ITEM_ADD_STAT(m_nb_created_from_internalptr); }
207 constexpr bool null()
const {
return m_local_id==NULL_ITEM_ID; }
210 constexpr Int32
localId()
const {
return m_local_id; }
219 if (m_local_id!=NULL_ITEM_LOCAL_ID)
220 arcaneCheckAt((Integer)m_local_id,m_shared_info->m_unique_ids.size());
225 return ItemUniqueId(m_shared_info->m_unique_ids.data()[m_local_id]);
229 Int32
owner()
const {
return m_shared_info->_ownerV2(m_local_id); }
232 Int16
type()
const {
return m_shared_info->_typeId(m_local_id); }
244 bool isOwn()
const {
return (_flags() & ItemFlags::II_Own)!=0; }
256 bool isShared()
const {
return (_flags() & ItemFlags::II_Shared)!=0; }
261 inline Node toNode()
const;
263 inline Cell toCell()
const;
265 inline Edge toEdge()
const;
267 inline Face toFace()
const;
271 inline DoF toDoF()
const;
277 Item parent(Int32 i)
const {
return m_shared_info->_parentV2(m_local_id,i); }
280 Item parent()
const {
return m_shared_info->_parentV2(m_local_id,0); }
341 if (m_local_id!=NULL_ITEM_LOCAL_ID)
342 return m_shared_info->m_items_internal[m_local_id];
343 return ItemInternal::nullItem();
381 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
384 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
385 const Item* operator->()
const {
return this; }
400 Int32 m_local_id = NULL_ITEM_LOCAL_ID;
404 void _checkKind(
bool is_valid)
const
409 void _badConversion()
const;
414 void _set(
const Item& rhs)
422 Int32
_flags()
const {
return m_shared_info->_flagsV2(m_local_id); }
424 Integer
_nbNode()
const {
return _connectivity()->_nbNodeV2(m_local_id); }
426 Integer
_nbEdge()
const {
return _connectivity()->_nbEdgeV2(m_local_id); }
428 Integer
_nbFace()
const {
return _connectivity()->_nbFaceV2(m_local_id); }
430 Integer
_nbCell()
const {
return _connectivity()->_nbCellV2(m_local_id); }
432 Int32
_nbHParent()
const {
return _connectivity()->_nbHParentV2(m_local_id); }
434 Int32
_nbHChildren()
const {
return _connectivity()->_nbHChildrenV2(m_local_id); }
436 Integer
_nbParent()
const {
return m_shared_info->nbParent(); }
437 NodeLocalId _nodeId(Int32 index)
const {
return NodeLocalId(_connectivity()->_nodeLocalIdV2(m_local_id,index)); }
438 EdgeLocalId _edgeId(
Int32 index)
const {
return EdgeLocalId(_connectivity()->_edgeLocalIdV2(m_local_id,index)); }
439 FaceLocalId _faceId(
Int32 index)
const {
return FaceLocalId(_connectivity()->_faceLocalIdV2(m_local_id,index)); }
440 CellLocalId _cellId(
Int32 index)
const {
return CellLocalId(_connectivity()->_cellLocalIdV2(m_local_id,index)); }
441 Int32 _hParentId(
Int32 index)
const {
return _connectivity()->_hParentLocalIdV2(m_local_id,index); }
442 Int32 _hChildId(
Int32 index)
const {
return _connectivity()->_hChildLocalIdV2(m_local_id,index); }
443 impl::ItemIndexedListView<DynExtent> _nodeList()
const {
return _connectivity()->nodeList(m_local_id); }
444 impl::ItemIndexedListView<DynExtent> _edgeList()
const {
return _connectivity()->edgeList(m_local_id); }
445 impl::ItemIndexedListView<DynExtent> _faceList()
const {
return _connectivity()->faceList(m_local_id); }
446 impl::ItemIndexedListView<DynExtent> _cellList()
const {
return _connectivity()->cellList(m_local_id); }
447 NodeLocalIdView _nodeIds()
const {
return _connectivity()->nodeLocalIdsView(m_local_id); }
448 EdgeLocalIdView _edgeIds()
const {
return _connectivity()->edgeLocalIdsView(m_local_id); }
449 FaceLocalIdView _faceIds()
const {
return _connectivity()->faceLocalIdsView(m_local_id); }
450 CellLocalIdView _cellIds()
const {
return _connectivity()->cellLocalIdsView(m_local_id); }
452 inline Node _node(
Int32 index)
const;
453 inline Edge _edge(
Int32 index)
const;
454 inline Face _face(
Int32 index)
const;
455 inline Cell _cell(
Int32 index)
const;
457 ItemBase _hParentBase(
Int32 index)
const {
return _connectivity()->hParentBase(m_local_id, index, m_shared_info); }
458 ItemBase _hChildBase(
Int32 index)
const {
return _connectivity()->hChildBase(m_local_id, index, m_shared_info); }
459 ItemBase _toItemBase()
const {
return ItemBase(m_local_id,m_shared_info); }
463 ItemInternalConnectivityList* _connectivity()
const
465 return m_shared_info->m_connectivity;
467 void _setFromInternal(ItemBase* rhs)
469 ARCANE_ITEM_ADD_STAT(m_nb_set_from_internal);
470 m_local_id = rhs->m_local_id;
471 m_shared_info = rhs->m_shared_info;
473 void _setFromItem(
const Item& rhs)
475 m_local_id = rhs.m_local_id;
476 m_shared_info = rhs.m_shared_info;
481 static void dumpStats(ITraceMng* tm);
482 static void resetStats();
486 static std::atomic<int> m_nb_created_from_internal;
487 static std::atomic<int> m_nb_created_from_internalptr;
488 static std::atomic<int> m_nb_set_from_internal;
492 ItemInternal* _internal()
const
494 if (m_local_id!=NULL_ITEM_LOCAL_ID)
496 return ItemInternal::nullItem();
546#include "arcane/ItemVectorView.h"
547#include "arcane/ItemConnectedListView.h"
562class ARCANE_CORE_EXPORT Node
565 using ThatClass = Node;
567 friend class ItemEnumeratorBaseT<ThatClass>;
568 friend class ItemConnectedEnumeratorBaseT<ThatClass>;
569 friend class ItemVectorT<ThatClass>;
570 friend class ItemVectorViewT<ThatClass>;
571 friend class ItemConnectedListViewT<ThatClass>;
572 friend class ItemVectorViewConstIteratorT<ThatClass>;
573 friend class ItemConnectedListViewConstIteratorT<ThatClass>;
574 friend class SimdItemT<ThatClass>;
575 friend class ItemInfoListViewT<ThatClass>;
583 class ARCANE_DEPRECATED_REASON(
"Y2024: Use NodeLocalId instead") Index
587 typedef Item::Index Base;
589 explicit Index(
Int32 id) : Base(id){}
590 Index(Node item) : Base(item){}
591 operator NodeLocalId()
const {
return NodeLocalId{localId()}; }
610 { ARCANE_CHECK_KIND(isNode); }
614 { ARCANE_CHECK_KIND(isNode); }
618 { ARCANE_CHECK_KIND(isNode); }
622 { ARCANE_CHECK_KIND(isNode); }
637 Int32
nbEdge()
const {
return _nbEdge(); }
640 Int32
nbFace()
const {
return _nbFace(); }
643 Int32
nbCell()
const {
return _nbCell(); }
646 inline Edge edge(Int32 i)
const;
649 inline Face face(Int32 i)
const;
652 inline Cell cell(Int32 i)
const;
686 return _toItemBase()._internalActiveCells2(
local_ids);
689 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
692 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
693 const Node* operator->()
const {
return this; }
700_node(
Int32 index)
const
702 return Node(_connectivity()->nodeBase(
m_local_id,index));
740 { ARCANE_CHECK_KIND(isItemWithNodes); }
744 { ARCANE_CHECK_KIND(isItemWithNodes); }
748 { ARCANE_CHECK_KIND(isItemWithNodes); }
753 { ARCANE_CHECK_KIND(isItemWithNodes); }
765 Int32
nbNode()
const {
return _nbNode(); }
779 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
782 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
783 const ItemWithNodes* operator->()
const {
return this; }
817 class ARCANE_DEPRECATED_REASON(
"Y2024: Use EdgeLocalId instead")
Index
823 explicit Index(Int32
id) : Base(
id){}
844 { ARCANE_CHECK_KIND(isEdge); }
848 { ARCANE_CHECK_KIND(isEdge); }
852 { ARCANE_CHECK_KIND(isEdge); }
857 { ARCANE_CHECK_KIND(isEdge); }
875 Int32
nbFace()
const {
return _nbFace(); }
878 Int32
nbCell()
const {
return _nbCell(); }
881 inline Cell cell(Int32 i)
const;
893 inline Face face(Int32 i)
const;
904 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
907 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
908 const Edge* operator->()
const {
return this; }
915_edge(
Int32 index)
const
917 return Edge(_connectivity()->edgeBase(
m_local_id,index));
951 class ARCANE_DEPRECATED_REASON(
"Y2024: Use FaceLocalId instead")
Index
957 explicit Index(Int32
id) : Base(
id){}
978 { ARCANE_CHECK_KIND(isFace); }
982 { ARCANE_CHECK_KIND(isFace); }
986 { ARCANE_CHECK_KIND(isFace); }
991 { ARCANE_CHECK_KIND(isFace); }
1009 inline Cell cell(Int32 i)
const;
1031 ARCANE_DEPRECATED_118
bool isBoundary()
const {
return isSubDomainBoundary(); }
1036 return isSubDomainBoundary() && (_flags() & ItemFlags::II_HasBackCell);
1046 return isSubDomainBoundaryOutside();
1050 inline Cell boundaryCell()
const;
1053 inline Cell backCell()
const;
1059 inline Cell frontCell()
const;
1069 inline Cell oppositeCell(
Cell cell)
const;
1078 ARCANE_ASSERT((backCellId()==
cell_id || frontCellId()==
cell_id),(
"cell is not connected to the face"));
1079 return (backCellId()==
cell_id) ? frontCellId() : backCellId();
1099 bool isTiedFace()
const {
return isSlaveFace() || isMasterFace(); }
1109 if (_toItemBase().isMasterFace())
1131 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
1134 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
1135 const Face* operator->()
const {
return this; }
1142_face(
Int32 index)
const
1144 return Face(_connectivity()->faceBase(
m_local_id,index));
1197 class ARCANE_DEPRECATED_REASON(
"Y2024: Use CellLocalId instead")
Index
1203 explicit Index(Int32
id) : Base(
id){}
1224 { ARCANE_CHECK_KIND(isCell); }
1228 { ARCANE_CHECK_KIND(isCell); }
1232 { ARCANE_CHECK_KIND(isCell); }
1237 { ARCANE_CHECK_KIND(isCell); }
1306 bool isActive()
const {
return _toItemBase().isActive(); }
1308 bool isSubactive()
const {
return _toItemBase().isSubactive(); }
1333 if (this->_nbHParent() == 0)
1336 return (this->_hParentBase(0).level() + 1);
1346 return _toItemBase().whichChildAmI(
iitem->localId());
1356 return _toItemBase().whichChildAmI(local_id);
1359 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
1362 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
1363 const Cell* operator->()
const {
return this; }
1370_cell(
Int32 index)
const
1372 return Cell(_connectivity()->cellBase(
m_local_id,index));
1469 const
Particle* operator->()
const {
return this; }
1517 { ARCANE_CHECK_KIND(
isDoF); }
1521 { ARCANE_CHECK_KIND(
isDoF); }
1525 { ARCANE_CHECK_KIND(
isDoF); }
1530 { ARCANE_CHECK_KIND(
isDoF); }
1543 const
DoF* operator->()
const {
return this; }
1635 ARCANE_CHECK_KIND(
isNode);
1642 ARCANE_CHECK_KIND(
isEdge);
1649 ARCANE_CHECK_KIND(
isFace);
1656 ARCANE_CHECK_KIND(
isCell);
1670 ARCANE_CHECK_KIND(
isDoF);
1678ItemLocalId(
Item item)
1679: m_local_id(item.localId())
1683template<
typename ItemType>
inline ItemLocalIdT<ItemType>::
1684ItemLocalIdT(ItemType item)
1685: ItemLocalId(item.localId())
1695 return Item(local_id.localId(), m_item_shared_info);
1704 return Item(local_id, m_item_shared_info);
1713 return ItemType(local_id.localId(), m_item_shared_info);
1722 return ItemType(local_id, m_item_shared_info);
1733#include "arcane/ItemCompatibility.h"
Déclarations de types sur les entités.
Tableau d'items de types quelconques.
Cell topHParent() const
parent de niveau 0 pour l'AMR
Int32 nbEdge() const
Nombre d'arêtes de la maille.
Cell(const Item &aitem)
Construit une référence à l'entité aitem.
FaceConnectedListViewType faces() const
Liste des faces de la maille.
Int32 nbHChildren() const
Nombre d'enfants pour l'AMR.
Cell(Int32 local_id, ItemSharedInfo *shared_info)
Index d'une Cell dans une variable.
Face face(Int32 i) const
i-ème face de la maille
FaceLocalIdView faceIds() const
Liste des faces de la maille.
Cell(ItemInternal *ainternal)
Construit une référence à l'entité internal.
Int32 nbFace() const
Nombre de faces de la maille.
Cell & operator=(ItemInternal *ainternal)
Opérateur de copie.
Cell(const ItemInternalPtr *internals, Int32 local_id)
Construit une référence à l'entité internal.
CellLocalId itemLocalId() const
Identifiant local de l'entité dans le sous-domaine du processeur.
EdgeLocalIdView edgeIds() const
Liste des arêtes de la maille.
EdgeLocalId edgeId(Int32 i) const
i-ème arête de la maille
Int32 whichChildAmI(const ItemInternal *iitem) const
Cell hChild(Int32 i) const
i-ème enfant AMR
bool hasHChildren() const
Cell(const ItemBase &abase)
Construit une référence à l'entité abase.
Edge edge(Int32 i) const
i-ème arête de la maille
Cell()=default
Constructeur d'une maille nulle.
Int32 whichChildAmI(CellLocalId local_id) const
FaceLocalId faceId(Int32 i) const
i-ème face de la maille
EdgeConnectedListViewType edges() const
Liste des arêtes de la maille.
Int32 nbHParent() const
Nombre de parent pour l'AMR.
CellLocalId LocalIdType
Type du localId()
DoF(const ItemInternalPtr *internals, Int32 local_id)
Construit une référence à l'entité internal.
DoF()=default
Constructeur d'une maille non connectée.
DoF(const ItemBase &abase)
Construit une référence à l'entité abase.
DoF(const Item &aitem)
Construit une référence à l'entité abase.
DoFLocalId itemLocalId() const
Identifiant local de l'entité dans le sous-domaine du processeur.
DoF & operator=(ItemInternal *ainternal)
Opérateur de copie.
DoF(ItemInternal *ainternal)
Construit une référence à l'entité internal.
DoF(Int32 local_id, ItemSharedInfo *shared_info)
Constructeur réservé pour les énumérateurs.
FaceConnectedListViewType faces() const
Liste des faces de l'arête.
CellConnectedListViewType cells() const
Liste des mailles de l'arête.
Cell cell(Int32 i) const
i-ème maille de l'arête
Edge(const ItemBase &abase)
Construit une référence à l'entité abase.
Face face(Int32 i) const
i-ème face de l'arête
Edge(const ItemInternalPtr *internals, Int32 local_id)
Construit une référence à l'entité internal.
FaceLocalIdView faceIds() const
Liste des faces de l'arête.
Edge & operator=(ItemInternal *ainternal)
Opérateur de copie.
Int32 nbFace() const
Nombre de faces connectées à l'arête.
CellLocalIdView cellIds() const
Liste des mailles de l'arête.
Edge(const Item &aitem)
Construit une référence à l'entité aitem.
Edge()=default
Créé une arête nulle.
FaceLocalId faceId(Int32 i) const
i-ème face de l'arête
Edge(ItemInternal *ainternal)
Construit une référence à l'entité internal.
EdgeLocalId LocalIdType
Type du localId()
Edge(Int32 local_id, ItemSharedInfo *shared_info)
Index d'une Edge dans une variable.
Int32 nbNode() const
Nombre de sommets de l'arête.
CellLocalId cellId(Int32 i) const
i-ème maille de l'arête
Int32 nbCell() const
Nombre de mailles connectées à l'arête.
EdgeLocalId itemLocalId() const
Identifiant local de l'entité dans le sous-domaine du processeur.
Face()=default
Création d'une face non connecté au maillage.
bool isMasterFace() const
true s'il s'agit de la face maître d'une interface
FaceLocalId LocalIdType
Type du localId()
CellLocalId frontCellId() const
Maille devant la face (maille nulle si aucune)
Face(const ItemBase &abase)
Construit une référence à l'entité abase.
Cell frontCell() const
Maille devant la face (maille nulle si aucune)
CellLocalId cellId(Int32 i) const
i-ème maille de la face
EdgeLocalIdView edgeIds() const
Liste des arêtes de la face.
Cell cell(Int32 i) const
i-ème maille de la face
Int32 nbCell() const
Nombre de mailles de la face (1 ou 2)
ARCANE_DEPRECATED_118 bool isBoundary() const
FaceConnectedListViewType slaveFaces() const
Liste des faces esclaves associées à cette face maître.
ARCANE_DEPRECATED_118 bool isBoundaryOutside() const
Indique si la face est au bord t orientée vers l'extérieur.
EdgeConnectedListViewType edges() const
Liste des arêtes de la face.
bool isSubDomainBoundary() const
Indique si la face est au bord du sous-domaine (i.e nbCell()==1)
Face(const Item &aitem)
Construit une référence à l'entité aitem.
FaceLocalId itemLocalId() const
Identifiant local de l'entité dans le sous-domaine du processeur.
EdgeLocalId edgeId(Int32 i) const
i-ème arête de la face
CellConnectedListViewType cells() const
Liste des mailles de la face.
Face masterFace() const
Face maître associée à cette face.
bool isSlaveFace() const
true s'il s'agit d'une face esclave d'une interface
Edge edge(Int32 i) const
i-ème arête de la face
CellLocalId backCellId() const
Maille derrière la face (maille nulle si aucune)
Face(const ItemInternalPtr *internals, Int32 local_id)
Construit une référence à l'entité internal.
bool isSubDomainBoundaryOutside() const
Indique si la face est au bord t orientée vers l'extérieur.
Face(ItemInternal *ainternal)
Construit une référence à l'entité internal.
Cell boundaryCell() const
Maille associée à cette face frontière (maille nulle si aucune)
Int32 nbEdge() const
Nombre d'arêtes de la face.
bool isTiedFace() const
true s'il s'agit d'une face esclave ou maître d'une interface
Face(Int32 local_id, ItemSharedInfo *shared_info)
Index d'une Face dans une variable.
CellLocalIdView cellIds() const
Liste des mailles de la face.
Face & operator=(ItemInternal *ainternal)
Opérateur de copie.
Cell backCell() const
Maille derrière la face (maille nulle si aucune)
Cell oppositeCell(Cell cell) const
Maille opposée de cette face à la maille cell.
CellLocalId oppositeCellId(CellLocalId cell_id) const
Maille opposée de cette face à la maille cell.
Interface d'une famille d'entités.
Classe de base pour les entités du maillage.
Méthodes pour conversions entre différentes classes de gestion des entités.
Classe de base typeé des énumérateurs sur une liste d'entité connectées.
Itérateur pour la classe ItemConnectedListView.
Vue sur une liste d'entités connectées à une autre.
Vue sur une liste d'entités connectées à une autre entité.
Classe de base des vues spécialisées des informations sur les entités.
ItemType operator[](ItemLocalId local_id) const
Entité associée du numéro local local_id.
Vue sur une liste pour obtenir des informations sur les entités.
Item operator[](ItemLocalId local_id) const
Entité associée du numéro local local_id.
Structure interne d'une entité de maillage.
Index d'un Item dans une variable.
Enumérateur sur un tableau de tableaux d'entités du maillage.
Structure interne partagée d'une entité de maillage.
ConstArrayView< ItemInternal * > m_items_internal
ItemInternal des entités.
Type d'une entité (Item).
Infos sur un type d'entité du maillage.
Identifiant unique d'une entité.
Itérateur pour la classe ItemVectorView.
Vue sur un tableau typé d'entités.
Vue sur un vecteur d'entités.
Elément de maillage s'appuyant sur des noeuds (Edge,Face,Cell).
ItemWithNodes(const ItemInternalPtr *internals, Int32 local_id)
Construit une référence à l'entité internal.
NodeLocalId nodeId(Int32 index) const
i-ème noeud de l'entité.
ItemWithNodes(const ItemBase &abase)
Construit une référence à l'entité abase.
Node node(Int32 i) const
i-ème noeud de l'entité
ItemWithNodes(Int32 local_id, ItemSharedInfo *shared_info)
Constructeur réservé pour les énumérateurs.
ItemWithNodes(const Item &aitem)
Construit une référence à l'entité aitem.
NodeConnectedListViewType nodes() const
Liste des noeuds de l'entité
ItemWithNodes(ItemInternal *ainternal)
Construit une référence à l'entité internal.
ItemWithNodes()=default
Création d'une entité non connectée au maillage.
Int32 nbNode() const
Nombre de noeuds de l'entité
NodeLocalIdView nodeIds() const
Liste des noeuds de l'entité
ItemWithNodes & operator=(ItemInternal *ainternal)
Opérateur de copie.
Index d'un Item dans une variable.
Classe de base d'un élément de maillage.
Int32 nbParent() const
Nombre de parents pour les sous-maillages.
const ItemTypeInfo * typeInfo() const
Infos sur le type de l'entité.
impl::MutableItemBase mutableItemBase() const
Partie interne modifiable de l'entité.
Int32 _nbHParent() const
Nombre de parent pour l'AMR.
bool isItemWithNodes() const
true si l'entité est du genre ItemWithNodes.
Item(ItemInternal *ainternal)
Construit une référence à l'entité internal.
Integer _nbEdge() const
Nombre d'arêtes de l'entité ou nombre d'arêtes connectés à l'entités (pour les noeuds)
Integer _nbNode() const
Nombre de noeuds de l'entité
constexpr Int32 localId() const
Identifiant local de l'entité dans le sous-domaine du processeur.
Edge toEdge() const
Converti l'entité en le genre Edge.
Item(const ItemInternalPtr *internals, Int32 local_id)
Construit une référence à l'entité internal.
Item()=default
Création d'une entité de maillage nulle.
bool isOwn() const
true si l'entité est appartient au sous-domaine
bool isCell() const
true si l'entité est du genre Cell.
Int32 owner() const
Numéro du sous-domaine propriétaire de l'entité
ItemLocalId LocalIdType
Type du localId()
Integer _nbFace() const
Nombre de faces de l'entité ou nombre de faces connectés à l'entités (pour les noeuds et arêtes)
ItemWithNodes toItemWithNodes() const
Converti l'entité en le genre ItemWithNodes.
DoF toDoF() const
Converti l'entité en le genre DoF.
Cell toCell() const
Converti l'entité en le genre Cell.
eItemKind kind() const
Genre de l'entité
IItemFamily * itemFamily() const
Famille dont est issue l'entité
Particle toParticle() const
Converti l'entité en le genre Particle.
ItemUniqueId uniqueId() const
Identifiant unique sur tous les domaines.
constexpr bool null() const
true si l'entité est nul (i.e. non connecté au maillage)
Int32 _flags() const
Flags de l'entité
constexpr ItemLocalId itemLocalId() const
Identifiant local de l'entité dans le sous-domaine du processeur.
bool isFace() const
true si l'entité est du genre Edge.
ARCANE_DEPRECATED_REASON("Y2024: This method is internal to Arcane. use itemBase() or mutableItemBase() instead") ItemInternal *internal() const
Partie interne de l'entité.
Face toFace() const
Converti l'entité en le genre Edge.
bool isNode() const
true si l'entité est du genre Node.
Integer _nbParent() const
Nombre de parent pour les sous-maillages.
Integer _nbCell() const
Nombre de mailles connectées à l'entité (pour les noeuds, arêtes et faces)
bool isEdge() const
true si l'entité est du genre Edge.
Item parent(Int32 i) const
i-ème parent pour les sous-maillages
ItemTypeId itemTypeId() const
Type de l'entité
Item parent() const
premier parent pour les sous-maillages
bool isDoF() const
true is l'entité est du genre DoF
Int32 m_local_id
Numéro local (au sous-domaine) de l'entité.
impl::ItemBase itemBase() const
Partie interne de l'entité.
@ ARCANE_DEPRECATED_REASON
Elément de type nul.
bool isShared() const
Vrai si l'entité est partagé d'autres sous-domaines.
bool isParticle() const
true is l'entité est du genre Particle.
Int32 _nbHChildren() const
Nombre d' enfants pour l'AMR.
Int16 type() const
Type de l'entité
Item & operator=(ItemInternal *ainternal)
Opérateur de copie.
Node toNode() const
Converti l'entité en le genre Node.
Item(const ItemBase &abase)
Construit une référence à l'entité abase.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Méthodes permettant de modifier ItemBase.
Cell cell(Int32 i) const
i-ème maille du noeud
FaceLocalIdView faceIds() const
Liste des faces du noeud.
Node(const ItemInternalPtr *internals, Int32 local_id)
Construit une référence à l'entité internal.
CellConnectedListViewType cells() const
Liste des mailles du noeud.
CellVectorView _internalActiveCells(Int32Array &local_ids) const
Enumére les mailles connectées au noeud.
Node(ItemInternal *ainternal)
Construit une référence à l'entité internal.
EdgeLocalIdView edgeIds() const
Liste des arêtes du noeud.
Node(Int32 local_id, ItemSharedInfo *shared_info)
Index d'un Node dans une variable.
NodeLocalId itemLocalId() const
Identifiant local de l'entité dans le sous-domaine du processeur.
Node(const Item &aitem)
Construit une référence à l'entité abase.
FaceLocalId faceId(Int32 i) const
i-ème face du noeud
FaceConnectedListViewType faces() const
Liste des faces du noeud.
Node & operator=(ItemInternal *ainternal)
Opérateur de copie.
Face face(Int32 i) const
i-ème face du noeud
Int32 nbEdge() const
Nombre d'arêtes connectées au noeud.
Node(const ItemBase &abase)
Construit une référence à l'entité abase.
CellLocalIdView cellIds() const
Liste des mailles du noeud.
Edge edge(Int32 i) const
i-ème arête du noeud
Int32 nbFace() const
Nombre de faces connectées au noeud.
Int32 nbCell() const
Nombre de mailles connectées au noeud.
EdgeConnectedListViewType edges() const
Liste des arêtes du noeud.
CellLocalId cellId(Int32 i) const
i-ème maille du noeud
EdgeLocalId edgeId(Int32 i) const
i-ème arête du noeud
NodeLocalId LocalIdType
Type du localId()
Particle(const ItemBase &abase)
Construit une référence à l'entité abase.
Particle()=default
Constructeur d'une particule nulle.
bool hasCell() const
Vrai si la particule est dans une maille du maillage.
Particle(Int32 local_id, ItemSharedInfo *shared_info)
Constructeur réservé pour les énumérateurs.
ParticleLocalId itemLocalId() const
Identifiant local de l'entité dans le sous-domaine du processeur.
Cell cell() const
Maille à laquelle appartient la particule. Il faut appeler setCell() avant d'appeler cette fonction....
CellLocalId cellId() const
Maille connectée à la particule.
Particle(const ItemInternalPtr *internals, Int32 local_id)
Construit une référence à l'entité internal.
Cell cellOrNull() const
Maille à laquelle appartient la particule ou maille nulle. Retourne cell() si la particule est dans u...
Particle & operator=(ItemInternal *ainternal)
Opérateur de copie.
ParticleLocalId LocalIdType
Type du localId()
Particle(const Item &aitem)
Construit une référence à l'entité aitem.
Particle(ItemInternal *ainternal)
Construit une référence à l'entité internal.
Gère un vecteur d'entité ItemType.
Gère un vecteur d'entité Item.
Chaîne de caractères unicode.
ItemLocalIdListViewT< Node > NodeLocalIdView
Vue sur les localId() d'une liste de noeuds.
ItemLocalIdListViewT< Edge > EdgeLocalIdView
Vue sur les localId() d'une liste d'arêtes.
ItemLocalIdListViewT< Face > FaceLocalIdView
Vue sur les localId() d'une liste de faces.
ItemLocalIdListViewT< Cell > CellLocalIdView
Vue sur les localId() d'une liste de mailles.
@ Unknown
Accessibilité inconnue.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
bool operator<(const Item &item1, const Item &item2)
Compare deux entités.
eItemKind
Genre d'entité de maillage.
@ IK_Particle
Entité de maillage de genre particule.
@ IK_Node
Entité de maillage de genre noeud.
@ IK_Cell
Entité de maillage de genre maille.
@ IK_Unknown
Entité de maillage de genre inconnu ou non initialisé
@ IK_Face
Entité de maillage de genre face.
@ IK_DoF
Entité de maillage de genre degre de liberte.
@ IK_Edge
Entité de maillage de genre arête.
Int32 LocalIdType
Type des entiers utilisés pour stocker les identifiants locaux des entités.