Arcane  v3.16.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ConstituentItemLocalIdList.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/* ConstituentItemLocalIdList.h (C) 2000-2024 */
9/* */
10/* Gestion des listes d'identifiants locaux de 'ComponentItemInternal'. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_MATERIALS_INTERNAL_CONSTITUENTITEMLOCALIDLIST_H
13#define ARCANE_CORE_MATERIALS_INTERNAL_CONSTITUENTITEMLOCALIDLIST_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/TraceAccessor.h"
18#include "arcane/utils/Array.h"
19
21#include "arcane/core/materials/ComponentItemInternal.h"
22
23/*---------------------------------------------------------------------------*/
24/*---------------------------------------------------------------------------*/
25
26namespace Arcane::Materials
27{
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
35class ARCANE_CORE_EXPORT ConstituentItemLocalIdList
36{
37 // Pour accéder en écriture à m_constituent_item_index_list
38 friend class ConstituentItemVectorImpl;
39
40 public:
41
42 ConstituentItemLocalIdList(ComponentItemSharedInfo* shared_info, const String& debug_name);
43
44 public:
45
46 void resize(Int32 new_size);
47
48 public:
49
50 void setConstituentItem(Int32 index, ConstituentItemIndex id)
51 {
53 }
54
56 {
57 const Int32 size = ids.size();
58 resize(size);
59 for (Int32 i = 0; i < size; ++i)
60 setConstituentItem(i, ids[i]);
61 }
62
63 void copy(const ConstituentItemLocalIdListView& view)
64 {
65 m_shared_info = view.m_component_shared_info;
66 const Int32 size = view.m_ids.size();
67 resize(size);
68 for (Int32 i = 0; i < size; ++i)
69 setConstituentItem(i, view.m_ids[i]);
70 }
71
73 {
75 }
76 SmallSpan<ConstituentItemIndex> mutableLocalIds()
77 {
79 }
80 matimpl::ConstituentItemBase itemBase(Int32 index) const
81 {
82 return m_shared_info->_item(localId(index));
83 }
84 ConstituentItemIndex localId(Int32 index) const
85 {
87 }
88
89 MatVarIndex variableIndex(Int32 index) const
90 {
91 return m_shared_info->_varIndex(localId(index));
92 }
93
95 {
96 return { m_shared_info, m_constituent_item_index_list };
97 }
98
99 private:
100
101 SmallSpan<ConstituentItemIndex> _mutableItemIndexList() { return m_constituent_item_index_list.smallSpan(); }
102
105
106 ComponentItemSharedInfo* m_shared_info = nullptr;
107};
108
109/*---------------------------------------------------------------------------*/
110/*---------------------------------------------------------------------------*/
111
112} // namespace Arcane::Materials
113
114/*---------------------------------------------------------------------------*/
115/*---------------------------------------------------------------------------*/
116
117#endif
Vue constante d'un tableau de type T.
constexpr Integer size() const noexcept
Nombre d'éléments du tableau.
Index d'une entité constituant dans la liste des entités constituants.
Vue sur une instance de ConstituentItemLocalIdList.
UniqueArray< ConstituentItemIndex > m_constituent_item_index_list
Liste des ConstituentItemIndex pour ce constituant.
Représente un index sur les variables matériaux et milieux.
Informations génériques sur une entité d'un constituant.
Vue d'un tableau d'éléments de type T.
Definition Span.h:673
Chaîne de caractères unicode.
Vecteur 1D de données avec sémantique par valeur (style STL).
Active toujours les traces dans les parties Arcane concernant les matériaux.
std::int32_t Int32
Type entier signé sur 32 bits.