16#include "arcane/utils/NotImplementedException.h"
17#include "arcane/utils/TraceInfo.h"
18#include "arcane/utils/NumericTypes.h"
20#include "arcane/MeshVariableScalarRef.h"
21#include "arcane/ArcaneException.h"
23#include "arcane/core/materials/IMeshMaterialMng.h"
24#include "arcane/core/materials/IMeshMaterial.h"
25#include "arcane/core/materials/MaterialVariableBuildInfo.h"
48template<
typename DataType> CellEnvironmentVariableScalarRef<DataType>::
61: m_private_part(rhs.m_private_part)
67 m_private_part->incrementReference();
78template<
typename DataType>
void
83 this->_setContainerView();
84 _internalInit(m_private_part->toMeshMaterialVariable());
91template<
typename DataType>
void
93refersTo(
const CellEnvironmentVariableScalarRef<DataType>& rhs)
95 if (rhs.m_private_part==m_private_part)
100 m_private_part = rhs.m_private_part;
102 m_container_value = {};
107 m_private_part->incrementReference();
114template<
typename DataType>
void
124template<
typename DataType> DataType
132 return this->operator[](ienvcell);
142template<
typename DataType>
void
144fill(
const DataType& value)
155template<
typename DataType>
void
159 m_private_part->fillPartialValues(value);
172 GlobalVariableRefType* rt = m_private_part->globalVariableReference();
185 GlobalVariableRefType* rt = m_private_part->globalVariableReference();
194template<
typename DataType>
void
199 m_container_value = m_private_part->_internalFullValuesView();
200 m_value = m_container_value.data();
203 m_container_value = {};
239: m_private_part(rhs.m_private_part)
245 m_private_part->incrementReference();
254template<
typename DataType>
void
260 _internalInit(m_private_part->toMeshMaterialVariable());
268template<
typename DataType>
void
270refersTo(
const CellEnvironmentVariableArrayRef<DataType>& rhs)
272 if (rhs.m_private_part==m_private_part)
277 m_private_part = rhs.m_private_part;
279 m_container_value = {};
284 m_private_part->incrementReference();
292template<
typename DataType>
void
306 GlobalVariableRefType* rt = m_private_part->globalVariableReference();
319 GlobalVariableRefType* rt = m_private_part->globalVariableReference();
328template<
typename DataType>
void
332 m_private_part->resize(dim2_size);
338template<
typename DataType>
void
343 m_container_value = m_private_part->_internalFullValuesView();
344 m_value = m_container_value.data();
347 m_container_value = {};
358#define ARCANE_INSTANTIATE_MAT(type) \
359 template class ARCANE_TEMPLATE_EXPORT CellEnvironmentVariableScalarRef<type>;\
360 template class ARCANE_TEMPLATE_EXPORT CellEnvironmentVariableArrayRef<type>
362ARCANE_INSTANTIATE_MAT(
Byte);
363ARCANE_INSTANTIATE_MAT(
Int8);
364ARCANE_INSTANTIATE_MAT(
Int16);
365ARCANE_INSTANTIATE_MAT(
Int32);
366ARCANE_INSTANTIATE_MAT(
Int64);
367ARCANE_INSTANTIATE_MAT(BFloat16);
368ARCANE_INSTANTIATE_MAT(
Float16);
369ARCANE_INSTANTIATE_MAT(
Float32);
370ARCANE_INSTANTIATE_MAT(
Real);
371ARCANE_INSTANTIATE_MAT(Real2);
372ARCANE_INSTANTIATE_MAT(Real3);
373ARCANE_INSTANTIATE_MAT(Real2x2);
374ARCANE_INSTANTIATE_MAT(Real3x3);
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
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...
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.
CellEnvironmentVariableArrayRef()=delete
Constructeur vide (interdit)
void resize(Integer dim2_size)
Redimensionne le nombre d'éléments du tableau.
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.
void fillPartialValues(const DataType &value)
Remplit les valeurs partielles de la variable avec la valeur value.
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)
void fill(const DataType &value)
Remplit les valeurs partielles et globales de la variable avec la valeur value.
Maille arcane d'un milieu.
__host__ __device__ Int32 environmentId() const
Identifiant du milieu.
void unregisterVariable()
Supprime l'enregistrement de la variable (interne)
Variable tableau sur un type d'entité du maillage.
Variable scalaire sur un type d'entité du maillage.
Paramètres nécessaires à la construction d'une variable.
Active toujours les traces dans les parties Arcane concernant les matériaux.
MatVarSpace
Espace de définition d'une variable matériau.
@ Environment
Variable ayant des valeurs uniquement sur les milieux.
std::int8_t Int8
Type entier signé sur 8 bits.
std::int64_t Int64
Type entier signé sur 64 bits.
Int32 Integer
Type représentant un entier.
@ Float16
Donnée de type Float16.
std::int16_t Int16
Type entier signé sur 16 bits.
double Real
Type représentant un réel.
unsigned char Byte
Type d'un octet.
float Float32
Type flottant IEEE-753 simple précision.
std::int32_t Int32
Type entier signé sur 32 bits.