12#ifndef ARCANE_MATERIALS_MESHMATERIALVARIABLEREF_H
13#define ARCANE_MATERIALS_MESHMATERIALVARIABLEREF_H
22#include "arcane/utils/NotImplementedException.h"
23#include "arcane/utils/Array2View.h"
25#include "arcane/Item.h"
26#include "arcane/VariableRef.h"
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"
54 : m_vref(
vp->firstReference())
59 m_vref = m_vref->nextReference();
105 void registerVariable();
108 void unregisterVariable();
110 virtual void updateFromInternal() =0;
135 m_material_variable->fillPartialValuesWithSuperValues(level);
152 template<
typename ClassType>
void
165 template<
typename ClassType>
void
172 void _internalInit(IMeshMaterialVariable* mat_variable);
173 bool _isRegistered()
const {
return m_is_registered; }
189 bool m_is_registered;
192 void _checkValid()
const
195 if (!m_material_variable)
199 void _throwInvalid()
const;
209template<
typename DataType_>
249 return m_value[
mvi.arrayIndex()][
mvi.valueIndex()];
253 return m_value[
mvi.arrayIndex()][
mvi.valueIndex()];
261 return this->operator[](
mc.localId());
267 return this->operator[](
mc.localId());
273 return this->operator[](
mc._varIndex());
279 return this->operator[](
mc._varIndex());
285 return m_value[0][
c.localId()];
291 return m_value[0][
c.localId()];
297 return m_value[0][
mvi.valueIndex()];
303 return m_value[0][
mvi.valueIndex()];
326 ARCANE_CORE_EXPORT
void fill(
const DataType& value);
334 ARCANE_CORE_EXPORT
const GlobalVariableRefType&
globalVariable()
const;
338 PrivatePartType* m_private_part =
nullptr;
345 void _setContainerView();
368template<
typename DataType_>
419 ARCANE_CORE_EXPORT
void resize(Integer dim2_size);
425 return m_value[
mvi.arrayIndex()][
mvi.valueIndex()];
429 return m_value[
mvi.arrayIndex()][
mvi.valueIndex()];
437 return this->operator[](
mc.localId());
443 return this->operator[](
mc.localId());
449 return m_value[0][
c.localId()];
455 return m_value[0][
c.localId()];
461 return m_value[0][
mvi.valueIndex()];
467 return m_value[0][
mvi.valueIndex()];
472 PrivatePartType* m_private_part =
nullptr;
479 void _setContainerView();
Interface d'une variable.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
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 updateFromInternal() override
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.
void updateFromInternal() override
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.
Interface de la classe fonctor de recalcul d'une variable.
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)
IMeshMaterialVariable * m_material_variable
Variable associée.
IVariable * m_global_variable
Variable globale associée.
void fillPartialValuesWithSuperValues(Int32 level)
Remplit les valeurs partielles avec la valeur de la maille du dessus. Si level vaut LEVEL_MATERIAL,...
MeshMaterialVariableRef * m_next_reference
Référence suivante sur m_variable.
MeshMaterialVariableRef * m_previous_reference
Référence précédente sur m_variable.
Synchronisation d'une liste de variables matériaux.
Index d'un Item matériaux pure dans une variable.
Paramètres nécessaires à la construction d'une variable.
Interface de la classe fonctor de recalcul d'une variable.
Référence à une variable.
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