Arcane  v3.14.10.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
43
44 public:
45
46 void resize(Int32 new_size);
47
48 public:
49
50 void setConstituentItem(Int32 index, ConstituentItemIndex id)
51 {
52 m_constituent_item_index_list[index] = id;
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 {
74 return m_constituent_item_index_list;
75 }
76 SmallSpan<ConstituentItemIndex> mutableLocalIds()
77 {
78 return m_constituent_item_index_list.view();
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 {
86 return m_constituent_item_index_list[index];
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
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Informations partagées sur les 'ComponentItem'.
Index d'une entité constituant dans la liste des entités constituants.
Vue sur une instance de ConstituentItemLocalIdList.
Liste d'indices locaux pour les 'ComponentItemInternal'.
UniqueArray< ConstituentItemIndex > m_constituent_item_index_list
Liste des ConstituentItemIndex pour ce constituant.
Implémentation de ComponentItemVector.
Représente un index sur les variables matériaux et milieux.
Informations générique sur une entité d'un constituant.
Chaîne de caractères unicode.
Active toujours les traces dans les parties Arcane concernant les matériaux.