Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
core/materials/MeshEnvironmentVariableRef.h
Aller à la documentation de ce fichier.
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/* MeshEnvironmentVariableRef.h (C) 2000-2024 */
9/* */
10/* Référence à une variable sur un milieu du maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MATERIALS_MESHENVIRONMENTVARIABLEREF_H
13#define ARCANE_MATERIALS_MESHENVIRONMENTVARIABLEREF_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27namespace Arcane::Materials
28{
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
39template <typename DataType_>
42{
43 public:
44
45 using DataType = DataType_;
48 using ItemType = Cell;
50
51 public:
52
53 explicit ARCANE_CORE_EXPORT CellEnvironmentVariableScalarRef(const VariableBuildInfo& vb);
55 explicit ARCANE_CORE_EXPORT CellEnvironmentVariableScalarRef(const MaterialVariableBuildInfo& vb);
56 ARCANE_CORE_EXPORT CellEnvironmentVariableScalarRef(const ThatClass& rhs);
57
58 public:
59
61 ARCANE_CORE_EXPORT ThatClass& operator=(const ThatClass& rhs) = delete;
64
65 public:
66
68 ARCANE_CORE_EXPORT virtual void refersTo(const ThatClass& rhs);
69
73 ARCANE_CORE_EXPORT void updateFromInternal() override;
74
75 protected:
76
77 DataType operator[](MatVarIndex mvi) const
78 {
79 return m_value[mvi.arrayIndex()][mvi.valueIndex()];
80 }
81 DataType& operator[](MatVarIndex mvi)
82 {
83 return m_value[mvi.arrayIndex()][mvi.valueIndex()];
84 }
85
86 public:
87
90 {
91 return this->operator[](mc.localId());
92 }
93
96 {
97 return this->operator[](mc.localId());
98 }
99
102 {
103 return m_value[0][c.localId()];
104 }
105
108 {
109 return m_value[0][c.localId()];
110 }
111
116 ARCANE_CORE_EXPORT DataType envValue(AllEnvCell c,Int32 env_id) const;
117
118 public:
119
120 ARCANE_CORE_EXPORT void fill(const DataType& value);
121 ARCANE_CORE_EXPORT void fillPartialValues(const DataType& value);
122
123 public:
124
126 ARCANE_CORE_EXPORT GlobalVariableRefType& globalVariable();
128 ARCANE_CORE_EXPORT const GlobalVariableRefType& globalVariable() const;
129
130 private:
131
132 PrivatePartType* m_private_part = nullptr;
133 ArrayView<DataType>* m_value = nullptr;
134 ArrayView<ArrayView<DataType>> m_container_value;
135
136 public:
137
138 // TODO: Temporaire. a supprimer.
139 ArrayView<DataType>* _internalValue() const { return m_value; }
140
141 private:
142
143 void _init();
144 void _setContainerView();
145};
146
147/*---------------------------------------------------------------------------*/
148/*---------------------------------------------------------------------------*/
154template<typename DataType_>
157{
158 public:
159
160 using DataType = DataType_;
162 using ItemType = Cell;
165
166 public:
167
168 explicit ARCANE_CORE_EXPORT CellEnvironmentVariableArrayRef(const VariableBuildInfo& vb);
170 explicit ARCANE_CORE_EXPORT CellEnvironmentVariableArrayRef(const MaterialVariableBuildInfo& vb);
171 ARCANE_CORE_EXPORT CellEnvironmentVariableArrayRef(const ThatClass& rhs);
172
173 public:
174
176 ThatClass& operator=(const ThatClass& rhs) = delete;
179
180 public:
181
183 ARCANE_CORE_EXPORT virtual void refersTo(const ThatClass& rhs);
184
188 ARCANE_CORE_EXPORT void updateFromInternal() override;
189
190 public:
191
193 ARCANE_CORE_EXPORT GlobalVariableRefType& globalVariable();
195 ARCANE_CORE_EXPORT const GlobalVariableRefType& globalVariable() const;
196
197 public:
198
205 ARCANE_CORE_EXPORT void resize(Integer dim2_size);
206
207
208 protected:
209
211 {
212 return m_value[mvi.arrayIndex()][mvi.valueIndex()];
213 }
215 {
216 return m_value[mvi.arrayIndex()][mvi.valueIndex()];
217 }
218
219 public:
220
223 {
224 return this->operator[](mc.localId());
225 }
226
229 {
230 return this->operator[](mc.localId());
231 }
232
235 {
236 return m_value[0][c.localId()];
237 }
238
241 {
242 return m_value[0][c.localId()];
243 }
244
245 private:
246
247 PrivatePartType* m_private_part = nullptr;
248 Array2View<DataType>* m_value = nullptr;
249 ArrayView<Array2View<DataType>> m_container_value;
250
251 private:
252
253 void _init();
254 void _setContainerView();
255};
256
257/*---------------------------------------------------------------------------*/
258/*---------------------------------------------------------------------------*/
259
278
279#ifdef ARCANE_64BIT
282#else
285#endif
286
287/*---------------------------------------------------------------------------*/
288/*---------------------------------------------------------------------------*/
289
308
309#ifdef ARCANE_64BIT
312#else
315#endif
316
317/*---------------------------------------------------------------------------*/
318/*---------------------------------------------------------------------------*/
319
320} // End namespace Arcane::Materials
321
322/*---------------------------------------------------------------------------*/
323/*---------------------------------------------------------------------------*/
324
325#endif
326
Maille d'un maillage.
Definition Item.h:1178
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Maille arcane avec info matériaux et milieux.
Variable tableau sur les mailles d'un matériau du maillage. Pour l'instant, cette classe n'est instan...
ThatClass & operator=(const ThatClass &rhs)=delete
Opérateur de recopie (interdit)
GlobalVariableRefType & globalVariable()
Variable globale associée à cette variable matériau.
virtual void refersTo(const ThatClass &rhs)
Positionne la référence de l'instance à la variable rhs.
ArrayView< DataType > operator[](CellLocalId c)
Valeur globale de la variable pour la maille c.
CellEnvironmentVariableArrayRef()=delete
Constructeur vide (interdit)
ArrayView< DataType > operator[](ComponentItemLocalId mc)
Valeur partielle de la variable pour la maille matériau mc.
ConstArrayView< DataType > operator[](CellLocalId c) const
Valeur globale de la variable pour la maille c.
void resize(Integer dim2_size)
Redimensionne le nombre d'éléments du tableau.
ConstArrayView< DataType > operator[](ComponentItemLocalId mc) const
Valeur partielle de la variable pour la maille matériau mc.
Variable scalaire sur les mailles d'un milieu du maillage.
DataType envValue(AllEnvCell c, Int32 env_id) const
Valeur de la variable pour le milieu d'index env_id de la maille ou 0 si absent de la maille.
ThatClass & operator=(const ThatClass &rhs)=delete
Opérateur de recopie (interdit)
void fillPartialValues(const DataType &value)
Remplit les valeurs partielles de la variable avec la valeur value.
DataType operator[](CellLocalId c) const
Valeur globale de la variable pour la maille c.
GlobalVariableRefType & globalVariable()
Variable globale associée à cette variable matériau.
virtual void refersTo(const ThatClass &rhs)
Positionne la référence de l'instance à la variable rhs.
CellEnvironmentVariableScalarRef()=delete
Constructeur vide (interdit)
DataType operator[](ComponentItemLocalId mc) const
Valeur partielle de la variable pour la maille matériau mc.
DataType & operator[](ComponentItemLocalId mc)
Valeur partielle de la variable pour la maille matériau mc.
DataType & operator[](CellLocalId c)
Valeur globale de la variable pour la maille c.
void fill(const DataType &value)
Remplit les valeurs partielles et globales de la variable avec la valeur value.
Index d'un Item matériaux dans une variable.
Représente un index sur les variables matériaux et milieux.
Classe de base des références aux variables matériaux.
Paramètres nécessaires à la construction d'une variable.
Active toujours les traces dans les parties Arcane concernant les matériaux.
CellEnvironmentVariableArrayRef< Int16 > EnvironmentVariableCellArrayInt16
Variable milieu de type tableau de Int16
CellEnvironmentVariableArrayRef< Int32 > EnvironmentVariableCellArrayInt32
Variable milieu de type tableau de Int32
CellEnvironmentVariableScalarRef< Int16 > EnvironmentVariableCellInt16
Variable milieu de type Int16
CellEnvironmentVariableArrayRef< Real3 > EnvironmentVariableCellArrayReal3
Variable milieu de type tableau de Real3
CellEnvironmentVariableScalarRef< Int64 > EnvironmentVariableCellInt64
Variable milieu de type Int64
CellEnvironmentVariableScalarRef< Real2 > EnvironmentVariableCellReal2
Variable milieu de type Real2
CellEnvironmentVariableScalarRef< Real2x2 > EnvironmentVariableCellReal2x2
Variable milieu de type Real2x2
CellEnvironmentVariableScalarRef< Real3x3 > EnvironmentVariableCellReal3x3
Variable milieu de type Real3x3
CellEnvironmentVariableArrayRef< Real > EnvironmentVariableCellArrayReal
Variable milieu de type tableau de Real
CellEnvironmentVariableArrayRef< Real2x2 > EnvironmentVariableCellArrayReal2x2
Variable milieu de type tableau de Real2x2
EnvironmentVariableCellInt32 EnvironmentVariableCellInteger
Variable milieu de type #Integer
EnvironmentVariableCellInt32 EnvironmentVariableCellArrayInteger
Variable milieu de type tableau de #Integer
CellEnvironmentVariableScalarRef< Real > EnvironmentVariableCellReal
Variable milieu de type Real
CellEnvironmentVariableArrayRef< Real2 > EnvironmentVariableCellArrayReal2
Variable milieu de type tableau de Real2
CellEnvironmentVariableArrayRef< Real3x3 > EnvironmentVariableCellArrayReal3x3
Variable milieu de type tableau de Real3x3
CellEnvironmentVariableArrayRef< Byte > EnvironmentVariableCellArrayByte
Variable milieu de type tableau de Byte
CellEnvironmentVariableScalarRef< Int32 > EnvironmentVariableCellInt32
Variable milieu de type Int32
CellEnvironmentVariableScalarRef< Real3 > EnvironmentVariableCellReal3
Variable milieu de type Real3
CellEnvironmentVariableScalarRef< Byte > EnvironmentVariableCellByte
Variable milieu de type Byte
CellEnvironmentVariableArrayRef< Int64 > EnvironmentVariableCellArrayInt64
Variable milieu de type tableau de Int64