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"
34void ItemNumericOperation<Real>::
35add(VarType& out,
const VarType& v,
const ItemGroup& group)
38 out[iitem] += v[iitem];
42void ItemNumericOperation<Real>::
43sub(VarType& out,
const VarType& v,
const ItemGroup& group)
46 out[iitem] -= v[iitem];
50void ItemNumericOperation<Real>::
51mult(VarType& out,
const VarType& v,
const ItemGroup& group)
54 out[iitem] *= v[iitem];
58void ItemNumericOperation<Real>::
59mult(VarType& out,
Real v,
const ItemGroup& group)
66void ItemNumericOperation<Real>::
67power(VarType& out,
Real v,
const ItemGroup& group)
70 out[iitem] = math::pow(out[iitem],v);
77template<
typename DataType> VariableTypeInfo
78ItemVariableScalarRefT<DataType>::
79_internalVariableTypeInfo(eItemKind ik)
81 eDataType dt = VariableDataTypeTraitsT<DataType>::type();
82 return VariableTypeInfo(ik,dt,1,0,
false);
88template<
typename DataType> VariableInfo
89ItemVariableScalarRefT<DataType>::
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
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;
206 this->updateFromInternal();
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
291 BaseClass::operator=(
rhs);
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
#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.
Variable scalaire sur un type d'entité du maillage.
ItemVariableScalarRefT()
Constructeur vide.
Variable scalaire sur un type d'entité du maillage.
MeshVariableScalarRefT()
Constructeur vide.
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.
Classe de factorisation des variables scalaires sur des entités du maillage.
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.
Référence à une instance.
bool isNull() const
Indique si le compteur référence une instance non nulle.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eItemKind
Genre d'entité de maillage.
eDataType
Type d'une donnée.
double Real
Type représentant un réel.