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
85 friend class ItemEnumeratorBaseT<
Item>;
87 friend class ItemVector;
88 friend class ItemVectorView;
89 friend class ItemVectorViewConstIterator;
90 friend class ItemConnectedListViewConstIterator;
91 friend class SimdItem;
92 friend class SimdItemEnumeratorBase;
93 friend class ItemInfoListView;
94 friend class ItemLocalIdToItemConverter;
95 template<
typename ItemType>
friend class ItemLocalIdToItemConverterT;
96 friend class ItemPairEnumerator;
97 template<
int Extent>
friend class ItemConnectedListView;
98 template<
typename ItemType>
friend class ItemEnumeratorBaseT;
101 friend class ItemCompatibility;
110 using ItemBase = impl::ItemBase;
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
166 ARCCORE_DEPRECATED_2021(
"Use ItemTypeMng::typeName() instead")
173 : m_shared_info(shared_info),
m_local_id(local_id) {}
184 ARCANE_CHECK_PTR(ainternal);
185 m_shared_info = ainternal->m_shared_info;
187 ARCANE_ITEM_ADD_STAT(m_nb_created_from_internal);
193 constexpr ARCCORE_HOST_DEVICE
Item(
const ItemBase& abase)
194 : m_shared_info(abase.m_shared_info)
201 :
Item(local_id,internals[local_id]->m_shared_info)
203 ARCANE_ITEM_ADD_STAT(m_nb_created_from_internalptr);
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;
347 ARCANE_DEPRECATED_REASON(
"Y2024: This method is internal to Arcane. use itemBase() or mutableItemBase() instead")
351 return m_shared_info->m_items_internal[
m_local_id];
352 return ItemInternal::nullItem();
365 return impl::ItemBase(
m_local_id,m_shared_info);
376 return impl::MutableItemBase(
m_local_id,m_shared_info);
390 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
391 Item* operator->() {
return this; }
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;
413 void _checkKind(
bool is_valid)
const
418 void _badConversion()
const;
421 _setFromInternal(ainternal);
423 void _set(
const Item& rhs)
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"
574 using ThatClass =
Node;
576 friend class ItemEnumeratorBaseT<ThatClass>;
585 friend class ItemLocalIdToItemConverterT<ThatClass>;
593 class ARCANE_DEPRECATED_REASON(
"Y2024: Use NodeLocalId instead") Index
599 explicit Index(
Int32 id) : Base(
id){}
600 Index(
Node item) : Base(item){}
601 operator NodeLocalId()
const {
return NodeLocalId{localId()}; }
608 :
Item(local_id,shared_info) {}
620 { ARCANE_CHECK_KIND(
isNode); }
624 { ARCANE_CHECK_KIND(
isNode); }
628 { ARCANE_CHECK_KIND(
isNode); }
631 Node(
const ItemInternalPtr* internals,
Int32 local_id) :
Item(internals,local_id)
632 { ARCANE_CHECK_KIND(
isNode); }
696 return _toItemBase()._internalActiveCells2(local_ids);
699 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
700 Node* operator->() {
return this; }
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));
727 friend class ItemEnumeratorBaseT<ThatClass>;
736 friend class ItemLocalIdToItemConverterT<ThatClass>;
742 :
Item(local_id,shared_info) {}
763 :
Item(internals,local_id)
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; }
807class ARCANE_CORE_EXPORT Edge
810 using ThatClass = Edge;
829 class ARCANE_DEPRECATED_REASON(
"Y2024: Use EdgeLocalId instead") Index
835 explicit Index(
Int32 id) : Base(
id){}
836 Index(Edge item) : Base(item){}
837 operator EdgeLocalId()
const {
return EdgeLocalId{localId()}; }
856 { ARCANE_CHECK_KIND(
isEdge); }
860 { ARCANE_CHECK_KIND(
isEdge); }
864 { ARCANE_CHECK_KIND(
isEdge); }
869 { ARCANE_CHECK_KIND(
isEdge); }
916 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
917 Edge* operator->() {
return this; }
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));
942class ARCANE_CORE_EXPORT Face
945 using ThatClass = Face;
964 class ARCANE_DEPRECATED_REASON(
"Y2024: Use FaceLocalId instead") Index
970 explicit Index(
Int32 id) : Base(
id){}
971 Index(Face item) : Base(item){}
972 operator FaceLocalId()
const {
return FaceLocalId{localId()}; }
991 { ARCANE_CHECK_KIND(
isFace); }
995 { ARCANE_CHECK_KIND(
isFace); }
999 { ARCANE_CHECK_KIND(
isFace); }
1004 { ARCANE_CHECK_KIND(
isFace); }
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"));
1144 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
1145 Face* operator->() {
return this; }
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));
1189class ARCANE_CORE_EXPORT Cell
1192 using ThatClass = Cell;
1211 class ARCANE_DEPRECATED_REASON(
"Y2024: Use CellLocalId instead") Index
1217 explicit Index(
Int32 id) : Base(
id){}
1218 Index(Cell item) : Base(item){}
1219 operator CellLocalId()
const {
return CellLocalId{localId()}; }
1238 { ARCANE_CHECK_KIND(
isCell); }
1242 { ARCANE_CHECK_KIND(
isCell); }
1246 { ARCANE_CHECK_KIND(
isCell); }
1251 { ARCANE_CHECK_KIND(
isCell); }
1301 Cell
hParent()
const {
return Cell(_hParentBase(0)); }
1313 Cell
topHParent()
const {
return Cell(_toItemBase().topHParentBase()); }
1320 bool isActive()
const {
return _toItemBase().isActive(); }
1322 bool isSubactive()
const {
return _toItemBase().isSubactive(); }
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")
1374 Cell* operator->() {
return this; }
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));
1398 using ThatClass = Particle;
1400 friend class ItemEnumeratorBaseT<ThatClass>;
1409 friend class ItemLocalIdToItemConverterT<ThatClass>;
1415 :
Item(local_id,shared_info) {}
1439 :
Item(internals,local_id)
1462 CellLocalId
cellId()
const {
return _cellId(0); }
1474 Int32 cell_local_id = _cellId(0).localId();
1475 if (cell_local_id==NULL_ITEM_LOCAL_ID)
1480 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
1481 Particle* operator->() {
return this; }
1483 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
1484 const
Particle* operator->()
const {
return this; }
1504 using ThatClass = DoF;
1506 friend class ItemEnumeratorBaseT<ThatClass>;
1515 friend class ItemLocalIdToItemConverterT<ThatClass>;
1521 :
Item(local_id,shared_info) {}
1526 using LocalIdType = DoFLocalId;
1533 { ARCANE_CHECK_KIND(
isDoF); }
1537 { ARCANE_CHECK_KIND(
isDoF); }
1541 { ARCANE_CHECK_KIND(
isDoF); }
1545 :
Item(internals,local_id)
1546 { ARCANE_CHECK_KIND(
isDoF); }
1555 ARCANE_DEPRECATED_REASON(
"Y2022: Do not use this operator. Use operator '.' instead")
1556 DoF* operator->() {
return this; }
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);
1756 return Item(local_id, m_item_shared_info);
1762template<
typename ItemType_>
inline constexpr ARCCORE_HOST_DEVICE ItemType_
1766 return ItemType(local_id.localId(), m_item_shared_info);
1772template<
typename ItemType_>
inline constexpr ARCCORE_HOST_DEVICE ItemType_
1776 return ItemType(local_id, m_item_shared_info);
1787#include "arcane/ItemCompatibility.h"
Déclarations de types sur les entités.
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.
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.
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.
Int32 localId() const
Numéro local (au sous-domaine) de l'entité
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.
@ II_Shared
L'entité est partagée par un autre sous-domaine.
@ II_HasBackCell
L'entité a une maille derrière.
@ II_Own
L'entité est une entité propre au sous-domaine.
@ II_Boundary
L'entité est sur la frontière.
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.
Item operator[](ItemLocalId local_id) const
Entité associée du numéro local local_id.
Classe pour convertir un ItemLocalId vers une entité (Item).
constexpr __host__ __device__ ItemType operator[](ItemLocalIdType local_id) const
Entité de numéro local local_id.
constexpr __host__ __device__ Item operator[](ItemLocalId local_id) const
Entité de numéro local local_id.
Index d'un Item dans une variable.
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.
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.
static const Int32 NULL_ELEMENT
Indice d'un élément nul.
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é
ItemInternal * internal() const
Partie interne 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
static String typeName(Int32 type)
Nom du type de maille cell_type.
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é
@ Tri3
Elément de type triangle (3 sommets, 2D)
@ Quad4
Elément de type quad (4 sommets, 2D)
@ Pentagon5
Elément de type pentagone (5 sommets, 2D)
@ Unknown
Elément de type nul.
@ Pyramid
Elément de type pyramide (5 sommets, 3D)
@ Bar2
Elément de type arête (2 sommets, 1D, 2D et 3D)
@ Vertex
Elément de type noeud (1 sommet 1D, 2D et 3D)
@ Hexa
Elément de type hexaèdre (8 sommets, 3D)
@ Hexagon6
Elément de type hexagone (6 sommets, 2D)
@ Penta
Elément de type pentaèdre (6 sommets, 3D)
@ Wedge8
Elément de type prisme à 8 faces (base hexagonale)
@ Wedge7
Elément de type prisme à 7 faces (base pentagonale)
@ Tetra
Elément de type tétraédre (4 sommets, 3D)
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 __host__ __device__ Item(Int32 local_id, ItemSharedInfo *shared_info)
Constructeur réservé pour les énumérateurs.
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.
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.
Chaîne de caractères unicode.
ItemLocalIdListViewT< Node > NodeLocalIdView
Vue sur les localId() d'une liste de noeuds.
ItemVectorViewT< Cell > CellVectorView
Vue sur un vecteur de mailles.
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 -*-
NodeConnectedListView NodeConnectedListViewType
Liste de noeuds connectés.
Int32 Integer
Type représentant un entier.
CellConnectedListView CellConnectedListViewType
Liste de mailles connectées.
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::int16_t Int16
Type entier signé sur 16 bits.
Array< Int32 > Int32Array
Tableau dynamique à une dimension d'entiers 32 bits.
EdgeConnectedListView EdgeConnectedListViewType
Liste d'arêtes connectées.
FaceConnectedListView FaceConnectedListViewType
Liste de faces connectées.
std::int32_t Int32
Type entier signé sur 32 bits.