12#ifndef ARCANE_CORE_ITEMCONNECTIVITYCONTAINERVIEW_H
13#define ARCANE_CORE_ITEMCONNECTIVITYCONTAINERVIEW_H
20#include "arcane/core/ItemLocalId.h"
42class ARCANE_CORE_EXPORT ItemConnectivityContainerView
46 friend ItemInternalConnectivityList;
47 friend IndexedItemConnectivityViewBase;
48 friend IndexedItemConnectivityViewBase2;
50 template <
typename ItemType1,
typename ItemType2>
51 friend class IndexedItemConnectivityGenericViewT;
55 ItemConnectivityContainerView() =
default;
59 : m_list_data(_list.
data())
60 , m_indexes(_indexes.
data())
61 , m_nb_connected_items(_nb_connected_item.
data())
62 , m_list_data_size(_list.
size())
63 , m_nb_item(_nb_connected_item.
size())
66 _checkSize(_indexes.
size(), _nb_connected_item.
size());
77 void checkSame(ItemConnectivityContainerView rhs)
const;
82 template <
typename ItemType>
constexpr ARCCORE_HOST_DEVICE
86 ARCANE_CHECK_AT(lid.localId(), m_nb_item);
87 Int32 x = m_indexes[lid];
88 ARCANE_CHECK_AT(x, m_list_data_size);
89 auto* p = &m_list_data[x];
91 return { p, m_nb_connected_items[lid], 0 };
95 template <
typename ItemLocalIdType>
constexpr ARCCORE_HOST_DEVICE
99 ARCANE_CHECK_AT(lid.localId(), m_nb_item);
100 Int32 x = m_indexes[lid] + index;
101 ARCANE_CHECK_AT(x, m_list_data_size);
102 return ItemLocalIdType(m_list_data[x]);
107 indexes()
const {
return { m_indexes, m_nb_item }; }
114 constexpr ARCCORE_HOST_DEVICE
Int32 nbItem()
const {
return m_nb_item; }
118 Int32* m_list_data =
nullptr;
119 const Int32* m_indexes =
nullptr;
120 const Int32* m_nb_connected_items =
nullptr;
121 Int32 m_list_data_size = 0;
126 void _checkSize(
Int32 indexes_size,
Int32 nb_connected_item_size);
132 ARCCORE_HOST_DEVICE
void _setParticleCellId(
ItemLocalId particle_lid, CellLocalId cell_lid)
const
134 ARCANE_CHECK_AT(particle_lid.localId(), m_nb_item);
135 m_list_data[m_indexes[particle_lid]] = cell_lid;
Déclarations de types sur les entités.
Types et fonctions associés aux classes SpanImpl, SmallSpan and Span.
constexpr __host__ __device__ Int32 nbItem() const
Nombre d'entités.
constexpr __host__ __device__ SmallSpan< const Int32 > nbConnectedItems() const
Tableau du nombre d'entités connectées à une autre entité.
void checkSame(ItemConnectivityContainerView rhs) const
Vérifie que les deux instances this et rhs ont les mêmes valeurs.
constexpr __host__ __device__ ItemLocalIdType itemId(ItemLocalId lid, Int32 index) const
index-ème entité connectée à l'entité de localId() lid
constexpr __host__ __device__ ItemLocalIdListViewT< ItemType > itemsIds(ItemLocalId lid) const
Liste des entités connectées à l'entité de localId() lid.
constexpr __host__ __device__ SmallSpan< const Int32 > indexes() const
Tableau des indices dans la table de connectivités.
Informations de connectivité, pour une famille d'entité, permettant la transition entre les anciennes...
Vue typée sur une liste d'entités d'une connectivité.
Index d'un Item dans une variable.
Vue modifiable sur une connectivité Particle->Cell.
Vue d'un tableau d'éléments de type T.
constexpr __host__ __device__ pointer data() const noexcept
Pointeur sur le début de la vue.
constexpr __host__ __device__ SizeType size() const noexcept
Retourne la taille du tableau.
Classe de base pour les connectivités incrémentales item->item[].
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
std::int32_t Int32
Type entier signé sur 32 bits.