14#include "arcane/core/MeshVariableArrayRef.h"
16#include "arcane/utils/ValueConvert.h"
17#include "arcane/utils/FatalErrorException.h"
19#include "arcane/core/ItemGroup.h"
20#include "arcane/core/VariableDataTypeTraits.h"
21#include "arcane/core/VariableTypeInfo.h"
22#include "arcane/core/VariableBuildInfo.h"
23#include "arcane/core/VariableInfo.h"
24#include "arcane/core/VariableFactoryRegisterer.h"
25#include "arcane/core/internal/IDataInternal.h"
36template<
typename DataType> VariableTypeInfo
37ItemVariableArrayRefT<DataType>::
40 eDataType dt = VariableDataTypeTraitsT<DataType>::type();
41 return VariableTypeInfo(ik,dt,2,0,
false);
47template<
typename DataType> VariableInfo
48ItemVariableArrayRefT<DataType>::
49_internalVariableInfo(
const VariableBuildInfo& vbi,
eItemKind ik)
51 VariableTypeInfo vti = _internalVariableTypeInfo(ik);
52 DataStorageTypeInfo sti = vti._internalDefaultDataStorage();
53 return VariableInfo(vbi.name(),vbi.itemFamilyName(),vbi.itemGroupName(),vbi.meshName(),vti,sti);
59template<
class DataType>
65 this->_internalInit();
66 if (this->m_private_part->isPartial())
67 ARCANE_FATAL(
"Can not assign a partial variable to a full variable");
78 this->_internalInit();
79 if (this->m_private_part->isPartial())
80 ARCANE_FATAL(
"Can not assign a partial variable to a full variable");
90 if (this->m_private_part)
91 this->updateFromInternal();
102 BaseClass::operator=(
rhs);
103 if (this->m_private_part) {
104 this->m_private_part =
rhs.m_private_part;
105 this->updateFromInternal();
136template<
typename ItemType,
typename DataType> VariableInfo
137MeshVariableArrayRefT<ItemType,DataType>::
138_internalVariableInfo(
const VariableBuildInfo& vbi)
140 VariableTypeInfo vti = _internalVariableTypeInfo();
141 DataStorageTypeInfo sti = vti._internalDefaultDataStorage();
142 return VariableInfo(vbi.name(),vbi.itemFamilyName(),vbi.itemGroupName(),vbi.meshName(),vti,sti);
159template<
class ItemType,
class DataType>
174template<
class ItemType,
class DataType>
189template<
class ItemType,
class DataType>
204template<
class ItemType,
class DataType>
218template<
class ItemType,
class DataType>
219typename Arcane::MeshVariableArrayRefT<ItemType, DataType>::GroupType
223 return GroupType(this->m_private_part->itemGroup());
229template<
class DataType>
233 this->fill(v,this->itemGroup());
239template<
class DataType>
244 operator[](
iitem).fill(value);
251template<
typename DataType>
255 this->copy(v,this->itemGroup());
261template<
typename DataType>
273template<
typename DataTypeT>
void
281 impl::copyContiguousData(this->m_private_part->data(), v.m_private_part->data(), *queue);
287template<
typename DataTypeT>
void
295 impl::fillContiguousData(this->m_private_part->data(), v, *queue);
308template<
class ItemType,
class DataTypeT>
void
312 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.
Interface d'une variable.
Groupe d'entités de maillage.
Caractéristiques des éléments du maillage.
Variable tableau sur un type d'entité du maillage.
void copy(const ItemVariableArrayRefT< DataType > &v)
Copie les valeurs de v dans cette variable.
ItemVariableArrayRefT(const VariableBuildInfo &b, eItemKind ik)
Construit une référence à la variable spécifiée dans vb.
ItemVariableArrayRefT< DataType > & operator=(const ItemVariableArrayRefT< DataType > &rhs)
Positionne la référence de l'instance à la variable rhs.
void fill(const DataType &value)
Remplit la variable avec la valeur value.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Variable tableau sur un type d'entité du maillage.
GroupType itemGroup() const
Groupe associé à la grandeur.
void swapValues(MeshVariableArrayRefT< ItemType, DataType > &rhs)
Échange les valeurs de la variable rhs avec celles de l'instance.
void refersTo(const MeshVariableArrayRefT< ItemType, DataType > &rhs)
Positionne la référence de l'instance à la variable rhs.
MeshVariableArrayRefT(const VariableBuildInfo &b)
Construit une référence à la variable spécifiée dans vb.
Classe de factorisation des variables scalaires sur des entités du maillage.
Paramètres nécessaires à la construction d'une variable.
Classe template d'informations sur un type d'une variable.
Enregistreur d'une fabrique de variables.
Référence à une variable.
Informations caractérisant le type d'une variable.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eItemKind
Genre d'entité de maillage.
eDataType
Type d'une donnée.