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)
77template<
typename DataType> VariableTypeInfo
78ItemVariableScalarRefT<DataType>::
81 eDataType dt = VariableDataTypeTraitsT<DataType>::type();
82 return VariableTypeInfo(ik,dt,1,0,
false);
88template<
typename DataType> VariableInfo
89ItemVariableScalarRefT<DataType>::
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
165 operator[](iitem) = v[iitem];
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
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.
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.
Variable scalaire sur un type d'entité du maillage.
MeshVariableScalarRefT()
Constructeur vide.
GroupType itemGroup() const
Groupe associé à la grandeur.
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.
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.
eDataType
Type d'une donnée.