12#ifndef ARCANE_CORE_ITEMINTERNAL_H
13#define ARCANE_CORE_ITEMINTERNAL_H
17#include "arcane/utils/ArrayView.h"
20#include "arcane/core/ItemIndexedListView.h"
21#include "arcane/core/ItemSharedInfo.h"
22#include "arcane/core/ItemUniqueId.h"
23#include "arcane/core/ItemLocalIdListView.h"
24#include "arcane/core/ItemTypeId.h"
25#include "arcane/core/ItemFlags.h"
26#include "arcane/core/ItemConnectivityContainerView.h"
27#include "arcane/core/ItemInternalVectorView.h"
38#ifdef ARCANE_CONNECTIVITYLIST_USE_OWN_SHAREDINFO
39#define A_INTERNAL_SI(name) m_shared_infos.m_##name
41#define A_INTERNAL_SI(name) m_items->m_##name##_shared_info
50class PolyhedralFamily;
70class ARCANE_CORE_EXPORT ItemBaseBuildInfo
74 ItemBaseBuildInfo() =
default;
76 : m_local_id(local_id)
77 , m_shared_info(shared_info)
82 Int32 m_local_id = NULL_ITEM_LOCAL_ID;
94class ARCANE_CORE_EXPORT ItemInternalConnectivityList
99 friend class ItemBase;
100 friend class ItemInternal;
105 friend mesh::PolyhedralFamily;
127 if (index == NULL_ITEM_LOCAL_ID) {
130 arcaneRangeError(index, m_size);
133 ARCANE_CHECK_AT(index, m_size);
135 return m_data[index];
144 void setNull(
const Int32* data)
186 for (
Integer i = 0; i < MAX_ITEM_KIND; ++i) {
187 m_kind_info[i].m_nb_item_null_data[0] = 0;
188 m_kind_info[i].m_nb_item_null_data[1] = 0;
189 m_kind_info[i].m_max_nb_item = 0;
192 for (Integer i = 0; i < MAX_ITEM_KIND; ++i) {
193 m_container[i].m_nb_item.setNull(&m_kind_info[i].m_nb_item_null_data[1]);
194 m_container[i].m_offset = ConstArrayView<Int32>{};
200 void updateMeshItemInternalList()
202#ifdef ARCANE_CONNECTIVITYLIST_USE_OWN_SHAREDINFO
203 m_shared_infos.m_node = m_items->m_node_shared_info;
204 m_shared_infos.m_edge = m_items->m_edge_shared_info;
205 m_shared_infos.m_face = m_items->m_face_shared_info;
206 m_shared_infos.m_cell = m_items->m_cell_shared_info;
218 return m_container[item_kind].itemLocalId(lid, index);
230 m_container[item_kind].m_indexes = v;
235 m_container[item_kind].m_list = v;
241 m_container[item_kind].m_nb_item = v;
246 m_kind_info[item_kind].m_max_nb_item = v;
252 ARCANE_DEPRECATED_REASON(
"Y2022: Use containerView() instead")
255 return m_container[item_kind].m_indexes;
258 ARCANE_DEPRECATED_REASON(
"Y2022: Use containerView() instead")
261 return m_container[item_kind].m_list;
264 ARCANE_DEPRECATED_REASON(
"Y2022: Use containerView() instead")
267 return m_container[item_kind].m_nb_item;
275 return m_kind_info[item_kind].m_max_nb_item;
280 return m_container[item_kind].containerView();
285 constexpr ItemBaseBuildInfo nodeBase(Int32 lid, Int32 aindex)
const
287 return ItemBaseBuildInfo(_nodeLocalIdV2(lid, aindex), A_INTERNAL_SI(node));
289 constexpr ItemBaseBuildInfo edgeBase(Int32 lid, Int32 aindex)
const
291 return ItemBaseBuildInfo(_edgeLocalIdV2(lid, aindex), A_INTERNAL_SI(edge));
293 constexpr ItemBaseBuildInfo faceBase(Int32 lid, Int32 aindex)
const
295 return ItemBaseBuildInfo(_faceLocalIdV2(lid, aindex), A_INTERNAL_SI(face));
297 constexpr ItemBaseBuildInfo cellBase(Int32 lid, Int32 aindex)
const
299 return ItemBaseBuildInfo(_cellLocalIdV2(lid, aindex), A_INTERNAL_SI(cell));
301 ItemBaseBuildInfo hParentBase(Int32 lid, Int32 aindex, ItemSharedInfo* isf)
const
303 return ItemBaseBuildInfo(_hParentLocalIdV2(lid, aindex), isf);
305 ItemBaseBuildInfo hChildBase(Int32 lid, Int32 aindex, ItemSharedInfo* isf)
const
307 return ItemBaseBuildInfo(_hChildLocalIdV2(lid, aindex), isf);
310 auto nodeList(Int32 lid)
const {
return impl::ItemIndexedListView{ A_INTERNAL_SI(node), _itemLocalIdListView(NODE_IDX, lid) }; }
311 auto edgeList(Int32 lid)
const {
return impl::ItemIndexedListView{ A_INTERNAL_SI(edge), _itemLocalIdListView(EDGE_IDX, lid) }; }
312 auto faceList(Int32 lid)
const {
return impl::ItemIndexedListView{ A_INTERNAL_SI(face), _itemLocalIdListView(FACE_IDX, lid) }; }
313 auto cellList(Int32 lid)
const {
return impl::ItemIndexedListView{ A_INTERNAL_SI(cell), _itemLocalIdListView(CELL_IDX, lid) }; }
319 ItemInternalVectorView nodesV2(Int32 lid)
const {
return { A_INTERNAL_SI(node), _itemLocalIdListView(NODE_IDX, lid) }; }
320 ItemInternalVectorView edgesV2(Int32 lid)
const {
return { A_INTERNAL_SI(edge), _itemLocalIdListView(EDGE_IDX, lid) }; }
321 ItemInternalVectorView facesV2(Int32 lid)
const {
return { A_INTERNAL_SI(face), _itemLocalIdListView(FACE_IDX, lid) }; }
322 ItemInternalVectorView cellsV2(Int32 lid)
const {
return { A_INTERNAL_SI(cell), _itemLocalIdListView(CELL_IDX, lid) }; }
331 constexpr Int32 _nodeLocalIdV2(Int32 lid, Int32 index)
const {
return itemLocalId(NODE_IDX, lid, index); }
332 constexpr Int32 _edgeLocalIdV2(Int32 lid, Int32 index)
const {
return itemLocalId(EDGE_IDX, lid, index); }
333 constexpr Int32 _faceLocalIdV2(Int32 lid, Int32 index)
const {
return itemLocalId(FACE_IDX, lid, index); }
334 constexpr Int32 _cellLocalIdV2(Int32 lid, Int32 index)
const {
return itemLocalId(CELL_IDX, lid, index); }
335 constexpr Int32 _hParentLocalIdV2(Int32 lid, Int32 index)
const {
return itemLocalId(HPARENT_IDX, lid, index); }
336 constexpr Int32 _hChildLocalIdV2(Int32 lid, Int32 index)
const {
return itemLocalId(HCHILD_IDX, lid, index); }
340 ItemInternal* _nodeV2(Int32 lid, Int32 aindex)
const {
return m_items->nodes[_nodeLocalIdV2(lid, aindex)]; }
341 ItemInternal* _edgeV2(Int32 lid, Int32 aindex)
const {
return m_items->edges[_edgeLocalIdV2(lid, aindex)]; }
342 ItemInternal* _faceV2(Int32 lid, Int32 aindex)
const {
return m_items->faces[_faceLocalIdV2(lid, aindex)]; }
343 ItemInternal* _cellV2(Int32 lid, Int32 aindex)
const {
return m_items->cells[_cellLocalIdV2(lid, aindex)]; }
344 ItemInternal* _hParentV2(Int32 lid, Int32 aindex)
const {
return m_items->cells[_hParentLocalIdV2(lid, aindex)]; }
345 ItemInternal* _hChildV2(Int32 lid, Int32 aindex)
const {
return m_items->cells[_hChildLocalIdV2(lid, aindex)]; }
349 constexpr Int32 _nbNodeV2(Int32 lid)
const {
return m_container[NODE_IDX].m_nb_item[lid]; }
350 constexpr Int32 _nbEdgeV2(Int32 lid)
const {
return m_container[EDGE_IDX].m_nb_item[lid]; }
351 constexpr Int32 _nbFaceV2(Int32 lid)
const {
return m_container[FACE_IDX].m_nb_item[lid]; }
352 constexpr Int32 _nbCellV2(Int32 lid)
const {
return m_container[CELL_IDX].m_nb_item[lid]; }
353 Int32 _nbHParentV2(Int32 lid)
const {
return m_container[HPARENT_IDX].m_nb_item[lid]; }
354 Int32 _nbHChildrenV2(Int32 lid)
const {
return m_container[HCHILD_IDX].m_nb_item[lid]; }
358 Int32 _nodeOffset(Int32 lid)
const {
return m_container[NODE_IDX].itemOffset(lid); }
359 Int32 _edgeOffset(Int32 lid)
const {
return m_container[EDGE_IDX].itemOffset(lid); }
360 Int32 _faceOffset(Int32 lid)
const {
return m_container[FACE_IDX].itemOffset(lid); }
361 Int32 _cellOffset(Int32 lid)
const {
return m_container[CELL_IDX].itemOffset(lid); }
362 Int32 _itemOffset(Int32 item_kind, Int32 lid)
const {
return m_container[item_kind].itemOffset(lid); }
366 impl::ItemLocalIdListContainerView _itemLocalIdListView(Int32 item_kind, Int32 lid)
const
368 return m_container[item_kind].itemLocalIdListView(lid);
381 const Int32* itemLocalIdsData(
Int32 lid)
const
383 return &(m_list[m_indexes[lid]]);
387 return m_list[m_indexes[lid] + index] + itemOffset(lid);
393 constexpr Int32 itemOffset([[maybe_unused]]
Int32 lid)
const
395#ifdef ARCANE_USE_OFFSET_FOR_CONNECTIVITY
396 return m_offset[lid];
413 Int32 m_nb_item_null_data[2];
419 KindInfo m_kind_info[MAX_ITEM_KIND];
425#ifdef ARCANE_CONNECTIVITYLIST_USE_OWN_SHAREDINFO
449class ARCANE_CORE_EXPORT ItemBase
452 friend class ::Arcane::ItemInternal;
453 friend class ::Arcane::Item;
454 friend class ::Arcane::ItemInternalCompatibility;
456 friend class ::Arcane::ItemEnumerator;
457 friend MutableItemBase;
459 friend class ::Arcane::Node;
461 friend class ::Arcane::mesh::ItemFamily;
462 friend class ::Arcane::mesh::MeshRefinement;
484 inline ItemBase(ItemInternal* x);
545 return (this->hParentBase(0).
level() + 1);
559 return this->hChildBase(0).isAncestor();
591 return this->hChildBase(0).isSubactive();
633 return NULL_ITEM_LOCAL_ID;
647 return NULL_ITEM_LOCAL_ID;
651 if (flags() & II_SlaveFace)
661 Int32 parentId(
Integer index)
const {
return m_shared_info->_parentLocalIdV2(m_local_id, index); }
664 Int32 nodeId(Integer index)
const {
return _connectivity()->_nodeLocalIdV2(m_local_id, index); }
665 Int32 edgeId(Integer index)
const {
return _connectivity()->_edgeLocalIdV2(m_local_id, index); }
666 Int32 faceId(Integer index)
const {
return _connectivity()->_faceLocalIdV2(m_local_id, index); }
667 Int32 cellId(Integer index)
const {
return _connectivity()->_cellLocalIdV2(m_local_id, index); }
668 Int32 hParentId(Int32 index)
const {
return _connectivity()->_hParentLocalIdV2(m_local_id, index); }
669 Int32 hChildId(Int32 index)
const {
return _connectivity()->_hChildLocalIdV2(m_local_id, index); }
682 ARCANE_DEPRECATED_REASON(
"Y2023: Use nodeList() instead.")
684 ARCANE_DEPRECATED_REASON(
"Y2023: Use edgeList() instead.")
686 ARCANE_DEPRECATED_REASON(
"Y2023: Use faceList() instead.")
687 ItemInternalVectorView internalFaces()
const {
return _connectivity()->facesV2(m_local_id); }
688 ARCANE_DEPRECATED_REASON(
"Y2023: Use cellList() instead.")
689 ItemInternalVectorView internalCells()
const {
return _connectivity()->cellsV2(m_local_id); }
704 impl::ItemIndexedListView<DynExtent> faceList()
const {
return _connectivity()->faceList(m_local_id); }
705 impl::ItemIndexedListView<DynExtent> cellList()
const {
return _connectivity()->cellList(m_local_id); }
707 impl::ItemIndexedListView<DynExtent> itemList(Node*)
const {
return nodeList(); }
708 impl::ItemIndexedListView<DynExtent> itemList(Edge*)
const {
return edgeList(); }
709 impl::ItemIndexedListView<DynExtent> itemList(Face*)
const {
return faceList(); }
710 impl::ItemIndexedListView<DynExtent> itemList(Cell*)
const {
return cellList(); }
713 ItemBase nodeBase(Int32 index)
const {
return _connectivity()->nodeBase(m_local_id, index); }
714 ItemBase edgeBase(Int32 index)
const {
return _connectivity()->edgeBase(m_local_id, index); }
715 ItemBase faceBase(Int32 index)
const {
return _connectivity()->faceBase(m_local_id, index); }
716 ItemBase cellBase(Int32 index)
const {
return _connectivity()->cellBase(m_local_id, index); }
717 ItemBase hParentBase(Int32 index)
const {
return _connectivity()->hParentBase(m_local_id, index, m_shared_info); }
718 ItemBase hChildBase(Int32 index)
const {
return _connectivity()->hChildBase(m_local_id, index, m_shared_info); }
719 inline ItemBase parentBase(Int32 index)
const;
744 ARCANE_DEPRECATED_REASON(
"Y2024: This method is internal to Arcane.")
747 ARCANE_DEPRECATED_REASON(
"Y2024: This method is internal to Arcane.")
750 return _internalActiveCells2(local_ids);
755 Int32 _nbLinearNode()
const;
779 void _setFromInternal(
ItemBase* rhs)
784 void _setFromInternal(
const ItemBase& rhs)
786 m_local_id = rhs.m_local_id;
787 m_shared_info = rhs.m_shared_info;
789 ItemInternalVectorView _internalActiveCells2(Int32Array& local_ids)
const;
790 inline ItemInternal* _itemInternal()
const;
801class ARCANE_CORE_EXPORT MutableItemBase
804 friend class ::Arcane::Item;
812 : ItemBase(local_id, shared_info)
817 MutableItemBase() =
default;
821 explicit MutableItemBase(
const ItemBase& x)
828 inline MutableItemBase(ItemInternal* x);
832 void setUniqueId(
Int64 uid)
856 if (suid == current_sub_domain)
897 setOwner(aowner, owner_rank);
900 void setLocalId(Int32 local_id)
902 m_local_id = local_id;
913 void _setFaceBackAndFrontCells(
Int32 back_cell_lid,
Int32 front_cell_lid);
915 void _checkUniqueId(
Int64 new_uid)
const;
917 inline void _setFaceInfos(
Int32 mod_flags);
941:
public impl::MutableItemBase
958 ARCANE_DEPRECATED_REASON(
"Y2023: use ItemBase::boundaryCell() instead.")
961 ARCANE_DEPRECATED_REASON(
"Y2023: use ItemBase::backCell() instead.")
969 ARCANE_DEPRECATED_REASON(
"Y2023: use ItemBase::frontCell() instead.")
976 ARCANE_DEPRECATED_REASON(
"Y2023: use ItemBase::masterFace() instead.")
979 if (flags() & II_SlaveFace)
980 return _internalFace(0);
987 ARCANE_DEPRECATED_REASON(
"Y2022: This method is internal to Arcane and should not be used.")
992 ARCANE_DEPRECATED_REASON(
"Y2023: Use itemList() instead.")
994 ARCANE_DEPRECATED_REASON(
"Y2023: Use itemList() instead.")
995 ItemInternalVectorView internalItems(Edge*)
const {
return edgeList(); }
996 ARCANE_DEPRECATED_REASON(
"Y2023: Use itemList() instead.")
997 ItemInternalVectorView internalItems(Face*)
const {
return faceList(); }
998 ARCANE_DEPRECATED_REASON(
"Y2023: Use itemList() instead.")
999 ItemInternalVectorView internalItems(Cell*)
const {
return cellList(); }
1003 ARCANE_DEPRECATED_REASON(
"Y2023: Use nodeBase() instead.")
1004 ItemInternal* internalNode(Int32 index)
const {
return _connectivity()->_nodeV2(m_local_id, index); }
1005 ARCANE_DEPRECATED_REASON(
"Y2023: Use edgeBase() instead.")
1006 ItemInternal* internalEdge(Int32 index)
const {
return _connectivity()->_edgeV2(m_local_id, index); }
1007 ARCANE_DEPRECATED_REASON(
"Y2023: Use faceBase() instead.")
1008 ItemInternal* internalFace(Int32 index)
const {
return _connectivity()->_faceV2(m_local_id, index); }
1009 ARCANE_DEPRECATED_REASON(
"Y2023: Use cellBase() instead.")
1010 ItemInternal* internalCell(Int32 index)
const {
return _connectivity()->_cellV2(m_local_id, index); }
1011 ARCANE_DEPRECATED_REASON(
"Y2023: Use hParentBase() instead.")
1012 ItemInternal* internalHParent(Int32 index)
const {
return _connectivity()->_hParentV2(m_local_id, index); }
1013 ARCANE_DEPRECATED_REASON(
"Y2023: Use hChildBase() instead.")
1014 ItemInternal* internalHChild(Int32 index)
const {
return _connectivity()->_hChildV2(m_local_id, index); }
1015 ARCANE_DEPRECATED_REASON(
"Y2023: Use parentBase() instead.")
1016 ItemInternal* parent(Integer index)
const {
return m_shared_info->_parentV2(m_local_id, index); }
1020 const ItemInternal* topHParent()
const;
1021 ItemInternal* topHParent();
1025 ARCANE_DEPRECATED_REASON(
"Y2022: This method always returns 0")
1026 Int32 dataIndex() {
return 0; }
1041 ARCANE_DEPRECATED_REASON(
"Y2022: Use parentId() or setParent() instead")
1054 ARCANE_DEPRECATED_REASON(
"Y2022: This method always return 0")
1058 ARCANE_DEPRECATED_REASON(
"Y2022: This method always return 0")
1063 ARCANE_DEPRECATED_REASON(
"Y2023: Use nodeId() instead")
1064 Int32 nodeLocalId(
Integer index) {
return _connectivity()->_nodeLocalIdV2(m_local_id, index); }
1065 ARCANE_DEPRECATED_REASON(
"Y2023: Use edgeId() instead")
1066 Int32 edgeLocalId(Integer index) {
return _connectivity()->_edgeLocalIdV2(m_local_id, index); }
1067 ARCANE_DEPRECATED_REASON(
"Y2023: Use faceId() instead")
1068 Int32 faceLocalId(Integer index) {
return _connectivity()->_faceLocalIdV2(m_local_id, index); }
1069 ARCANE_DEPRECATED_REASON(
"Y2023: Use cellId() instead")
1070 Int32 cellLocalId(Integer index) {
return _connectivity()->_cellLocalIdV2(m_local_id, index); }
1074 ARCANE_DEPRECATED_REASON(
"Y2022: This method always throws an exception.")
1075 void setDataIndex(Integer);
1077 ARCANE_DEPRECATED_REASON(
"Y2022: This method is internal to Arcane and should not be used.")
1078 void setSharedInfo(ItemSharedInfo* shared_infos, ItemTypeId type_id)
1080 _setSharedInfo(shared_infos, type_id);
1089 ARCANE_DEPRECATED_REASON(
"Y2022: This method is internal to Arcane and should not be used.")
1092 return ((items) ? items[0]->
m_shared_info : ItemSharedInfo::nullInstance());
1099 m_shared_info = shared_infos;
1100 shared_infos->_setTypeId(m_local_id, type_id.typeId());
1103 ItemInternal* _internalFace(Int32 index)
const {
return _connectivity()->_faceV2(m_local_id, index); }
1104 ItemInternal* _internalCell(Int32 index)
const {
return _connectivity()->_cellV2(m_local_id, index); }
1105 ItemInternal* _internalHParent(Int32 index)
const {
return _connectivity()->_hParentV2(m_local_id, index); }
1106 ItemInternal* _internalHChild(Int32 index)
const {
return _connectivity()->_hChildV2(m_local_id, index); }
1114: m_local_id(x->m_local_id)
1115, m_shared_info(x->m_shared_info)
1131: m_local_id(item->localId())
1153 return ItemInternal::nullItem();
1160_itemInternal()
const
1164 return ItemInternal::nullItem();
1170inline impl::ItemBase impl::ItemBase::
1171parentBase(
Int32 index)
const
1206 friend class SimdItemBase;
1207 friend class SimdItemDirectBase;
1208 friend class SimdItem;
1209 friend class SimdItemEnumeratorBase;
1210 friend class ItemVectorView;
1211 template <
typename T>
friend class ItemEnumeratorBaseT;
1213 friend class TotalviewAdapter;
1214 template <
int Extent>
friend class ItemConnectedListView;
1226 return ((items && count > 0) ? items[0]->m_shared_info : ItemSharedInfo::nullInstance());
1228 static const ItemInternalPtr* _getItemInternalPtr(ItemSharedInfo* shared_info)
1230 ARCANE_CHECK_PTR(shared_info);
1231 return shared_info->m_items_internal.data();
Declarations of types on entities.
Modifiable view of an array of type T.
Constant view of an array of type T.
constexpr const_pointer data() const noexcept
Pointer to the allocated memory.
constexpr Integer size() const noexcept
Number of elements in the array.
Interface of an entity family.
Class for building an instance of ItemBase.
Base class for mesh entities.
Integer nbEdge() const
Number of edges of the entity or number of edges connected to the entity (for nodes).
ItemLocalId itemLocalId() const
Local number (in the subdomain) of the entity.
bool isSuppressed() const
True if the entity is suppressed.
ItemUniqueId uniqueId() const
Unique number of the entity.
Int32 backCellId() const
Cell behind the entity (NULL_ITEM_LOCAL_ID if none).
Int32 m_padding
Field used only to explicitly manage alignment.
eItemKind kind() const
Kind of the entity.
Integer nbCell() const
Number of cells connected to the entity (for nodes, edges, and faces).
bool isMasterFace() const
true if it is the master face of an interface
IItemFamily * family() const
Family the entity belongs to.
Int32 m_local_id
Local number (in the subdomain) of the entity.
Int32 owner() const
Number of the owning subdomain of the entity.
MutableItemBase toMutable()
Mutable interface of this entity.
Int32 flags() const
Flags of the entity.
bool isShared() const
True if the entity is shared by other subdomains.
ItemBase backCell() const
Cell behind the entity (nullItem() if none).
bool isDetached() const
True if the entity is detached.
bool hasFlags(Int32 flags) const
Returns whether the flags flags are set for the entity.
Integer nbFace() const
Number of faces of the entity or number of faces connected to the entity (for nodes and edges).
impl::ItemIndexedListView< DynExtent > nodeList() const
Methods using the new connectivities to access connectivity information. Should not be used outside o...
ItemTypeInfo * typeInfo() const
Type of the entity.
Int16 typeId() const
Type of the entity.
Int32 nbHParent() const
Number of parents for AMR.
bool hasHChildren() const
bool isOwn() const
True if the entity belongs to the subdomain.
ItemTypeId itemTypeId() const
Type of the entity.
Int32 nbHChildren() const
Number of children for AMR.
bool isNull() const
True if the entity is the null entity.
Integer nbNode() const
Number of nodes of the entity.
ItemBase boundaryCell() const
Cell connected to the entity if the entity is a boundary entity (0 if none).
bool isBoundary() const
true if the entity is on the boundary
ItemInternalVectorView internalNodes() const
Methods using the new connectivities to access connectivity information. Should not be used outside o...
ItemSharedInfo * m_shared_info
Shared info between all entities with the same characteristics.
Int32 frontCellId() const
Cell in front of the entity (NULL_ITEM_LOCAL_ID if none).
Integer nbParent() const
Number of parent for sub-meshes.
bool null() const
True if the entity is the null entity.
ItemBase frontCell() const
Cell in front of the entity (nullItem() if none).
Int32 localId() const
Local number (in the subdomain) of the entity.
bool isSlaveFace() const
true if it is a slave face of an interface
Views of containers holding connectivity. This class allows the containers used to be opaque outside ...
Flags for entity characteristics.
@ II_FrontCellIsFirst
The first cell of the entity is the front cell.
@ II_MasterFace
The entity is a master face of an interface.
@ II_Inactive
The entity is inactive //COARSEN_INACTIVE,.
@ II_HasBackCell
The entity has a back cell.
@ II_Own
The entity is a domain-specific entity.
@ II_Suppressed
The entity has just been suppressed.
@ II_Detached
The entity is detached from the mesh.
@ II_Boundary
The entity is on the boundary.
@ II_SlaveFace
The entity is a slave face of an interface.
@ II_CoarsenInactive
The entity is inactive and has children tagged for coarsening.
@ II_HasFrontCell
The entity has a front cell.
@ II_BackCellIsFirst
The first cell of the entity is the back cell.
Methods for conversions between different entity management classes.
ItemInternal * ItemInternalPtr
Connectivity information, for an entity family, allowing transition between old and new connectivity ...
Int32ConstArrayView connectivityNbItem(Int32 item_kind) const
Array containing the number of connected entities for entities of kind item_kind.
Int64 nbAccess() const
Number of calls to itemLocalId().
Int32ConstArrayView connectivityList(Int32 item_kind) const
Array containing the connectivity list for entities of kind item_kind.
void _setConnectivityNbItem(Int32 item_kind, ConstArrayView< Int32 > v)
Positions the array containing the number of connected entities.
constexpr Int32 itemLocalId(Int32 item_kind, Int32 lid, Integer index) const
localId() of the index-th entity of type item_kind connected to the entity with localid() lid.
Int32 maxNbConnectedItem(Int32 item_kind) const
Maximum number of connected entities.
Int64 nbAccessAll() const
Number of calls to itemLocalIds().
Int32ConstArrayView connectivityIndex(Int32 item_kind) const
Connectivity index array for entities of kind item_kind.
void _setConnectivityList(Int32 item_kind, ArrayView< Int32 > v)
Positions the array containing the connectivity list.
void _setConnectivityIndex(Int32 item_kind, ConstArrayView< Int32 > v)
Positions the connectivity index array.
void _setMaxNbConnectedItem(Int32 item_kind, Int32 v)
Positions the maximum number of connected entities.
Internal view on an array of entities.
Internal structure of a mesh entity.
static ItemSharedInfo * _getSharedInfo(const ItemInternalPtr *items)
ItemInternal * ItemInternalPtr
constexpr Integer minimumNeededMemory() const
Minimum memory required to store the entity information (without buffer).
constexpr Integer neededMemory() const
Memory required to store the entity information.
ItemInternal * boundaryCell() const
Connected cell to the entity if the entity is a boundary entity (0 if none).
ItemSharedInfo * sharedInfo() const
Shared information of the entity.
ItemInternal * frontCell() const
Cell in front of the entity (nullItem() if none).
ItemInternal * backCell() const
Cell behind the entity (nullItem() if none).
static ItemInternal nullItemInternal
Null entity.
Int32 * parentPtr()
Pointer to the list of parents.
Index of an ItemType entity in a variable.
Index of an Item in a variable.
Internal shared structure of a mesh entity.
Type of an entity (Item).
Info on a mesh entity type.
Unique identifier of an entity.
Shared information about 'ComponentItem'.
Indirection tables for mesh entities.
Methods allowing modification of ItemBase.
void setOwner(Integer suid, Int32 current_sub_domain)
Sets the sub-domain number of the entity owner.
void setDetached(bool v)
Sets the detached state of the entity.
void setFlags(Int32 f)
Sets the entity flags.
void unsetUniqueId()
Nullifies the uniqueId to the value NULL_ITEM_UNIQUE_ID.
void setParent(Int32 aindex, Int32 parent_local_id)
Sets the i-th parent (currently aindex must be 0).
void addFlags(Int32 added_flags)
Adds the flags added_flags to those of the entity.
void removeFlags(Int32 removed_flags)
Removes the flags removed_flags from those of the entity.
View of an array of elements of type T.
Internal view of an array of entities.
View over the container of a list of ItemLocalId.
List of ItemSharedInfo associated with a mesh.
Mesh information for a given entity kind.
Base class for incremental item->item[] connectivities.
Implementation of unstructured mesh refinement adaptation algorithms.
ItemLocalIdListViewT< Node > NodeLocalIdView
View over the localId() of a list of nodes.
ItemLocalIdListViewT< Edge > EdgeLocalIdView
View over the localId() of a list of edges.
ItemLocalIdListViewT< Face > FaceLocalIdView
View on the localIds() of a list of faces.
ItemLocalIdListViewT< Cell > CellLocalIdView
View on the localIds() of a list of cells.
Always enables tracing in Arcane parts concerning materials.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
std::int64_t Int64
Signed integer type of 64 bits.
Int32 Integer
Type representing an integer.
ConstArrayView< Int32 > Int32ConstArrayView
C equivalent of a 1D array of 32-bit integers.
eItemKind
Mesh entity type.
std::int16_t Int16
Signed integer type of 16 bits.
Array< Int32 > Int32Array
Dynamic one-dimensional array of 32-bit integers.
std::int32_t Int32
Signed integer type of 32 bits.
Container of views for the connectivity information of a family.
Specific view to manage null entities.