12#ifndef ARCANE_VARIABLEVIEW_H
13#define ARCANE_VARIABLEVIEW_H
20#include "arcane/core/ItemLocalId.h"
46template<
typename DataType>
47using ViewSetter ARCANE_DEPRECATED_REASON(
"Use 'DataViewSetter' type instead") = DataViewSetter<DataType>;
48template<
typename DataType>
49using ViewGetterSetter ARCANE_DEPRECATED_REASON(
"Use 'DataViewGetterSetter' type instead") = DataViewGetterSetter<DataType>;
69template<
typename DataType>
73 using ValueType = DataType;
82template<
typename DataType>
86 using ValueType = DataType;
102template<
typename ItemType,
typename Accessor>
108 using DataType =
typename Accessor::ValueType;
109 using DataTypeReturnReference = DataType&;
133 ARCANE_CHECK_AT(i.localId(),m_size);
134 return Accessor(this->m_values + i.localId());
138 Accessor
value(ItemIndexType i)
const
140 ARCANE_CHECK_AT(i.localId(),m_size);
141 return Accessor(this->m_values + i.localId());
145 void setValue(ItemIndexType i,
const DataType& v)
const
147 ARCANE_CHECK_AT(i.localId(),m_size);
148 this->m_values[i.localId()] = v;
161template<
typename ItemType,
typename DataType>
193 return this->m_values[i.localId()];
197 const DataType&
value(ItemIndexType i)
const
199 return this->m_values[i.localId()];
211template<
typename ItemType,
typename DataType>
227 return this->m_values[i.localId()];
233 return this->m_values[i.localId()];
245template<
typename ItemType,
typename Accessor>
251 using DataType =
typename Accessor::ValueType;
252 using DataTypeReturnType =
typename Accessor::DataTypeReturnReference;
263 return DataTypeReturnType(this->m_values[i.localId()]);
269 return DataTypeReturnType(this->m_values[i.localId()]);
297template<
typename ItemType,
typename Accessor>
303 using DataType =
typename Accessor::ValueType;
304 using DataTypeReturnReference = DataType&;
328 ARCANE_CHECK_AT(item.localId(),m_size);
329 return Accessor(this->m_values+item.localId());
333 Accessor
value(ItemIndexType item)
const
335 ARCANE_CHECK_AT(item.localId(),m_size);
336 return Accessor(this->m_values+item.localId());
340 void setValue(ItemIndexType item,
const DataType& v)
const
342 ARCANE_CHECK_AT(item.localId(),m_size);
343 this->m_values[item.localId()] = v;
356template<
typename ItemType,
typename DataType>
auto
366template<
typename ItemType>
auto
376template<
typename ItemType>
auto
386template<
typename ItemType,
typename DataType>
auto
398template<
typename ItemType,
typename DataType>
auto
408template<
typename ItemType>
auto
418template<
typename ItemType>
auto
428template<
typename ItemType,
typename DataType>
auto
440template<
typename ItemType,
typename DataType>
auto
449template<
typename ItemType,
typename DataType>
auto
458typedef ItemVariableScalarInViewT<Node,Byte> VariableNodeByteInView;
459typedef ItemVariableScalarInViewT<Edge,Byte> VariableEdgeByteInView;
460typedef ItemVariableScalarInViewT<Face,Byte> VariableFaceByteInView;
461typedef ItemVariableScalarInViewT<Cell,Byte> VariableCellByteInView;
462typedef ItemVariableScalarInViewT<Particle,Byte> VariableParticleByteInView;
464typedef ItemVariableScalarInViewT<Node,Int16> VariableNodeInt16InView;
465typedef ItemVariableScalarInViewT<Edge,Int16> VariableEdgeInt16InView;
466typedef ItemVariableScalarInViewT<Face,Int16> VariableFaceInt16InView;
467typedef ItemVariableScalarInViewT<Cell,Int16> VariableCellInt16InView;
468typedef ItemVariableScalarInViewT<Particle,Int16> VariableParticleInt16InView;
470typedef ItemVariableScalarInViewT<Node,Int32> VariableNodeInt32InView;
471typedef ItemVariableScalarInViewT<Edge,Int32> VariableEdgeInt32InView;
472typedef ItemVariableScalarInViewT<Face,Int32> VariableFaceInt32InView;
473typedef ItemVariableScalarInViewT<Cell,Int32> VariableCellInt32InView;
474typedef ItemVariableScalarInViewT<Particle,Int32> VariableParticleInt32InView;
476typedef ItemVariableScalarInViewT<Node,Int64> VariableNodeInt64InView;
477typedef ItemVariableScalarInViewT<Edge,Int64> VariableEdgeInt64InView;
478typedef ItemVariableScalarInViewT<Face,Int64> VariableFaceInt64InView;
479typedef ItemVariableScalarInViewT<Cell,Int64> VariableCellInt64InView;
480typedef ItemVariableScalarInViewT<Particle,Int64> VariableParticleInt64InView;
482typedef ItemVariableScalarInViewT<Node,Real> VariableNodeRealInView;
483typedef ItemVariableScalarInViewT<Edge,Real> VariableEdgeRealInView;
484typedef ItemVariableScalarInViewT<Face,Real> VariableFaceRealInView;
485typedef ItemVariableScalarInViewT<Cell,Real> VariableCellRealInView;
486typedef ItemVariableScalarInViewT<Particle,Real> VariableParticleRealInView;
488typedef ItemVariableScalarInViewT<Node,Real2> VariableNodeReal2InView;
489typedef ItemVariableScalarInViewT<Edge,Real2> VariableEdgeReal2InView;
490typedef ItemVariableScalarInViewT<Face,Real2> VariableFaceReal2InView;
491typedef ItemVariableScalarInViewT<Cell,Real2> VariableCellReal2InView;
492typedef ItemVariableScalarInViewT<Particle,Real2> VariableParticleReal2InView;
494typedef ItemVariableScalarInViewT<Node,Real3> VariableNodeReal3InView;
495typedef ItemVariableScalarInViewT<Edge,Real3> VariableEdgeReal3InView;
496typedef ItemVariableScalarInViewT<Face,Real3> VariableFaceReal3InView;
497typedef ItemVariableScalarInViewT<Cell,Real3> VariableCellReal3InView;
498typedef ItemVariableScalarInViewT<Particle,Real3> VariableParticleReal3InView;
503typedef ItemVariableScalarOutViewT<Node,DataViewSetter<Byte>> VariableNodeByteOutView;
504typedef ItemVariableScalarOutViewT<Edge,DataViewSetter<Byte>> VariableEdgeByteOutView;
505typedef ItemVariableScalarOutViewT<Face,DataViewSetter<Byte>> VariableFaceByteOutView;
506typedef ItemVariableScalarOutViewT<Cell,DataViewSetter<Byte>> VariableCellByteOutView;
507typedef ItemVariableScalarOutViewT<Particle,DataViewSetter<Byte>> VariableParticleByteOutView;
509typedef ItemVariableScalarOutViewT<Node,DataViewSetter<Int16>> VariableNodeInt16OutView;
510typedef ItemVariableScalarOutViewT<Edge,DataViewSetter<Int16>> VariableEdgeInt16OutView;
511typedef ItemVariableScalarOutViewT<Face,DataViewSetter<Int16>> VariableFaceInt16OutView;
512typedef ItemVariableScalarOutViewT<Cell,DataViewSetter<Int16>> VariableCellInt16OutView;
513typedef ItemVariableScalarOutViewT<Particle,DataViewSetter<Int16>> VariableParticleInt16OutView;
515typedef ItemVariableScalarOutViewT<Node,DataViewSetter<Int32>> VariableNodeInt32OutView;
516typedef ItemVariableScalarOutViewT<Edge,DataViewSetter<Int32>> VariableEdgeInt32OutView;
517typedef ItemVariableScalarOutViewT<Face,DataViewSetter<Int32>> VariableFaceInt32OutView;
518typedef ItemVariableScalarOutViewT<Cell,DataViewSetter<Int32>> VariableCellInt32OutView;
519typedef ItemVariableScalarOutViewT<Particle,DataViewSetter<Int32>> VariableParticleInt32OutView;
521typedef ItemVariableScalarOutViewT<Node,DataViewSetter<Int64>> VariableNodeInt64OutView;
522typedef ItemVariableScalarOutViewT<Edge,DataViewSetter<Int64>> VariableEdgeInt64OutView;
523typedef ItemVariableScalarOutViewT<Face,DataViewSetter<Int64>> VariableFaceInt64OutView;
524typedef ItemVariableScalarOutViewT<Cell,DataViewSetter<Int64>> VariableCellInt64OutView;
525typedef ItemVariableScalarOutViewT<Particle,DataViewSetter<Int64>> VariableParticleInt64OutView;
527typedef ItemVariableScalarOutViewT<Node,DataViewSetter<Real>> VariableNodeRealOutView;
528typedef ItemVariableScalarOutViewT<Edge,DataViewSetter<Real>> VariableEdgeRealOutView;
529typedef ItemVariableScalarOutViewT<Face,DataViewSetter<Real>> VariableFaceRealOutView;
530typedef ItemVariableScalarOutViewT<Cell,DataViewSetter<Real>> VariableCellRealOutView;
531typedef ItemVariableScalarOutViewT<Particle,DataViewSetter<Real>> VariableParticleRealOutView;
533typedef ItemVariableRealNScalarOutViewT<Node,DataViewSetter<Real2>> VariableNodeReal2OutView;
534typedef ItemVariableRealNScalarOutViewT<Edge,DataViewSetter<Real2>> VariableEdgeReal2OutView;
535typedef ItemVariableRealNScalarOutViewT<Face,DataViewSetter<Real2>> VariableFaceReal2OutView;
536typedef ItemVariableRealNScalarOutViewT<Cell,DataViewSetter<Real2>> VariableCellReal2OutView;
537typedef ItemVariableRealNScalarOutViewT<Particle,DataViewSetter<Real2>> VariableParticleReal2OutView;
539typedef ItemVariableRealNScalarOutViewT<Node,DataViewSetter<Real3>> VariableNodeReal3OutView;
540typedef ItemVariableRealNScalarOutViewT<Edge,DataViewSetter<Real3>> VariableEdgeReal3OutView;
541typedef ItemVariableRealNScalarOutViewT<Face,DataViewSetter<Real3>> VariableFaceReal3OutView;
542typedef ItemVariableRealNScalarOutViewT<Cell,DataViewSetter<Real3>> VariableCellReal3OutView;
543typedef ItemVariableRealNScalarOutViewT<Particle,DataViewSetter<Real3>> VariableParticleReal3OutView;
Déclarations de types sur les entités.
Vue en lecture sur une variable tableau du maillage.
Vue en écriture sur une variable tableau du maillage.
Vue en écriture sur une variable scalaire de type 'RealN' du maillage.
Vue en lecture sur une variable scalaire du maillage.
Vue en écriture sur une variable scalaire du maillage.
Classe de base des vues sur les variables.
Classe pour accéder à un tableau 1D d'une vue en lecture/écriture.
Classe pour accéder à un tableau 1D d'une vue en lecture/écriture.
Interface d'une variable.
Caractéristiques des éléments du maillage.
Span< const DataType > value(ItemIndexType i) const
Opérateur d'accès pour l'entité item.
Span< const DataType > operator[](ItemIndexType i) const
Opérateur d'accès pour l'entité item.
Span< DataType > value(ItemIndexType i) const
Opérateur d'accès pour l'entité item.
DataTypeReturnType operator[](ItemIndexType i) const
Opérateur d'accès pour l'entité item.
ItemVariableRealNScalarOutViewT(IVariable *var, Span< DataType > v)
Construit la vue.
void setValue(ItemIndexType item, const DataType &v) const
Positionne la valeur pour l'entité item à v.
SimdSetter< DataType > operator[](SimdItemIndexT< ItemType > simd_item) const
Opérateur d'accès vectoriel avec indirection.
Accessor operator[](ItemIndexType item) const
Opérateur d'accès pour l'entité item.
SimdDirectSetter< DataType > operator[](SimdItemDirectIndexT< ItemType > simd_item) const
Opérateur d'accès vectoriel sans indirection.
Accessor value(ItemIndexType item) const
Opérateur d'accès pour l'entité item.
SimdTypeTraits< DataType >::SimdType operator[](SimdItemIndexT< ItemType > simd_item) const
Opérateur d'accès vectoriel avec indirection.
const DataType & value(ItemIndexType i) const
Opérateur d'accès pour l'entité item.
const DataType & operator[](ItemIndexType i) const
Opérateur d'accès pour l'entité item.
SimdTypeTraits< DataType >::SimdType operator[](SimdItemDirectIndexT< ItemType > simd_item) const
Opérateur d'accès vectoriel avec indirection.
void setValue(ItemIndexType i, const DataType &v) const
Positionne la valeur pour l'entité item à v.
SimdDirectSetter< DataType > operator[](SimdItemDirectIndexT< ItemType > simd_item) const
Opérateur d'accès vectoriel sans indirection.
Accessor operator[](ItemIndexType i) const
Opérateur d'accès pour l'entité item.
Accessor value(ItemIndexType i) const
Opérateur d'accès pour l'entité item.
SimdSetter< DataType > operator[](SimdItemIndexT< ItemType > simd_item) const
Opérateur d'accès vectoriel avec indirection.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
constexpr ARCCORE_HOST_DEVICE pointer ptrAt(SizeType index) const
Addresse du index-ème élément.
constexpr ARCCORE_HOST_DEVICE pointer data() const noexcept
Pointeur sur le début de la vue.
Vue d'un tableau d'éléments de type T.
auto viewInOut(RunCommand &cmd, CellMaterialVariableScalarRef< DataType > &var)
Vue en lecture/écriture pour les variables materiaux scalaire.
auto viewIn(RunCommand &cmd, const CellMaterialVariableScalarRef< DataType > &var)
Vue en lecture pour les variables materiaux scalaire.
auto viewOut(RunCommand &cmd, CellMaterialVariableScalarRef< DataType > &var)
Vue en écriture pour les variables materiaux scalaire.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-