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
37class MatCommandContainerBase;
53 friend class ConstituentItemVectorImpl;
60 friend ArcaneTest::MeshMaterialTesterModule;
61 friend ArcaneTest::MaterialHeatTestModule;
62 template <
typename ViewType,
typename LambdaType>
64 template <
typename DataType>
friend class
76 ConstituentItemLocalIdListView constituent_local_ids,
78 : m_matvar_indexes_view(mvi)
79 , m_constituent_list_view(constituent_local_ids)
80 , m_items_local_id_view(local_ids)
81 , m_component(component)
87 : m_component(component)
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)
96 , m_component(component)
103 Integer
nbItem()
const {
return m_matvar_indexes_view.size(); }
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;
160 friend class MeshMaterial;
161 template <
typename ViewType,
typename LambdaType>
172 ConstituentItemLocalIdListView constituent_local_ids,
202 return _subView(begin, size);
217 friend class MeshEnvironment;
218 template <
typename ViewType,
typename LambdaType>
229 ConstituentItemLocalIdListView constituent_local_ids,
Enumérateur sur une partie des mailles d'un composant (matériau ou milieu)
Représente un composant d'une maille multi-matériau.
Vue sur un vecteur sur les entités d'un composant.
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.
Vecteur sur les entités d'un composant.
Enumérateur sur les mailles d'un milieu.
Vecteur sur les entités d'un milieu.
Maille arcane d'un milieu.
Vue sur un vecteur sur les entités d'un milieu.
__host__ __device__ EnvCell envCell(Int32 index) const
Récupère la index-ème EnvCell de la vue.
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.
Fonctor sur un interval d'itération instancié via une lambda fonction.
Enumérateur sur une partie des mailles d'un seul matériau.
Vecteur sur les entités d'un matériau.
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.
Caractéristiques pour une variable matériaux tableau.
Vue constante d'un tableau de type T.
Active toujours les traces dans les parties Arcane concernant les matériaux.