12#ifndef ARCANE_CORE_MATERIALS_COMPONENTITEMVECTORVIEW_H
13#define ARCANE_CORE_MATERIALS_COMPONENTITEMVECTORVIEW_H
17#include "arcane/utils/TraceAccessor.h"
18#include "arcane/utils/ArrayView.h"
20#include "arcane/core/ItemGroup.h"
22#include "arcane/core/materials/MatVarIndex.h"
23#include "arcane/core/materials/IMeshComponent.h"
24#include "arcane/core/materials/ComponentItemInternal.h"
25#include "arcane/core/materials/MatItem.h"
32class MeshMaterialTesterModule;
33class MaterialHeatTestModule;
35namespace Arcane::Accelerator::impl
50class ARCANE_CORE_EXPORT ComponentItemVectorView
52 friend class ComponentItemVector;
53 friend class ConstituentItemVectorImpl;
54 friend class MatItemVectorView;
55 friend class EnvItemVectorView;
56 friend class MatCellEnumerator;
57 friend class EnvCellEnumerator;
58 friend class ComponentCellEnumerator;
60 friend ArcaneTest::MeshMaterialTesterModule;
61 friend ArcaneTest::MaterialHeatTestModule;
62 template <
typename ViewType,
typename LambdaType>
63 friend class LambdaMatItemRangeFunctorT;
64 template <
typename DataType>
friend class
65 MaterialVariableArrayTraits;
69 ComponentItemVectorView() =
default;
78 : m_matvar_indexes_view(mvi)
79 , m_constituent_list_view(constituent_local_ids)
80 , m_items_local_id_view(local_ids)
93 : m_matvar_indexes_view(rhs_view.m_matvar_indexes_view)
94 , m_constituent_list_view(rhs_view.m_constituent_list_view)
95 , m_items_local_id_view(rhs_view.m_items_local_id_view)
111 return m_constituent_list_view._constituenItemBase(index);
122 ConstituentItemLocalIdListView _constituentItemListView()
const {
return m_constituent_list_view; }
129 ComponentItemVectorView _subView(Integer begin, Integer size);
132 bool _isSamePointerData(
const ComponentItemVectorView& rhs)
const
134 bool test1 = m_constituent_list_view._isSamePointerData(rhs.m_constituent_list_view);
135 return test1 && (m_matvar_indexes_view.data() == rhs.m_matvar_indexes_view.data());
143 ConstArrayView<MatVarIndex> m_matvar_indexes_view;
144 ConstituentItemLocalIdListView m_constituent_list_view;
145 ConstArrayView<Int32> m_items_local_id_view;
146 IMeshComponent* m_component =
nullptr;
156class ARCANE_CORE_EXPORT MatItemVectorView
157:
public ComponentItemVectorView
159 friend class MatCellVector;
160 friend class MeshMaterial;
161 template <
typename ViewType,
typename LambdaType>
162 friend class LambdaMatItemRangeFunctorT;
166 MatItemVectorView() =
default;
174 : ComponentItemVectorView(
component, mv_indexes, constituent_local_ids, local_ids)
202 return _subView(begin, size);
213class ARCANE_CORE_EXPORT EnvItemVectorView
214:
public ComponentItemVectorView
216 friend class EnvCellVector;
217 friend class MeshEnvironment;
218 template <
typename ViewType,
typename LambdaType>
219 friend class LambdaMatItemRangeFunctorT;
223 EnvItemVectorView() =
default;
231 : ComponentItemVectorView(
component, mv_indexes, constituent_local_ids, local_ids)
Vue constante d'un tableau de type T.
IMeshComponent * component() const
Composant associé
ComponentItemVectorView(IMeshComponent *component)
Construit une vue vide pour le composant component.
ComponentItemVectorView(IMeshComponent *component, ComponentItemVectorView rhs_view)
Construit une vue à partir d'une autre vue.
ComponentItemVectorView(IMeshComponent *component, ConstArrayView< MatVarIndex > mvi, ConstituentItemLocalIdListView constituent_local_ids, ConstArrayView< Int32 > local_ids)
Construit un vecteur contenant les entités de group pour le composant component.
__host__ __device__ ComponentCell componentCell(Int32 index) const
Retourne la index-ème ComponentCell de la vue.
Integer nbItem() const
Nombre d'entités dans la vue.
Maille arcane d'un milieu.
__host__ __device__ EnvCell envCell(Int32 index) const
Récupère la index-ème EnvCell de la vue.
IMeshEnvironment * environment() const
Milieu associé
Interface d'un composant (matériau ou milieu) d'un maillage.
Interface d'un milieu d'un maillage.
Interface d'un matériau d'un maillage.
Représente un matériau d'une maille multi-matériau.
Vue sur un vecteur sur les entités d'un matériau.
__host__ __device__ MatCell matCell(Int32 index) const
Récupère la index-ème MatCell de la vue.
IMeshMaterial * material() const
Matériau associé
Active toujours les traces dans les parties Arcane concernant les matériaux.
Int32 Integer
Type représentant un entier.
std::int32_t Int32
Type entier signé sur 32 bits.