Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
core/materials/MeshMaterialVariableRef.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/* MeshMaterialVariableRef.h (C) 2000-2024 */
9/* */
10/* Référence à une variable sur un matériau du maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MATERIALS_MESHMATERIALVARIABLEREF_H
13#define ARCANE_MATERIALS_MESHMATERIALVARIABLEREF_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16/*!
17 * \file MeshMaterialVariableRef.h
18 *
19 * Ce fichier contient les différents types gérant les références
20 * sur les variables matériaux.
21 */
22#include "arcane/utils/NotImplementedException.h"
23#include "arcane/utils/Array2View.h"
24
25#include "arcane/Item.h"
26#include "arcane/VariableRef.h"
27
28#include "arcane/core/materials/IMeshMaterialVariable.h"
30#include "arcane/core/materials/MeshMaterialVariableComputeFunction.h"
31#include "arcane/core/materials/IScalarMeshMaterialVariable.h"
32#include "arcane/core/materials/IArrayMeshMaterialVariable.h"
33
34/*---------------------------------------------------------------------------*/
35/*---------------------------------------------------------------------------*/
36
37namespace Arcane::Materials
38{
39
40/*---------------------------------------------------------------------------*/
41/*---------------------------------------------------------------------------*/
42/*!
43 * \ingroup ArcaneMaterials
44 * \brief Classe de base des références aux variables matériaux.
45 */
46class ARCANE_CORE_EXPORT MeshMaterialVariableRef
47{
48 public:
50 {
51 public:
52
53 explicit Enumerator(const IMeshMaterialVariable* vp)
54 : m_vref(vp->firstReference())
55 {
56 }
57 void operator++()
58 {
59 m_vref = m_vref->nextReference();
60 }
62 {
63 return m_vref;
64 }
65 bool hasNext() const
66 {
67 return m_vref;
68 }
69
70 private:
71
72 MeshMaterialVariableRef* m_vref = nullptr;
73 };
74
75 public:
76
79
80 public:
81
82 //! Référence précédente (ou null) sur variable()
83 MeshMaterialVariableRef* previousReference();
84
85 //! Référence suivante (ou null) sur variable()
86 MeshMaterialVariableRef* nextReference();
87
88 /*!
89 * \internal
90 * \brief Positionne la référence précédente.
91 *
92 * For internal use only.
93 */
94 void setPreviousReference(MeshMaterialVariableRef* v);
95
96 /*!
97 * \internal
98 * \brief Positionne la référence suivante.
99 *
100 * For internal use only.
101 */
102 void setNextReference(MeshMaterialVariableRef* v);
103
104 //! Enregistre la variable (interne)
105 void registerVariable();
106
107 //! Supprime l'enregistrement de la variable (interne)
108 void unregisterVariable();
109
110 virtual void updateFromInternal() =0;
111
112 //! Variable matériau associée.
113 IMeshMaterialVariable* materialVariable() const { return m_material_variable; }
114
115 //! Synchronise les valeurs entre les sous-domaines
116 void synchronize();
117
118 //! Ajoute cette variable à la liste des synchronisations \a sync_list.
119 void synchronize(MeshMaterialVariableSynchronizerList& sync_list);
120
121 //! Espace de définition de la variable (matériau+milieu ou milieu uniquement)
122 MatVarSpace space() const { return m_material_variable->space(); }
123
124 /*!
125 * \brief Remplit les valeurs partielles avec la valeur de la maille du dessus.
126 * Si \a level vaut LEVEL_MATERIAL, copie les valeurs matériaux avec celle du milieu.
127 * Si \a level vaut LEVEL_ENVIRONNEMENT, copie les valeurs des milieux avec
128 * celui de la maille globale.
129 * Si \a level vaut LEVEL_ALLENVIRONMENT, remplit toutes les valeurs partielles
130 * avec celle de la maille globale (cela rend cette méthode équivalente à
131 * fillGlobalValuesWithGlobalValues().
132 */
134 {
135 m_material_variable->fillPartialValuesWithSuperValues(level);
136 }
137
138 public:
139
140 // Fonctions issues de VariableRef. A terme, il faudra que la variable
141 // materiau dérive de la variable classique.
142 //@{ Fonctions issues de VariablesRef. Ces fonctions s'appliquent sur la variable globale associée.
143 String name() const;
144 void setUpToDate();
145 bool isUsed() const;
146 void update();
147 void addDependCurrentTime(const VariableRef& var);
148 void addDependCurrentTime(const VariableRef& var,const TraceInfo& tinfo);
149 void addDependCurrentTime(const MeshMaterialVariableRef& var);
150 void addDependPreviousTime(const MeshMaterialVariableRef& var);
151 void removeDepend(const MeshMaterialVariableRef& var);
152 template<typename ClassType> void
153 setComputeFunction(ClassType* instance,void (ClassType::*func)())
154 { m_global_variable->setComputeFunction(new VariableComputeFunction(instance,func)); }
155 //@}
156
157 //! Fonctions pour gérer les dépendances sur la partie matériau de la variable.
158 //@{
159 void setUpToDate(IMeshMaterial*);
160 void update(IMeshMaterial*);
161 void addMaterialDepend(const VariableRef& var);
162 void addMaterialDepend(const VariableRef& var,const TraceInfo& tinfo);
163 void addMaterialDepend(const MeshMaterialVariableRef& var);
164 void addMaterialDepend(const MeshMaterialVariableRef& var,const TraceInfo& tinfo);
165 template<typename ClassType> void
166 setMaterialComputeFunction(ClassType* instance,void (ClassType::*func)(IMeshMaterial*))
167 { m_material_variable->setComputeFunction(new MeshMaterialVariableComputeFunction(instance,func)); }
168 //@}
169
170 protected:
171
172 void _internalInit(IMeshMaterialVariable* mat_variable);
173 bool _isRegistered() const { return m_is_registered; }
174
175 private:
176
177 //! Variable associée
178 IMeshMaterialVariable* m_material_variable;
179
180 //! Référence précédente sur \a m_variable
181 MeshMaterialVariableRef* m_previous_reference;
182
183 //! Référence suivante sur \a m_variable
184 MeshMaterialVariableRef* m_next_reference;
185
186 //! Variable globale associée
187 IVariable* m_global_variable;
188
189 bool m_is_registered;
190
191 private:
192 void _checkValid() const
193 {
194#ifdef ARCANE_CHECK
195 if (!m_material_variable)
196 _throwInvalid();
197#endif
198 }
199 void _throwInvalid() const;
200};
201
202/*---------------------------------------------------------------------------*/
203/*---------------------------------------------------------------------------*/
204/*!
205 * \ingroup ArcaneMaterials
206 * \brief Variable scalaire sur les mailles d'un matériau du maillage.
207 * Pour l'instant, cette classe n'est instanciée que pour les mailles
208 */
209template<typename DataType_>
212{
213 public:
214
215 using DataType = DataType_;
216 using PrivatePartType = IScalarMeshMaterialVariable<Cell, DataType>;
217 using ItemType = Cell;
218 using GlobalVariableRefType = MeshVariableScalarRefT<ItemType, DataType>;
220
221 public:
222
223 explicit ARCANE_CORE_EXPORT CellMaterialVariableScalarRef(const VariableBuildInfo& vb);
224 //! Construit une référence à la variable spécifiée dans \a vb
225 explicit ARCANE_CORE_EXPORT CellMaterialVariableScalarRef(const MaterialVariableBuildInfo& vb);
226 ARCANE_CORE_EXPORT CellMaterialVariableScalarRef(const ThatClass& rhs);
227
228 public:
229
230 //! Opérateur de recopie (interdit)
231 ARCANE_CORE_EXPORT ThatClass& operator=(const ThatClass& rhs) = delete;
232 //! Constructeur vide (interdit)
234
235 public:
236
237 //! Positionne la référence de l'instance à la variable \a rhs.
238 ARCANE_CORE_EXPORT virtual void refersTo(const ThatClass& rhs);
239
240 /*!
241 * \internal
242 */
243 ARCANE_CORE_EXPORT void updateFromInternal() override;
244
245 protected:
246
247 DataType operator[](MatVarIndex mvi) const
248 {
249 return m_value[mvi.arrayIndex()][mvi.valueIndex()];
250 }
251 DataType& operator[](MatVarIndex mvi)
252 {
253 return m_value[mvi.arrayIndex()][mvi.valueIndex()];
254 }
255
256 public:
257
258 //! Valeur partielle de la variable pour la maille matériau \a mc
260 {
261 return this->operator[](mc.localId());
262 }
263
264 //! Valeur partielle de la variable pour la maille matériau \a mc
266 {
267 return this->operator[](mc.localId());
268 }
269
270 //! Valeur partielle de la variable pour l'itérateur \a mc
272 {
273 return this->operator[](mc._varIndex());
274 }
275
276 //! Valeur partielle de la variable pour l'itérateur \a mc
278 {
279 return this->operator[](mc._varIndex());
280 }
281
282 //! Valeur globale de la variable pour la maille \a c
283 DataType operator[](CellLocalId c) const
284 {
285 return m_value[0][c.localId()];
286 }
287
288 //! Valeur globale de la variable pour la maille \a c
290 {
291 return m_value[0][c.localId()];
292 }
293
294 //! Valeur de la variable pour la maille matériau \a mvi
295 DataType operator[](PureMatVarIndex mvi) const
296 {
297 return m_value[0][mvi.valueIndex()];
298 }
299
300 //! Valeur de la variable pour la maille matériau \a mvi
302 {
303 return m_value[0][mvi.valueIndex()];
304 }
305
306 /*!
307 * \brief Valeur de la variable pour le matériau d'index \a mat_id de
308 * la maille \a ou 0 si absent de la maille.
309 */
310 ARCANE_CORE_EXPORT DataType matValue(AllEnvCell c,Int32 mat_id) const;
311
312 /*!
313 * \brief Valeur de la variable pour le milieu d'index \a env_id de
314 * la maille \a ou 0 si absent de la maille.
315 */
316 ARCANE_CORE_EXPORT DataType envValue(AllEnvCell c,Int32 env_id) const;
317
318 public:
319
320 ARCANE_CORE_EXPORT void fillFromArray(IMeshMaterial* mat,ConstArrayView<DataType> values);
321 ARCANE_CORE_EXPORT void fillFromArray(IMeshMaterial* mat,ConstArrayView<DataType> values,Int32ConstArrayView indexes);
322 ARCANE_CORE_EXPORT void fillToArray(IMeshMaterial* mat,ArrayView<DataType> values);
323 ARCANE_CORE_EXPORT void fillToArray(IMeshMaterial* mat,ArrayView<DataType> values,Int32ConstArrayView indexes);
324 ARCANE_CORE_EXPORT void fillToArray(IMeshMaterial* mat,Array<DataType>& values);
325 ARCANE_CORE_EXPORT void fillToArray(IMeshMaterial* mat,Array<DataType>& values,Int32ConstArrayView indexes);
326 ARCANE_CORE_EXPORT void fill(const DataType& value);
327 ARCANE_CORE_EXPORT void fillPartialValues(const DataType& value);
328
329 public:
330
331 //! Variable globale associée à cette variable matériau
332 ARCANE_CORE_EXPORT GlobalVariableRefType& globalVariable();
333 //! Variable globale associée à cette variable matériau
334 ARCANE_CORE_EXPORT const GlobalVariableRefType& globalVariable() const;
335
336 private:
337
338 PrivatePartType* m_private_part = nullptr;
339 ArrayView<DataType>* m_value = nullptr;
340 ArrayView<ArrayView<DataType>> m_container_value;
341
342 private:
343
344 void _init();
345 void _setContainerView();
346
347 public:
348
349 // TODO: Temporaire. a supprimer.
350 ArrayView<DataType>* _internalValue() const { return m_value; }
351
352 public:
353
354#ifdef ARCANE_DOTNET
355 // Uniquement pour le wrapper C#
356 // TODO: a terme utiliser 'm_container_view' à la place
357 void* _internalValueAsPointerOfPointer() { return reinterpret_cast<void*>(&m_value); }
358#endif
359};
360
361/*---------------------------------------------------------------------------*/
362/*---------------------------------------------------------------------------*/
363/*!
364 * \ingroup ArcaneMaterials
365 * \brief Variable tableau sur les mailles d'un matériau du maillage.
366 * Pour l'instant, cette classe n'est instanciée que pour les mailles
367 */
368template<typename DataType_>
371{
372 public:
373
374 using DataType = DataType_;
375 using PrivatePartType = IArrayMeshMaterialVariable<Cell, DataType>;
376 using ItemType = Cell;
379
380 public:
381
382 explicit ARCANE_CORE_EXPORT CellMaterialVariableArrayRef(const VariableBuildInfo& vb);
383 //! Construit une référence à la variable spécifiée dans \a vb
384 explicit ARCANE_CORE_EXPORT CellMaterialVariableArrayRef(const MaterialVariableBuildInfo& vb);
385 ARCANE_CORE_EXPORT CellMaterialVariableArrayRef(const ThatClass& rhs);
386
387 public:
388
389 //! Opérateur de recopie (interdit)
390 ARCANE_CORE_EXPORT ThatClass& operator=(const ThatClass& rhs) = delete;
391 //! Constructeur vide (interdit)
393
394 public:
395
396 //! Positionne la référence de l'instance à la variable \a rhs.
397 ARCANE_CORE_EXPORT virtual void refersTo(const ThatClass& rhs);
398
399 /*!
400 * \internal
401 */
402 ARCANE_CORE_EXPORT void updateFromInternal() override;
403
404 public:
405
406 //! Variable globale associée à cette variable matériau
407 ARCANE_CORE_EXPORT GlobalVariableRefType& globalVariable();
408 //! Variable globale associée à cette variable matériau
409 ARCANE_CORE_EXPORT const GlobalVariableRefType& globalVariable() const;
410
411 public:
412
413 /*!
414 * \brief Redimensionne le nombre d'éléments du tableau.
415 *
416 * La première dimension reste toujours égale au nombre d'éléments du maillage.
417 * Seule la deuxième composante est retaillée.
418 */
419 ARCANE_CORE_EXPORT void resize(Integer dim2_size);
420
421 protected:
422
423 ConstArrayView<DataType> operator[](MatVarIndex mvi) const
424 {
425 return m_value[mvi.arrayIndex()][mvi.valueIndex()];
426 }
427 ArrayView<DataType> operator[](MatVarIndex mvi)
428 {
429 return m_value[mvi.arrayIndex()][mvi.valueIndex()];
430 }
431
432 public:
433
434 //! Valeur partielle de la variable pour la maille matériau \a mc
436 {
437 return this->operator[](mc.localId());
438 }
439
440 //! Valeur partielle de la variable pour la maille matériau \a mc
442 {
443 return this->operator[](mc.localId());
444 }
445
446 //! Valeur globale de la variable pour la maille \a c
448 {
449 return m_value[0][c.localId()];
450 }
451
452 //! Valeur globale de la variable pour la maille \a c
454 {
455 return m_value[0][c.localId()];
456 }
457
458 //! Valeur de la variable pour la maille matériau \a mvi
460 {
461 return m_value[0][mvi.valueIndex()];
462 }
463
464 //! Valeur de la variable pour la maille matériau \a mvi
466 {
467 return m_value[0][mvi.valueIndex()];
468 }
469
470 private:
471
472 PrivatePartType* m_private_part = nullptr;
473 Array2View<DataType>* m_value = nullptr;
474 ArrayView<Array2View<DataType>> m_container_value;
475
476 private:
477
478 void _init();
479 void _setContainerView();
480};
481
482/*---------------------------------------------------------------------------*/
483/*---------------------------------------------------------------------------*/
484
485//! %Variable matériau de type \a #Byte
487//! %Variable matériau de type \a #Real
489//! %Variable matériau de type \a #Int16
491//! %Variable matériau de type \a #Int32
493//! %Variable matériau de type \a #Int64
495//! %Variable matériau de type \a Real2
497//! %Variable matériau de type \a Real3
499//! %Variable matériau de type \a Real2x2
501//! %Variable matériau de type \a Real3x3
503
504#ifdef ARCANE_64BIT
505//! %Variable matériau de type \a #Integer
507#else
508//! %Variable matériau de type \a #Integer
510#endif
511
512/*---------------------------------------------------------------------------*/
513/*---------------------------------------------------------------------------*/
514
515//! %Variable matériau de type tableau de \a #Byte
517//! %Variable matériau de type tableau de \a #Real
519//! %Variable matériau de type tableau de \a #Int16
521//! %Variable matériau de type tableau de \a #Int32
523//! %Variable matériau de type tableau de \a #Int64
525//! %Variable matériau de type tableau de \a Real2
527//! %Variable matériau de type tableau de \a Real3
529//! %Variable matériau de type tableau de \a Real2x2
531//! %Variable matériau de type tableau de \a Real3x3
533
534#ifdef ARCANE_64BIT
535//! %Variable matériau de type tableau de \a #Integer
537#else
538//! %Variable matériau de type tableau de \a #Integer
540#endif
541
542/*---------------------------------------------------------------------------*/
543/*---------------------------------------------------------------------------*/
544
545} // End namespace Arcane::Materials
546
547/*---------------------------------------------------------------------------*/
548/*---------------------------------------------------------------------------*/
549
550#endif
551
Maille d'un maillage.
Definition Item.h:1178
Maille arcane avec info matériaux et milieux.
Enumérateur sur les constituants d'une maille.
Variable tableau sur les mailles d'un matériau du maillage. Pour l'instant, cette classe n'est instan...
ArrayView< DataType > operator[](CellLocalId c)
Valeur globale de la variable pour la maille c.
ConstArrayView< DataType > operator[](ComponentItemLocalId mc) const
Valeur partielle de la variable pour la maille matériau mc.
CellMaterialVariableArrayRef()=delete
Constructeur vide (interdit)
ArrayView< DataType > operator[](PureMatVarIndex mvi)
Valeur de la variable pour la maille matériau mvi.
ThatClass & operator=(const ThatClass &rhs)=delete
Opérateur de recopie (interdit)
ConstArrayView< DataType > operator[](CellLocalId c) const
Valeur globale de la variable pour la maille c.
GlobalVariableRefType & globalVariable()
Variable globale associée à cette variable matériau.
ArrayView< DataType > operator[](ComponentItemLocalId mc)
Valeur partielle de la variable pour la maille matériau mc.
virtual void refersTo(const ThatClass &rhs)
Positionne la référence de l'instance à la variable rhs.
void resize(Integer dim2_size)
Redimensionne le nombre d'éléments du tableau.
ConstArrayView< DataType > operator[](PureMatVarIndex mvi) const
Valeur de la variable pour la maille matériau mvi.
Variable scalaire sur les mailles d'un matériau du maillage. Pour l'instant, cette classe n'est insta...
DataType matValue(AllEnvCell c, Int32 mat_id) const
Valeur de la variable pour le matériau d'index mat_id de la maille ou 0 si absent de la maille.
DataType & operator[](ComponentItemLocalId mc)
Valeur partielle de la variable pour la maille matériau mc.
DataType operator[](PureMatVarIndex mvi) const
Valeur de la variable pour la maille matériau mvi.
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.
DataType operator[](ComponentItemLocalId mc) const
Valeur partielle de la variable pour la maille matériau mc.
DataType & operator[](CellComponentCellEnumerator mc)
Valeur partielle de la variable pour l'itérateur mc.
void fill(const DataType &value)
Remplit les valeurs partielles et globales de la variable avec la valeur value.
void fillPartialValues(const DataType &value)
Remplit les valeurs partielles de la variable avec la valeur value.
void fillFromArray(IMeshMaterial *mat, ConstArrayView< DataType > values)
Remplit les valeurs de la variable pour un matériau.
GlobalVariableRefType & globalVariable()
Variable globale associée à cette variable matériau.
DataType operator[](CellComponentCellEnumerator mc) const
Valeur partielle de la variable pour l'itérateur mc.
DataType operator[](CellLocalId c) const
Valeur globale de la variable pour la maille c.
DataType & operator[](CellLocalId c)
Valeur globale de la variable pour la maille c.
virtual void refersTo(const ThatClass &rhs)
Positionne la référence de l'instance à la variable rhs.
CellMaterialVariableScalarRef()=delete
Constructeur vide (interdit)
ThatClass & operator=(const ThatClass &rhs)=delete
Opérateur de recopie (interdit)
void fillToArray(IMeshMaterial *mat, ArrayView< DataType > values)
Remplit un tableau à partir des valeurs de la variable pour un matériau.
DataType & operator[](PureMatVarIndex mvi)
Valeur de la variable pour la maille matériau mvi.
Index d'un Item matériaux dans une variable.
Interface d'une variable matériau d'un maillage.
Interface d'un matériau d'un maillage.
Représente un index sur les variables matériaux et milieux.
constexpr __host__ __device__ Int32 arrayIndex() const
Retourne l'indice du tableau de valeur dans la liste des variables.
constexpr __host__ __device__ Int32 valueIndex() const
Retourne l'indice dans le tableau de valeur.
Classe de base des références aux variables matériaux.
IMeshMaterialVariable * materialVariable() const
Variable matériau associée.
MatVarSpace space() const
Espace de définition de la variable (matériau+milieu ou milieu uniquement)
void fillPartialValuesWithSuperValues(Int32 level)
Remplit les valeurs partielles avec la valeur de la maille du dessus. Si level vaut LEVEL_MATERIAL,...
Index d'un Item matériaux pure dans une variable.
Variable scalaire sur un type d'entité du maillage.
Paramètres nécessaires à la construction d'une variable.
Interface de la classe fonctor de recalcul d'une variable.
Référence à une variable.
Definition VariableRef.h:56
Vue modifiable pour un tableau 2D.
Vue modifiable d'un tableau d'un type T.
Classe de base des vecteurs 1D de données.
Vue constante d'un tableau de type T.
Chaîne de caractères unicode.
Active toujours les traces dans les parties Arcane concernant les matériaux.
CellMaterialVariableArrayRef< Int32 > MaterialVariableCellArrayInt32
Variable matériau de type tableau de Int32
CellMaterialVariableScalarRef< Real2x2 > MaterialVariableCellReal2x2
Variable matériau de type Real2x2
MaterialVariableCellArrayInt32 MaterialVariableCellArrayInteger
Variable matériau de type tableau de #Integer
MaterialVariableCellInt32 MaterialVariableCellInteger
Variable matériau de type #Integer
CellMaterialVariableArrayRef< Real3 > MaterialVariableCellArrayReal3
Variable matériau de type tableau de Real3
CellMaterialVariableArrayRef< Int16 > MaterialVariableCellArrayInt16
Variable matériau de type tableau de Int16
CellMaterialVariableScalarRef< Int16 > MaterialVariableCellInt16
Variable matériau de type Int16
CellMaterialVariableScalarRef< Real2 > MaterialVariableCellReal2
Variable matériau de type Real2
CellMaterialVariableScalarRef< Real3x3 > MaterialVariableCellReal3x3
Variable matériau de type Real3x3
CellMaterialVariableArrayRef< Byte > MaterialVariableCellArrayByte
Variable matériau de type tableau de Byte
CellMaterialVariableArrayRef< Real2x2 > MaterialVariableCellArrayReal2x2
Variable matériau de type tableau de Real2x2
CellMaterialVariableScalarRef< Byte > MaterialVariableCellByte
Variable matériau de type Byte
CellMaterialVariableScalarRef< Int64 > MaterialVariableCellInt64
Variable matériau de type Int64
CellMaterialVariableArrayRef< Real2 > MaterialVariableCellArrayReal2
Variable matériau de type tableau de Real2
CellMaterialVariableScalarRef< Real3 > MaterialVariableCellReal3
Variable matériau de type Real3
CellMaterialVariableArrayRef< Int64 > MaterialVariableCellArrayInt64
Variable matériau de type tableau de Int64
CellMaterialVariableScalarRef< Real > MaterialVariableCellReal
Variable matériau de type #Real
MatVarSpace
Espace de définition d'une variable matériau.
CellMaterialVariableScalarRef< Int32 > MaterialVariableCellInt32
Variable matériau de type Int32
CellMaterialVariableArrayRef< Real > MaterialVariableCellArrayReal
Variable matériau de type tableau de #Real
CellMaterialVariableArrayRef< Real3x3 > MaterialVariableCellArrayReal3x3
Variable matériau de type tableau de Real3x3
Real2 operator*(Real sca, const Real2Proxy &vec)
Multiplication par un scalaire.
Definition Real2Proxy.h:241