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
125 Index() : m_local_id(NULL_ITEM_LOCAL_ID){}
126 explicit Index(Int32
id) : m_local_id(id){}
127 Index(Item item) : m_local_id(item.localId()){}
128 operator ItemLocalId()
const {
return ItemLocalId{m_local_id}; }
130 Int32 localId()
const {
return m_local_id; }
146 Unknown ARCANE_DEPRECATED_REASON(
"Use 'IT_NullType' instead") = IT_NullType,
147 Vertex ARCANE_DEPRECATED_REASON(
"Use 'IT_Vertex' instead") = IT_Vertex,
148 Bar2 ARCANE_DEPRECATED_REASON(
"Use 'IT_Line2' instead") = IT_Line2,
149 Tri3 ARCANE_DEPRECATED_REASON(
"Use 'IT_Triangle3' instead") = IT_Triangle3,
150 Quad4 ARCANE_DEPRECATED_REASON(
"Use 'IT_Quad4' instead") = IT_Quad4,
151 Pentagon5 ARCANE_DEPRECATED_REASON(
"Use 'IT_Pentagon5' instead") = IT_Pentagon5,
152 Hexagon6 ARCANE_DEPRECATED_REASON(
"Use 'IT_Hexagon6' instead") = IT_Hexagon6,
153 Tetra ARCANE_DEPRECATED_REASON(
"Use 'IT_Tetraedron4' instead") = IT_Tetraedron4,
154 Pyramid ARCANE_DEPRECATED_REASON(
"Use 'IT_Pyramid5' instead") = IT_Pyramid5,
155 Penta ARCANE_DEPRECATED_REASON(
"Use 'IT_Pentaedron6' instead") = IT_Pentaedron6,
156 Hexa ARCANE_DEPRECATED_REASON(
"Use 'IT_Hexaedron8' instead") = IT_Hexaedron8,
157 Wedge7 ARCANE_DEPRECATED_REASON(
"Use 'IT_Heptaedron10' instead") = IT_Heptaedron10,
158 Wedge8 ARCANE_DEPRECATED_REASON(
"Use 'IT_Octaedron12' instead") = IT_Octaedron12
163 static const Int32 NULL_ELEMENT = NULL_ITEM_ID;
173 : m_shared_info(
shared_info), m_local_id(local_id) {}
185 m_shared_info =
ainternal->m_shared_info;
187 ARCANE_ITEM_ADD_STAT(m_nb_created_from_internal);
194 : m_shared_info(
abase.m_shared_info)
195 , m_local_id(
abase.m_local_id)
203 ARCANE_ITEM_ADD_STAT(m_nb_created_from_internalptr);
216 constexpr bool null()
const {
return m_local_id==NULL_ITEM_ID; }
219 constexpr Int32
localId()
const {
return m_local_id; }
228 if (m_local_id!=NULL_ITEM_LOCAL_ID)
229 arcaneCheckAt((Integer)m_local_id,m_shared_info->m_unique_ids.size());
234 return ItemUniqueId(m_shared_info->m_unique_ids.data()[m_local_id]);
238 Int32
owner()
const {
return m_shared_info->_ownerV2(m_local_id); }
241 Int16
type()
const {
return m_shared_info->_typeId(m_local_id); }
253 bool isOwn()
const {
return (_flags() & ItemFlags::II_Own)!=0; }
265 bool isShared()
const {
return (_flags() & ItemFlags::II_Shared)!=0; }
270 inline Node toNode()
const;
272 inline Cell toCell()
const;
274 inline Edge toEdge()
const;
276 inline Face toFace()
const;
280 inline DoF toDoF()
const;
286 Item parent(Int32 i)
const {
return m_shared_info->_parentV2(m_local_id,i); }
289 Item parent()
const {
return m_shared_info->_parentV2(m_local_id,0); }
347 ARCANE_DEPRECATED_REASON(
"Y2024: This method is internal to Arcane. use itemBase() or mutableItemBase() instead")
350 if (m_local_id!=NULL_ITEM_LOCAL_ID)
351 return m_shared_info->m_items_internal[m_local_id];
352 return ItemInternal::nullItem();
390 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
393 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
394 const Item* operator->()
const {
return this; }
399 ItemSharedInfo* m_shared_info = ItemSharedInfo::nullItemSharedInfoPointer;
409 Int32 m_local_id = NULL_ITEM_LOCAL_ID;
413 void _checkKind(
bool is_valid)
const
418 void _badConversion()
const;
423 void _set(
const Item& rhs)
431 Int32
_flags()
const {
return m_shared_info->_flagsV2(m_local_id); }
433 Integer
_nbNode()
const {
return _connectivity()->_nbNodeV2(m_local_id); }
435 Integer
_nbEdge()
const {
return _connectivity()->_nbEdgeV2(m_local_id); }
437 Integer
_nbFace()
const {
return _connectivity()->_nbFaceV2(m_local_id); }
439 Integer
_nbCell()
const {
return _connectivity()->_nbCellV2(m_local_id); }
441 Int32
_nbHParent()
const {
return _connectivity()->_nbHParentV2(m_local_id); }
443 Int32
_nbHChildren()
const {
return _connectivity()->_nbHChildrenV2(m_local_id); }
445 Integer
_nbParent()
const {
return m_shared_info->nbParent(); }
446 NodeLocalId _nodeId(Int32 index)
const {
return NodeLocalId(_connectivity()->_nodeLocalIdV2(m_local_id,index)); }
447 EdgeLocalId _edgeId(
Int32 index)
const {
return EdgeLocalId(_connectivity()->_edgeLocalIdV2(m_local_id,index)); }
448 FaceLocalId _faceId(
Int32 index)
const {
return FaceLocalId(_connectivity()->_faceLocalIdV2(m_local_id,index)); }
449 CellLocalId _cellId(
Int32 index)
const {
return CellLocalId(_connectivity()->_cellLocalIdV2(m_local_id,index)); }
450 Int32 _hParentId(
Int32 index)
const {
return _connectivity()->_hParentLocalIdV2(m_local_id,index); }
451 Int32 _hChildId(
Int32 index)
const {
return _connectivity()->_hChildLocalIdV2(m_local_id,index); }
452 impl::ItemIndexedListView<DynExtent> _nodeList()
const {
return _connectivity()->nodeList(m_local_id); }
453 impl::ItemIndexedListView<DynExtent> _edgeList()
const {
return _connectivity()->edgeList(m_local_id); }
454 impl::ItemIndexedListView<DynExtent> _faceList()
const {
return _connectivity()->faceList(m_local_id); }
455 impl::ItemIndexedListView<DynExtent> _cellList()
const {
return _connectivity()->cellList(m_local_id); }
456 NodeLocalIdView _nodeIds()
const {
return _connectivity()->nodeLocalIdsView(m_local_id); }
457 EdgeLocalIdView _edgeIds()
const {
return _connectivity()->edgeLocalIdsView(m_local_id); }
458 FaceLocalIdView _faceIds()
const {
return _connectivity()->faceLocalIdsView(m_local_id); }
459 CellLocalIdView _cellIds()
const {
return _connectivity()->cellLocalIdsView(m_local_id); }
461 inline Node _node(
Int32 index)
const;
462 inline Edge _edge(
Int32 index)
const;
463 inline Face _face(
Int32 index)
const;
464 inline Cell _cell(
Int32 index)
const;
466 ItemBase _hParentBase(
Int32 index)
const {
return _connectivity()->hParentBase(m_local_id, index, m_shared_info); }
467 ItemBase _hChildBase(
Int32 index)
const {
return _connectivity()->hChildBase(m_local_id, index, m_shared_info); }
468 ItemBase _toItemBase()
const {
return ItemBase(m_local_id,m_shared_info); }
472 ItemInternalConnectivityList* _connectivity()
const
474 return m_shared_info->m_connectivity;
476 void _setFromInternal(ItemBase* rhs)
478 ARCANE_ITEM_ADD_STAT(m_nb_set_from_internal);
479 m_local_id = rhs->m_local_id;
480 m_shared_info = rhs->m_shared_info;
482 void _setFromItem(
const Item& rhs)
484 m_local_id = rhs.m_local_id;
485 m_shared_info = rhs.m_shared_info;
490 static void dumpStats(ITraceMng* tm);
491 static void resetStats();
495 static std::atomic<int> m_nb_created_from_internal;
496 static std::atomic<int> m_nb_created_from_internalptr;
497 static std::atomic<int> m_nb_set_from_internal;
501 ItemInternal* _internal()
const
503 if (m_local_id!=NULL_ITEM_LOCAL_ID)
504 return m_shared_info->m_items_internal[m_local_id];
505 return ItemInternal::nullItem();
555#include "arcane/ItemVectorView.h"
556#include "arcane/ItemConnectedListView.h"
593 class ARCANE_DEPRECATED_REASON(
"Y2024: Use NodeLocalId instead")
Index
620 { ARCANE_CHECK_KIND(isNode); }
624 { ARCANE_CHECK_KIND(isNode); }
628 { ARCANE_CHECK_KIND(isNode); }
632 { ARCANE_CHECK_KIND(isNode); }
647 Int32
nbEdge()
const {
return _nbEdge(); }
650 Int32
nbFace()
const {
return _nbFace(); }
653 Int32
nbCell()
const {
return _nbCell(); }
656 inline Edge edge(Int32 i)
const;
659 inline Face face(Int32 i)
const;
662 inline Cell cell(Int32 i)
const;
696 return _toItemBase()._internalActiveCells2(
local_ids);
699 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
702 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
703 const Node* operator->()
const {
return this; }
710_node(
Int32 index)
const
712 return Node(_connectivity()->nodeBase(
m_local_id,index));
751 { ARCANE_CHECK_KIND(isItemWithNodes); }
755 { ARCANE_CHECK_KIND(isItemWithNodes); }
759 { ARCANE_CHECK_KIND(isItemWithNodes); }
764 { ARCANE_CHECK_KIND(isItemWithNodes); }
776 Int32
nbNode()
const {
return _nbNode(); }
790 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
793 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
794 const ItemWithNodes* operator->()
const {
return this; }
829 class ARCANE_DEPRECATED_REASON(
"Y2024: Use EdgeLocalId instead")
Index
856 { ARCANE_CHECK_KIND(isEdge); }
860 { ARCANE_CHECK_KIND(isEdge); }
864 { ARCANE_CHECK_KIND(isEdge); }
869 { ARCANE_CHECK_KIND(isEdge); }
887 Int32
nbFace()
const {
return _nbFace(); }
890 Int32
nbCell()
const {
return _nbCell(); }
893 inline Cell cell(Int32 i)
const;
905 inline Face face(Int32 i)
const;
916 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
919 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
920 const Edge* operator->()
const {
return this; }
927_edge(
Int32 index)
const
929 return Edge(_connectivity()->edgeBase(
m_local_id,index));
964 class ARCANE_DEPRECATED_REASON(
"Y2024: Use FaceLocalId instead")
Index
991 { ARCANE_CHECK_KIND(isFace); }
995 { ARCANE_CHECK_KIND(isFace); }
999 { ARCANE_CHECK_KIND(isFace); }
1004 { ARCANE_CHECK_KIND(isFace); }
1022 inline Cell cell(Int32 i)
const;
1044 ARCANE_DEPRECATED_118
bool isBoundary()
const {
return isSubDomainBoundary(); }
1049 return isSubDomainBoundary() && (_flags() & ItemFlags::II_HasBackCell);
1059 return isSubDomainBoundaryOutside();
1063 inline Cell boundaryCell()
const;
1066 inline Cell backCell()
const;
1072 inline Cell frontCell()
const;
1082 inline Cell oppositeCell(
Cell cell)
const;
1091 ARCANE_ASSERT((backCellId()==
cell_id || frontCellId()==
cell_id),(
"cell is not connected to the face"));
1092 return (backCellId()==
cell_id) ? frontCellId() : backCellId();
1112 bool isTiedFace()
const {
return isSlaveFace() || isMasterFace(); }
1122 if (_toItemBase().isMasterFace())
1144 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
1147 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
1148 const Face* operator->()
const {
return this; }
1155_face(
Int32 index)
const
1157 return Face(_connectivity()->faceBase(
m_local_id,index));
1211 class ARCANE_DEPRECATED_REASON(
"Y2024: Use CellLocalId instead")
Index
1238 { ARCANE_CHECK_KIND(isCell); }
1242 { ARCANE_CHECK_KIND(isCell); }
1246 { ARCANE_CHECK_KIND(isCell); }
1251 { ARCANE_CHECK_KIND(isCell); }
1320 bool isActive()
const {
return _toItemBase().isActive(); }
1322 bool isSubactive()
const {
return _toItemBase().isSubactive(); }
1347 if (this->_nbHParent() == 0)
1350 return (this->_hParentBase(0).level() + 1);
1360 return _toItemBase().whichChildAmI(
iitem->localId());
1370 return _toItemBase().whichChildAmI(local_id);
1373 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
1376 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
1377 const Cell* operator->()
const {
return this; }
1384_cell(
Int32 index)
const
1386 return Cell(_connectivity()->cellBase(
m_local_id,index));
1480 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
1483 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
1484 const
Particle* operator->()
const {
return this; }
1533 { ARCANE_CHECK_KIND(
isDoF); }
1537 { ARCANE_CHECK_KIND(
isDoF); }
1541 { ARCANE_CHECK_KIND(
isDoF); }
1546 { ARCANE_CHECK_KIND(
isDoF); }
1555 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
1558 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
1559 const
DoF* operator->()
const {
return this; }
1651 ARCANE_CHECK_KIND(
isNode);
1658 ARCANE_CHECK_KIND(
isEdge);
1665 ARCANE_CHECK_KIND(
isFace);
1672 ARCANE_CHECK_KIND(
isCell);
1686 ARCANE_CHECK_KIND(
isDoF);
1694ItemLocalId(
Item item)
1695: m_local_id(item.localId())
1699template<
typename ItemType>
inline ItemLocalIdT<ItemType>::
1700ItemLocalIdT(ItemType item)
1701: ItemLocalId(item.localId())
1711 return Item(local_id.localId(), m_item_shared_info);
1720 return Item(local_id, m_item_shared_info);
1729 return ItemType(local_id.localId(), m_item_shared_info);
1738 return ItemType(local_id, m_item_shared_info);
1747 return Item(local_id.localId(), m_item_shared_info);
1754operator[](
Int32 local_id)
const
1756 return Item(local_id, m_item_shared_info);
1766 return ItemType(local_id.localId(), m_item_shared_info);
1776 return ItemType(local_id, m_item_shared_info);
1787#include "arcane/ItemCompatibility.h"
Déclarations de types sur les entités.
Index d'une Cell dans une variable.
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.
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.
Index d'une Edge dans une variable.
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()
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.
Index d'une Face dans une variable.
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
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.
Classe de base typeé des énumérateurs sur une liste d'entité connectées.
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.
Classe pour convertir un ItemLocalId vers une entité (Item).
Classe pour convertir un ItemLocalId vers une entité (Item).
Index d'un Item dans une variable.
Enumérateur sur un tableau de tableaux d'entités du maillage.
Type d'une entité (Item).
Infos sur un type d'entité du maillage.
Identifiant unique d'une entité.
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.
constexpr __host__ __device__ Item(const ItemBase &abase)
Construit une référence à l'entité abase.
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.
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é.
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.
Méthodes permettant de modifier ItemBase.
Index d'un Node dans une variable.
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)
Constructeur réservé pour les énumérateurs.
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.
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.
Classe de base des vecteurs 1D de données.
Référence à une instance.
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.
-*- 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.
std::int32_t Int32
Type entier signé sur 32 bits.