14#include "arcane/core/MeshVariableScalarRef.h"
16#include "arcane/core/ItemGroup.h"
17#include "arcane/core/VariableScalar.h"
18#include "arcane/core/VariableDataTypeTraits.h"
19#include "arcane/core/VariableTypeInfo.h"
20#include "arcane/core/VariableBuildInfo.h"
21#include "arcane/core/VariableInfo.h"
22#include "arcane/core/VariableFactoryRegisterer.h"
23#include "arcane/core/internal/IDataInternal.h"
38 out[iitem] += v[iitem];
46 out[iitem] -= v[iitem];
54 out[iitem] *= v[iitem];
81 eDataType dt = VariableDataTypeTraitsT<DataType>::type();
94 return VariableInfo(vbi.name(),vbi.itemFamilyName(),vbi.itemGroupName(),vbi.meshName(),vti,sti);
100template<
class DataTypeT>
106 this->_internalInit();
107 if (this->m_private_part->isPartial())
108 ARCANE_FATAL(
"Can not assign a partial variable to a full variable");
115template<
class DataTypeT>
120 this->_internalInit();
121 if (this->m_private_part->isPartial())
122 ARCANE_FATAL(
"Can not assign a partial variable to a full variable");
128template<
class DataTypeT>
138template<
class DataTypeT>
void
140fill(
const DataTypeT& v)
142 this->m_private_part->fill(v,this->m_private_part->itemGroup());
148template<
class DataTypeT>
void
149ItemVariableScalarRefT<DataTypeT>::
150fill(
const DataTypeT& value,
const ItemGroup& group)
153 operator[](iitem) = value;
160template<
typename DataTypeT>
void
172template<
typename DataTypeT>
void
180 impl::copyContiguousData(this->m_private_part->data(), v.m_private_part->
data(), *queue);
186template<
class DataTypeT>
void
194 impl::fillContiguousData<DataTypeT>(this->m_private_part->data(), v, *queue);
200template<
class DataTypeT>
void
204 BaseClass::operator=(rhs);
205 this->m_private_part = rhs.m_private_part;
222template<
typename ItemType,
typename DataType>
VariableInfo
242template<
class ItemType,
class DataType>
246 return new ThatClass(vb);
252template<
class ItemType,
class DataTypeT>
262template<
class ItemType,
class DataTypeT>
272template<
class ItemType,
class DataTypeT>
287template<
class ItemType,
class DataTypeT>
void
297template<
class ItemType,
class DataTypeT>
298typename Arcane::MeshVariableScalarRefT<ItemType, DataTypeT>::GroupType
302 return GroupType(BaseClass::itemGroup());
308template<
class ItemType,
class DataTypeT>
void
312 this->m_private_part->setIsSynchronized(group);
318template<
class ItemType,
class DataTypeT>
void
319MeshVariableScalarRefT<ItemType,DataTypeT>::
322 this->m_private_part->setIsSynchronized();
335template<
class ItemType,
class DataTypeT>
void
339 this->m_private_part->swapValues(*(rhs.m_private_part));
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
File d'exécution pour un accélérateur.
Informations de type pour un conteneur de données.
Groupe d'entités de maillage.
static eItemKind kind()
Genre de l'entité
Variable scalaire sur un type d'entité du maillage.
void operator=(const ItemVariableScalarRefT< DataTypeT > &rhs)
Positionne la référence de l'instance à la variable rhs.
ItemVariableScalarRefT()
Constructeur vide.
const DataType & operator[](ItemLocalId item) const
Valeur non modifiable de l'entité item.
ItemVariableScalarRefT(const VariableBuildInfo &b, eItemKind ik)
Construit une référence à la variable spécifiée dans vb.
Variable scalaire sur un type d'entité du maillage.
MeshVariableScalarRefT()
Constructeur vide.
GroupType itemGroup() const
Groupe associé à la grandeur.
MeshVariableScalarRefT(const VariableBuildInfo &vb)
void refersTo(const MeshVariableScalarRefT< ItemType, DataTypeT > &rhs)
Positionne la référence de l'instance à la variable rhs.
void swapValues(MeshVariableScalarRefT< ItemType, DataType > &rhs)
Échange les valeurs de la variable rhs avec celles de l'instance.
void updateFromInternal()
PrivateVariableScalarT(const VariableBuildInfo &vb, const VariableInfo &vi)
IData * data() override
Données associées à la variable.
Paramètres nécessaires à la construction d'une variable.
Infos caractérisant une variable.
Référence à une variable.
Informations caractérisant le type d'une variable.
DataStorageTypeInfo _internalDefaultDataStorage() const
Conteneur de donnée par défaut associé à ce type de variable.
__host__ __device__ double pow(double x, double y)
Fonction puissance.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eItemKind
Genre d'entité de maillage.
double Real
Type représentant un réel.
eDataType
Type d'une donnée.