Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
core/materials/ComponentPartItemVectorView.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2024 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* ComponentPartItemVectorView.h (C) 2000-2024 */
9/* */
10/* Vue sur un vecteur sur une partie des entités composants. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_MATERIALS_COMPONENTPARTITEMVECTORVIEW_H
13#define ARCANE_CORE_MATERIALS_COMPONENTPARTITEMVECTORVIEW_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/ArrayView.h"
18
19#include "arcane/core/materials/MaterialsCoreGlobal.h"
20#include "arcane/core/materials/ComponentItemInternal.h"
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
25namespace Arcane::Materials
26{
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
34class ARCANE_CORE_EXPORT ComponentPartItemVectorView
35{
36 friend class MeshComponentPartData;
37 friend class ComponentPartCellEnumerator;
38
39 protected:
40
53 eMatPart part)
54 : m_component(component)
55 , m_component_part_index(component_part_index)
56 , m_value_indexes(value_indexes)
57 , m_item_indexes(item_indexes)
58 , m_constituent_list_view(constituent_list_view)
59 , m_part(part)
60 {
61 }
62
63 public:
64
67
68 public:
69
71 Integer nbItem() const { return m_value_indexes.size(); }
72
74 IMeshComponent* component() const { return m_component; }
75
76 // Index de la partie de ce composant (équivalent à MatVarIndex::arrayIndex()).
77 Int32 componentPartIndex() const { return m_component_part_index; }
78
80 Int32ConstArrayView valueIndexes() const { return m_value_indexes; }
81
83 Int32ConstArrayView itemIndexes() const { return m_item_indexes; }
84
86 eMatPart part() const { return m_part; }
87
88 protected:
89
91 const ConstituentItemLocalIdListView& constituentItemListView() const { return m_constituent_list_view; }
92
93 private:
94
96 IMeshComponent* m_component = nullptr;
97
99 Int32 m_component_part_index = -1;
100
103
106
109
111 eMatPart m_part = eMatPart::Pure;
112};
113
114/*---------------------------------------------------------------------------*/
115/*---------------------------------------------------------------------------*/
143
144/*---------------------------------------------------------------------------*/
145/*---------------------------------------------------------------------------*/
175
176/*---------------------------------------------------------------------------*/
177/*---------------------------------------------------------------------------*/
178
179/*---------------------------------------------------------------------------*/
180/*---------------------------------------------------------------------------*/
185class ARCANE_CORE_EXPORT MatPartItemVectorView
187{
188 public:
189
194
195 public:
196
198 IMeshMaterial* material() const { return m_material; }
199
200 private:
201
202 IMeshMaterial* m_material = nullptr;
203};
204
205/*---------------------------------------------------------------------------*/
206/*---------------------------------------------------------------------------*/
211class ARCANE_CORE_EXPORT MatPurePartItemVectorView
213{
214 public:
215
221
222 public:
223
224 operator ComponentPurePartItemVectorView() const
225 {
226 return { component(), valueIndexes(),
227 itemIndexes(), constituentItemListView() };
228 }
229};
230
231/*---------------------------------------------------------------------------*/
232/*---------------------------------------------------------------------------*/
237class ARCANE_CORE_EXPORT MatImpurePartItemVectorView
239{
240 public:
241
247
248 public:
249
250 operator ComponentImpurePartItemVectorView() const
251 {
252 return { component(), componentPartIndex(),
253 valueIndexes(),
254 itemIndexes(), constituentItemListView() };
255 }
256};
257
258/*---------------------------------------------------------------------------*/
259/*---------------------------------------------------------------------------*/
260
261/*---------------------------------------------------------------------------*/
262/*---------------------------------------------------------------------------*/
267class ARCANE_CORE_EXPORT EnvPartItemVectorView
269{
270 public:
271
276
277 public:
278
280 IMeshEnvironment* environment() const { return m_environment; }
281
282 private:
283
284 IMeshEnvironment* m_environment = nullptr;
285};
286
287/*---------------------------------------------------------------------------*/
288/*---------------------------------------------------------------------------*/
293class ARCANE_CORE_EXPORT EnvPurePartItemVectorView
295{
296 public:
297
303
304 public:
305
306 operator ComponentPurePartItemVectorView() const
307 {
308 return { component(), valueIndexes(),
309 itemIndexes(), constituentItemListView() };
310 }
311};
312
313/*---------------------------------------------------------------------------*/
314/*---------------------------------------------------------------------------*/
319class ARCANE_CORE_EXPORT EnvImpurePartItemVectorView
321{
322 public:
323
329
330 public:
331
332 operator ComponentImpurePartItemVectorView() const
333 {
334 return { component(), componentPartIndex(),
335 valueIndexes(),
336 itemIndexes(), constituentItemListView() };
337 }
338};
339
340/*---------------------------------------------------------------------------*/
341/*---------------------------------------------------------------------------*/
342
343} // End namespace Arcane::Materials
344
345/*---------------------------------------------------------------------------*/
346/*---------------------------------------------------------------------------*/
347
348#endif
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
ComponentImpurePartItemVectorView()=default
Construit une vue non initialisée.
ComponentImpurePartItemVectorView(IMeshComponent *component, Int32 component_part_index, Int32ConstArrayView value_indexes, Int32ConstArrayView item_indexes, const ConstituentItemLocalIdListView &constituent_list_view)
Construit une vue sur une partie des entité du composant component.
Enumérateur sur une sous-partie (pure ou partielle) d'un sous-ensemble des mailles d'un composant (ma...
Vue sur une partie pure ou partielles des entités d'un composant.
ComponentPartItemVectorView()=default
Construit une vue non initialisée.
Int32ConstArrayView itemIndexes() const
Liste des indices dans itemsInternal() des entités.
ConstituentItemLocalIdListView m_constituent_list_view
Liste des ComponentItemInternal* pour ce constituant.
Int32ConstArrayView m_value_indexes
Liste des valueIndex() de la partie.
const ConstituentItemLocalIdListView & constituentItemListView() const
Tableau parties internes des entités.
ComponentPartItemVectorView(IMeshComponent *component, Int32 component_part_index, Int32ConstArrayView value_indexes, Int32ConstArrayView item_indexes, const ConstituentItemLocalIdListView &constituent_list_view, eMatPart part)
Construit une vue sur une partie des entité du composant component.
Int32ConstArrayView m_item_indexes
Liste des indices dans m_items_internal de chaque maille matériau.
Int32ConstArrayView valueIndexes() const
Liste des valueIndex() de la partie.
ComponentPurePartItemVectorView()=default
Construit une vue non initialisée.
ComponentPurePartItemVectorView(IMeshComponent *component, Int32ConstArrayView value_indexes, Int32ConstArrayView item_indexes, const ConstituentItemLocalIdListView &constituent_list_view)
Construit une vue sur une partie des entité du composant component.
Vue sur une instance de ConstituentItemLocalIdList.
EnvImpurePartItemVectorView(IMeshEnvironment *env, const ComponentImpurePartItemVectorView &view)
Construit une vue pour le milieu env.
Vue sur une partie pure ou partielles des entités d'un milieu.
EnvPartItemVectorView()=default
Construit une vue non initialisée.
EnvPurePartItemVectorView(IMeshEnvironment *env, const ComponentPurePartItemVectorView &view)
Construit une vue pour le milieu env.
Interface d'un composant (matériau ou milieu) d'un maillage.
Interface d'un matériau d'un maillage.
Vue sur la partie impure des entités d'un matériau.
MatImpurePartItemVectorView(IMeshMaterial *material, const ComponentImpurePartItemVectorView &view)
Construit une vue pour le matériau material.
Vue sur une partie pure ou partielles des entités d'un matériau.
MatPartItemVectorView()=default
Construit une vue non initialisée.
Vue sur la partie pure des entités d'un matériau.
MatPurePartItemVectorView(IMeshMaterial *material, const ComponentPurePartItemVectorView &view)
Construit une vue pour le matériau material.
Données d'une partie (pure ou partielle) d'un constituant.
Vue constante d'un tableau de type T.
Active toujours les traces dans les parties Arcane concernant les matériaux.
eMatPart
Partie d'un composant.