12#ifndef ARCANE_ACCELERATOR_VARIABLEVIEWS_H
13#define ARCANE_ACCELERATOR_VARIABLEVIEWS_H
19#include "arcane/core/ItemLocalId.h"
21#include "arcane/core/GroupIndexTable.h"
23#include "arcane/accelerator/core/ViewBuildInfo.h"
24#include "arcane/accelerator/AcceleratorGlobal.h"
44class ARCANE_ACCELERATOR_EXPORT VariableViewBase
56template <
typename DataType>
64 using ValueType = DataType;
65 using DataTypeReturnReference = View1DSetter<DataType>;
69 ARCCORE_HOST_DEVICE DataViewSetter<DataType> operator[](
Int32 index)
const
71 return DataViewSetter<DataType>(m_data.ptrAt(index));
73 ARCCORE_HOST_DEVICE DataViewSetter<DataType> operator()(
Int32 index)
const
75 return DataViewSetter<DataType>(m_data.ptrAt(index));
77 DataTypeReturnReference& operator=(
const View1DSetter<DataType>& rhs) =
delete;
96template <
typename DataType>
97class View1DGetterSetter
98:
public View1DSetter<DataType>
100 using View1DSetter<DataType>::m_data;
104 using ValueType = DataType;
105 using DataTypeReturnReference = View1DGetterSetter<DataType>;
110 : View1DSetter<DataType>(data)
112 DataTypeReturnReference& operator=(
const View1DGetterSetter<DataType>& rhs) =
delete;
116 ARCCORE_HOST_DEVICE DataViewGetterSetter<DataType> operator[](
Int32 index)
const
118 return DataViewGetterSetter<DataType>(m_data.ptrAt(index));
126 ARCCORE_HOST_DEVICE
operator Span<DataType>() {
return { m_data.data(), m_data.size() }; }
127 ARCCORE_HOST_DEVICE
operator Span<const DataType>()
const {
return { m_data.data(), m_data.size() }; }
135template <
typename _ItemType,
typename _Accessor,
typename _IndexerType,
bool _HasSimd>
136class ItemVariableScalarOutViewBaseT
137:
public VariableViewBase
139 using Accessor = _Accessor;
143 using ItemType = _ItemType;
144 using IndexerType = _IndexerType;
145 using DataType =
typename _Accessor::ValueType;
146 using DataTypeReturnReference = DataType&;
151 : VariableViewBase(command, var)
169 ARCCORE_HOST_DEVICE Accessor
operator[](IndexerType item)
const
171 ARCANE_CHECK_AT(item.asInt32(), m_size);
172 return Accessor(this->m_values + item.asInt32());
176 ARCCORE_HOST_DEVICE Accessor
operator()(IndexerType item)
const
178 ARCANE_CHECK_AT(item.asInt32(), m_size);
179 return Accessor(this->m_values + item.asInt32());
183 ARCCORE_HOST_DEVICE Accessor
value(IndexerType item)
const
185 ARCANE_CHECK_AT(item.asInt32(), m_size);
186 return Accessor(this->m_values + item.asInt32());
190 ARCCORE_HOST_DEVICE
void setValue(IndexerType item,
const DataType& v)
const
192 ARCANE_CHECK_AT(item.asInt32(), m_size);
193 this->m_values[item.asInt32()] = v;
207template <
typename _ItemType,
typename _Accessor>
208class ItemVariableScalarOutViewT
209:
public VariableViewBase
213 using DataType =
typename _Accessor::ValueType;
214 using Accessor = _Accessor;
215 using ItemType = _ItemType;
217 using DataTypeReturnReference = DataType&;
222 : VariableViewBase(command, var)
240 ARCCORE_HOST_DEVICE Accessor
operator[](IndexerType item)
const
242 ARCANE_CHECK_AT(item.asInt32(), m_size);
243 return Accessor(this->m_values + item.asInt32());
247 ARCCORE_HOST_DEVICE Accessor
operator()(IndexerType item)
const
249 ARCANE_CHECK_AT(item.asInt32(), m_size);
250 return Accessor(this->m_values + item.asInt32());
254 ARCCORE_HOST_DEVICE Accessor
value(IndexerType item)
const
256 ARCANE_CHECK_AT(item.asInt32(), m_size);
257 return Accessor(this->m_values + item.asInt32());
261 ARCCORE_HOST_DEVICE
void setValue(IndexerType item,
const DataType& v)
const
263 ARCANE_CHECK_AT(item.asInt32(), m_size);
264 this->m_values[item.asInt32()] = v;
278template <
typename _ItemType,
typename _Accessor>
279class ItemPartialVariableScalarOutViewT
280:
public VariableViewBase
284 using DataType =
typename _Accessor::ValueType;
285 using Accessor = _Accessor;
286 using ItemType = _ItemType;
288 using DataTypeReturnReference = DataType&;
295 : VariableViewBase(command, var)
298 , m_table_view(table_view)
302 ARCCORE_HOST_DEVICE Accessor
operator[](IndexerType item)
const
304 ARCANE_CHECK_AT(item.asInt32(), m_size);
305 return Accessor(this->m_values + item.asInt32());
309 ARCCORE_HOST_DEVICE Accessor
operator()(IndexerType item)
const
311 ARCANE_CHECK_AT(item.asInt32(), m_size);
312 return Accessor(this->m_values + item.asInt32());
316 ARCCORE_HOST_DEVICE Accessor
value(IndexerType item)
const
318 ARCANE_CHECK_AT(item.asInt32(), m_size);
319 return Accessor(this->m_values + item.asInt32());
323 ARCCORE_HOST_DEVICE
void setValue(IndexerType item,
const DataType& v)
const
325 ARCANE_CHECK_AT(item.asInt32(), m_size);
326 this->m_values[item.asInt32()] = v;
332 ARCCORE_HOST_DEVICE Accessor
operator[](ItemLocalIdType lid)
const
334 Int32 index = _toIndex(lid);
335 ARCANE_CHECK_AT(index, m_size);
336 return Accessor(m_values + index);
340 ARCCORE_HOST_DEVICE Accessor
operator()(ItemLocalIdType lid)
const
342 Int32 index = _toIndex(lid);
343 ARCANE_CHECK_AT(index, m_size);
344 return Accessor(m_values + index);
348 ARCCORE_HOST_DEVICE Accessor
value(ItemLocalIdType lid)
const
350 Int32 index = _toIndex(lid);
351 ARCANE_CHECK_AT(index, m_size);
352 return Accessor(m_values + index);
356 ARCCORE_HOST_DEVICE
void setValue(ItemLocalIdType lid,
const DataType& v)
const
358 Int32 index = _toIndex(lid);
359 ARCANE_CHECK_AT(index, m_size);
360 this->m_values[index] = v;
365 ARCCORE_HOST_DEVICE
Int32 _toIndex(ItemLocalIdType lid)
const
367 return m_table_view[lid];
385template <
typename _ItemType,
typename _DataType>
386class ItemVariableScalarInViewT
387:
public VariableViewBase
391 using ItemType = _ItemType;
392 using DataType = _DataType;
398 : VariableViewBase(command, var)
406 typename SimdTypeTraits<DataType>::SimdType
409 typedef typename SimdTypeTraits<DataType>::SimdType
SimdType;
414 typename SimdTypeTraits<DataType>::SimdType
417 typedef typename SimdTypeTraits<DataType>::SimdType
SimdType;
418 return SimdType(m_values.data() + simd_item.baseLocalId());
422 ARCCORE_HOST_DEVICE
const DataType&
operator[](IndexerType item)
const
424 return this->m_values[item.asInt32()];
428 ARCCORE_HOST_DEVICE
const DataType&
operator()(IndexerType item)
const
430 return this->m_values[item.asInt32()];
434 ARCCORE_HOST_DEVICE
const DataType&
value(IndexerType item)
const
436 return this->m_values[item.asInt32()];
449template <
typename _ItemType,
typename _DataType>
450class ItemPartialVariableScalarInViewT
451:
public VariableViewBase
455 using ItemType = _ItemType;
456 using DataType = _DataType;
464 : VariableViewBase(command, var)
466 , m_table_view(table_view)
472 ARCCORE_HOST_DEVICE
const DataType&
operator[](IndexerType item)
const
474 return m_values[item.asInt32()];
478 ARCCORE_HOST_DEVICE
const DataType&
operator()(IndexerType item)
const
480 return m_values[item.asInt32()];
484 ARCCORE_HOST_DEVICE
const DataType&
value(IndexerType item)
const
486 return m_values[item.asInt32()];
490 ARCCORE_HOST_DEVICE
const DataType&
operator[](ItemLocalIdType lid)
const
492 return m_values[_toIndex(lid)];
496 ARCCORE_HOST_DEVICE
const DataType&
operator()(ItemLocalIdType lid)
const
498 return m_values[_toIndex(lid)];
502 ARCCORE_HOST_DEVICE
const DataType&
value(ItemLocalIdType lid)
const
504 return m_values[_toIndex(lid)];
509 ARCCORE_HOST_DEVICE
Int32 _toIndex(ItemLocalIdType lid)
const
511 return m_table_view[lid];
528template <
typename _ItemType,
typename _DataType>
529class ItemPartialVariableArrayInViewT
530:
public VariableViewBase
534 using ItemType = _ItemType;
535 using DataType = _DataType;
543 : VariableViewBase(command, var)
545 , m_table_view(table_view)
551 return this->m_values[i.asInt32()];
557 return m_values[_toIndex(lid)];
563 return m_values[item.asInt32()][i];
569 return m_values[_toIndex(lid)][i];
575 return m_values[i.asInt32()];
581 return m_values[_toIndex(lid)];
586 ARCCORE_HOST_DEVICE
Int32 _toIndex(ItemLocalIdType lid)
const
588 return m_table_view[lid];
602template <
typename _ItemType,
typename _DataType>
603class ItemVariableArrayInViewT
604:
public VariableViewBase
612 using DataType = _DataType;
617 : VariableViewBase(command, var)
626 return this->m_values[i.asInt32()];
632 return this->m_values[item.asInt32()][i];
638 return this->m_values[i.asInt32()];
654template <
typename _ItemType,
typename _Accessor,
typename _Indexer>
655class ItemVariableArrayOutViewBaseT
656:
public VariableViewBase
660 using ItemType = _ItemType;
661 using Accessor = _Accessor;
662 using IndexerType = _Indexer;
663 using DataType =
typename Accessor::ValueType;
664 using DataTypeReturnType =
typename Accessor::DataTypeReturnReference;
669 : VariableViewBase(command, var)
674 ARCCORE_HOST_DEVICE DataTypeReturnType
operator[](IndexerType item)
const
676 return DataTypeReturnType(this->m_values[item.asInt32()]);
682 return this->m_values[item.asInt32()][i];
688 return DataTypeReturnType(this->m_values[item.asInt32()]);
701template <
typename _ItemType,
typename _Accessor>
702class ItemVariableArrayOutViewT
703:
public VariableViewBase
707 using ItemType = _ItemType;
708 using Accessor = _Accessor;
710 using DataType =
typename Accessor::ValueType;
711 using DataTypeReturnType =
typename Accessor::DataTypeReturnReference;
716 : VariableViewBase(command, var)
721 ARCCORE_HOST_DEVICE DataTypeReturnType
operator[](IndexerType item)
const
723 return DataTypeReturnType(this->m_values[item.asInt32()]);
729 return this->m_values[item.asInt32()][i];
735 return DataTypeReturnType(this->m_values[item.asInt32()]);
748template <
typename _ItemType,
typename _Accessor>
749class ItemPartialVariableArrayOutViewT
750:
public VariableViewBase
754 using ItemType = _ItemType;
755 using Accessor = _Accessor;
757 using DataType =
typename Accessor::ValueType;
758 using DataTypeReturnType =
typename Accessor::DataTypeReturnReference;
765 : VariableViewBase(command, var)
767 , m_table_view(table_view)
773 ARCCORE_HOST_DEVICE DataTypeReturnType
operator[](IndexerType item)
const
775 return DataTypeReturnType(m_values[item.asInt32()]);
781 return m_values[item.asInt32()][i];
787 return DataTypeReturnType(m_values[item.asInt32()]);
793 ARCCORE_HOST_DEVICE DataTypeReturnType
operator[](ItemLocalIdType lid)
const
795 return DataTypeReturnType(m_values[_toIndex(lid)]);
801 return m_values[_toIndex(lid)][i];
807 return DataTypeReturnType(m_values[_toIndex(lid)]);
812 ARCCORE_HOST_DEVICE
Int32 _toIndex(ItemLocalIdType lid)
const
814 return m_table_view[lid];
844template <
typename _ItemType,
typename _Accessor>
846:
public VariableViewBase
850 using ItemType = _ItemType;
851 using Accessor = _Accessor;
853 using DataType =
typename _Accessor::ValueType;
854 using DataTypeReturnReference = DataType&;
860 : VariableViewBase(command, var)
890 ARCCORE_HOST_DEVICE Accessor
operator[](IndexerType item)
const
892 ARCANE_CHECK_AT(item.asInt32(), m_size);
893 return Accessor(m_values + item.asInt32());
897 ARCCORE_HOST_DEVICE Accessor
operator()(IndexerType item)
const
899 ARCANE_CHECK_AT(item.asInt32(), m_size);
900 return Accessor(m_values + item.asInt32());
904 ARCCORE_HOST_DEVICE Accessor
value(IndexerType item)
const
906 ARCANE_CHECK_AT(item.asInt32(), m_size);
907 return Accessor(m_values + item.asInt32());
911 ARCCORE_HOST_DEVICE
void setValue(IndexerType item,
const DataType& v)
const
913 ARCANE_CHECK_AT(item.asInt32(), m_size);
914 this->m_values[item.asInt32()] = v;
926template <
typename _ItemType,
typename _Accessor>
928:
public VariableViewBase
932 using ItemType = _ItemType;
933 using Accessor = _Accessor;
935 using DataType =
typename _Accessor::ValueType;
936 using DataTypeReturnReference = DataType&;
944 : VariableViewBase(command, var)
947 , m_table_view(table_view)
953 ARCCORE_HOST_DEVICE Accessor
operator[](IndexerType item)
const
955 ARCANE_CHECK_AT(item.asInt32(), m_size);
956 return Accessor(this->m_values + item.asInt32());
960 ARCCORE_HOST_DEVICE Accessor
operator()(IndexerType item)
const
962 ARCANE_CHECK_AT(item.asInt32(), m_size);
963 return Accessor(this->m_values + item.asInt32());
967 ARCCORE_HOST_DEVICE Accessor
value(IndexerType item)
const
969 ARCANE_CHECK_AT(item.asInt32(), m_size);
970 return Accessor(this->m_values + item.asInt32());
974 ARCCORE_HOST_DEVICE
void setValue(IndexerType item,
const DataType& v)
const
976 ARCANE_CHECK_AT(item.asInt32(), m_size);
977 this->m_values[item.asInt32()] = v;
983 ARCCORE_HOST_DEVICE Accessor
operator[](ItemLocalIdType lid)
const
985 Int32 index = _toIndex(lid);
986 ARCANE_CHECK_AT(index, m_size);
987 return Accessor(m_values + index);
991 ARCCORE_HOST_DEVICE Accessor
operator()(ItemLocalIdType lid)
const
993 Int32 index = _toIndex(lid);
994 ARCANE_CHECK_AT(index, m_size);
995 return Accessor(m_values + index);
999 ARCCORE_HOST_DEVICE Accessor
value(ItemLocalIdType lid)
const
1001 Int32 index = _toIndex(lid);
1002 ARCANE_CHECK_AT(index, m_size);
1003 return Accessor(m_values + index);
1007 ARCCORE_HOST_DEVICE
void setValue(ItemLocalIdType lid,
const DataType& v)
const
1009 Int32 index = _toIndex(lid);
1010 ARCANE_CHECK_AT(index, m_size);
1011 m_values[index] = v;
1016 ARCCORE_HOST_DEVICE
Int32 _toIndex(ItemLocalIdType lid)
const
1018 return m_table_view[lid];
1023 DataType* m_values =
nullptr;
1036template <
typename DataType>
auto
1039 using Accessor = DataViewSetter<DataType>;
1046template <
typename ItemType,
typename DataType>
auto
1049 using Accessor = DataViewSetter<DataType>;
1056template <
typename ItemType,
typename DataType>
auto
1059 using Accessor = DataViewSetter<DataType>;
1067template <
typename ItemType>
auto
1070 using Accessor = DataViewSetter<Real3>;
1077template <
typename ItemType>
auto
1080 using Accessor = DataViewSetter<Real3>;
1088template <
typename ItemType>
auto
1091 using Accessor = DataViewSetter<Real2>;
1098template <
typename ItemType>
auto
1101 using Accessor = DataViewSetter<Real2>;
1109template <
typename ItemType,
typename DataType>
auto
1119template <
typename ItemType,
typename DataType>
auto
1132template <
typename DataType>
auto
1135 using Accessor = DataViewGetterSetter<DataType>;
1142template <
typename ItemType,
typename DataType>
auto
1145 using Accessor = DataViewGetterSetter<DataType>;
1152template <
typename ItemType,
typename DataType>
auto
1155 using Accessor = DataViewGetterSetter<DataType>;
1162template <
typename ItemType>
auto
1165 using Accessor = DataViewGetterSetter<Real3>;
1172template <
typename ItemType>
auto
1175 using Accessor = DataViewGetterSetter<Real3>;
1183template <
typename ItemType>
auto
1186 using Accessor = DataViewGetterSetter<Real2>;
1193template <
typename ItemType>
auto
1196 using Accessor = DataViewGetterSetter<Real2>;
1204template <
typename ItemType,
typename DataType>
auto
1214template <
typename ItemType,
typename DataType>
auto
1227template <
typename ItemType,
typename DataType>
auto
1236template <
typename ItemType,
typename DataType>
auto
1245template <
typename DataType>
auto
1254template <
typename ItemType,
typename DataType>
auto
1263template <
typename ItemType,
typename DataType>
auto
Déclarations de types sur les entités.
Vue en lecture sur une variable partielle tableau du maillage.
__host__ __device__ const DataType & operator()(IndexerType item, Int32 i) const
Opérateur d'accès pour la i-ème valeur de l'entité item.
__host__ __device__ const SmallSpan< const DataType > operator[](IndexerType i) const
Opérateur d'accès pour l'entité item.
__host__ __device__ const SmallSpan< const DataType > operator[](ItemLocalIdType lid) const
Opérateur d'accès pour l'entité item.
__host__ __device__ const SmallSpan< const DataType > value(ItemLocalIdType lid) const
Opérateur d'accès pour l'entité item.
__host__ __device__ const DataType & operator()(ItemLocalIdType lid, Int32 i) const
Opérateur d'accès pour la i-ème valeur de l'entité item.
__host__ __device__ const SmallSpan< const DataType > value(IndexerType i) const
Opérateur d'accès pour l'entité item.
Vue en écriture sur une variable partielle tableau du maillage.
__host__ __device__ DataTypeReturnType operator[](ItemLocalIdType lid) const
Opérateur d'accès pour l'entité de numéro local lid.
__host__ __device__ DataTypeReturnType operator[](IndexerType item) const
Opérateur d'accès pour l'entité item.
__host__ __device__ SmallSpan< DataType > value(IndexerType item) const
Opérateur d'accès pour l'entité item.
__host__ __device__ SmallSpan< DataType > value(ItemLocalIdType lid) const
Opérateur d'accès pour la i-ème valeur de l'entité item.
__host__ __device__ DataType & operator()(ItemLocalIdType lid, Int32 i) const
Opérateur d'accès pour l'entité de numéro local lid.
__host__ __device__ DataType & operator()(IndexerType item, Int32 i) const
Opérateur d'accès pour la i-ème valeur de l'entité item.
__host__ __device__ void setValue(IndexerType item, const DataType &v) const
Positionne la valeur pour l'entité item à v.
__host__ __device__ Accessor operator[](IndexerType item) const
Opérateur d'accès pour l'entité item.
__host__ __device__ void setValue(ItemLocalIdType lid, const DataType &v) const
Positionne la valeur pour l'entité item à v.
__host__ __device__ Accessor value(ItemLocalIdType lid) const
Opérateur d'accès pour l'entité item.
__host__ __device__ Accessor operator()(ItemLocalIdType lid) const
Opérateur d'accès pour l'entité item.
__host__ __device__ Accessor operator[](ItemLocalIdType lid) const
Opérateur d'accès pour l'entité item.
ItemPartialVariableRealNScalarOutViewT(const ViewBuildInfo &command, IVariable *var, SmallSpan< DataType > v, GroupIndexTableView table_view)
Construit la vue.
__host__ __device__ Accessor operator()(IndexerType item) const
Opérateur d'accès pour l'entité item.
__host__ __device__ Accessor value(IndexerType item) const
Opérateur d'accès pour l'entité item.
Vue en lecture sur une variable partielle scalaire du maillage.
__host__ __device__ const DataType & operator()(ItemLocalIdType lid) const
Opérateur d'accès pour l'entité item.
__host__ __device__ const DataType & operator[](IndexerType item) const
Opérateur d'accès pour l'entité item.
__host__ __device__ const DataType & value(IndexerType item) const
Opérateur d'accès pour l'entité item.
__host__ __device__ const DataType & value(ItemLocalIdType lid) const
Opérateur d'accès pour l'entité item.
__host__ __device__ const DataType & operator[](ItemLocalIdType lid) const
Opérateur d'accès pour l'entité item.
__host__ __device__ const DataType & operator()(IndexerType item) const
Opérateur d'accès pour l'entité item.
Vue en écriture sur une variable partielle scalaire du maillage.
__host__ __device__ Accessor operator[](IndexerType item) const
Opérateur d'accès pour l'entité item.
__host__ __device__ void setValue(ItemLocalIdType lid, const DataType &v) const
Positionne la valeur pour l'entité de numéro local lid à v.
__host__ __device__ Accessor operator()(IndexerType item) const
Opérateur d'accès pour l'entité item.
__host__ __device__ Accessor value(ItemLocalIdType lid) const
Opérateur d'accès pour l'entité de numéro local lid.
__host__ __device__ Accessor value(IndexerType item) const
Opérateur d'accès pour l'entité item.
__host__ __device__ void setValue(IndexerType item, const DataType &v) const
Positionne la valeur pour l'entité item à v.
__host__ __device__ Accessor operator()(ItemLocalIdType lid) const
Opérateur d'accès pour l'entité de numéro local lid.
__host__ __device__ Accessor operator[](ItemLocalIdType lid) const
Opérateur d'accès pour l'entité de numéro local lid.
Vue en lecture sur une variable tableau du maillage.
__host__ __device__ const SmallSpan< const DataType > operator[](IndexerType i) const
Opérateur d'accès pour l'entité item.
__host__ __device__ const SmallSpan< const DataType > value(IndexerType i) const
Opérateur d'accès pour l'entité item.
__host__ __device__ const DataType & operator()(IndexerType item, Int32 i) const
Opérateur d'accès pour la i-ème valeur de l'entité item.
__host__ __device__ DataTypeReturnType operator[](IndexerType item) const
Opérateur d'accès pour l'entité item.
__host__ __device__ SmallSpan< DataType > value(IndexerType item) const
Opérateur d'accès pour l'entité item.
__host__ __device__ DataType & operator()(IndexerType item, Int32 i) const
Opérateur d'accès pour la i-ème valeur de l'entité item.
Vue en écriture sur une variable tableau du maillage.
__host__ __device__ DataTypeReturnType operator[](IndexerType item) const
Opérateur d'accès pour l'entité item.
__host__ __device__ SmallSpan< DataType > value(IndexerType item) const
Opérateur d'accès pour l'entité item.
__host__ __device__ DataType & operator()(IndexerType item, Int32 i) const
Opérateur d'accès pour la i-ème valeur de l'entité item.
Vue en écriture sur une variable scalaire de type 'RealN' du maillage.
ItemVariableRealNScalarOutViewT(const ViewBuildInfo &command, IVariable *var, SmallSpan< DataType > v)
Construit la vue.
SimdDirectSetter< DataType > operator()(SimdItemDirectIndexT< ItemType > simd_item) const
Opérateur d'accès vectoriel sans indirection.
SimdDirectSetter< DataType > operator[](SimdItemDirectIndexT< ItemType > simd_item) const
Opérateur d'accès vectoriel sans indirection.
__host__ __device__ Accessor operator()(IndexerType item) const
Opérateur d'accès pour l'entité item.
__host__ __device__ Accessor value(IndexerType item) 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.
__host__ __device__ Accessor operator[](IndexerType item) const
Opérateur d'accès pour l'entité item.
__host__ __device__ void setValue(IndexerType 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.
Vue en lecture sur une variable scalaire du maillage.
SimdTypeTraits< DataType >::SimdType operator[](SimdItemIndexT< ItemType > simd_item) const
Opérateur d'accès vectoriel avec indirection.
__host__ __device__ const DataType & operator[](IndexerType item) const
Opérateur d'accès pour l'entité item.
__host__ __device__ const DataType & operator()(IndexerType item) 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.
__host__ __device__ const DataType & value(IndexerType item) const
Opérateur d'accès pour l'entité item.
__host__ __device__ void setValue(IndexerType item, const DataType &v) const
Positionne la valeur pour l'entité item à v.
__host__ __device__ Accessor value(IndexerType item) const
Opérateur d'accès pour l'entité item.
__host__ __device__ Accessor operator()(IndexerType item) 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.
SimdDirectSetter< DataType > operator[](SimdItemDirectIndexT< ItemType > simd_item) const
Opérateur d'accès vectoriel sans indirection.
__host__ __device__ Accessor operator[](IndexerType item) const
Opérateur d'accès pour l'entité item.
Vue en écriture sur une variable scalaire du maillage.
__host__ __device__ Accessor value(IndexerType item) 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.
__host__ __device__ void setValue(IndexerType item, const DataType &v) const
Positionne la valeur pour l'entité item à v.
__host__ __device__ Accessor operator()(IndexerType item) const
Opérateur d'accès pour l'entité item.
__host__ __device__ Accessor operator[](IndexerType 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.
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.
Informations pour construire une vue pour les données sur accélérateur.
Interface d'une variable.
typename ItemTraitsT< ItemType >::LocalIdType LocalIdType
Type du localId()
GroupIndexTableView tableView() const
Vue sur table d'indirection du groupe.
GroupIndexTableView tableView() const
Vue sur table d'indirection du groupe.
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.
Variable scalaire sur un type d'entité du maillage.
Variable scalaire sur un type d'entité du maillage.
Variable scalaire sur un type d'entité du maillage.
Variable tableau sur un type d'entité du maillage.
Variable scalaire sur un type d'entité du maillage.
Objet permettant de positionner les valeurs d'un vecteur SIMD.
Index vectoriel sans indirection pour un type d'entité
Index vectoriel avec indirection pour un type d'entité. TODO: stocker les index dans un registre vect...
const SimdIndexType &ARCANE_RESTRICT simdLocalIds() const
Liste des numéros locaux des entités de l'instance.
Vue pour un tableau 2D dont la taille est un 'Int32'.
Vue d'un tableau d'éléments de type T.
constexpr __host__ __device__ pointer data() const noexcept
Pointeur sur le début de la vue.
constexpr __host__ __device__ SizeType size() const noexcept
Retourne la taille du tableau.
Vue d'un tableau d'éléments de type T.
IVariable * variable() const
Variable associée.
Espace de nom pour l'utilisation des accélérateurs.
auto viewInOut(const ViewBuildInfo &vbi, CellMaterialVariableScalarRef< DataType > &var)
Vue en lecture/écriture pour les variables materiaux scalaire.
auto viewOut(const ViewBuildInfo &vbi, CellMaterialVariableScalarRef< DataType > &var)
Vue en écriture pour les variables materiaux scalaire.
auto viewIn(const ViewBuildInfo &vbi, const CellMaterialVariableScalarRef< DataType > &var)
Vue en lecture pour les variables materiaux scalaire.
std::int32_t Int32
Type entier signé sur 32 bits.