12#ifndef ARCANE_ACCELERATOR_MATERIALVARIABLEVIEWS_H
13#define ARCANE_ACCELERATOR_MATERIALVARIABLEVIEWS_H
17#include "arcane/core/materials/IMeshMaterialVariable.h"
20#include "arcane/core/materials/MatItem.h"
22#include "arcane/accelerator/AcceleratorGlobal.h"
33namespace Arcane::Accelerator
41class ARCANE_ACCELERATOR_EXPORT MatVariableViewBase
54template <
typename ItemType,
typename DataType>
55class MatItemVariableScalarInViewT
56:
public MatVariableViewBase
67 : MatVariableViewBase(vbi, var)
72 ARCCORE_HOST_DEVICE
const DataType&
operator[](ComponentItemLocalId lid)
const
80 return this->m_value[0][pmvi.valueIndex()];
84 ARCCORE_HOST_DEVICE
const DataType&
operator[](ItemIndexType item)
const
86 return this->m_value[0][item.localId()];
90 ARCCORE_HOST_DEVICE
const DataType&
value(ComponentItemLocalId mvi)
const
97 return this->m_value[0][idx.valueIndex()];
110template <
typename ItemType,
typename Accessor>
111class MatItemVariableScalarOutViewT
112:
public MatVariableViewBase
116 using DataType =
typename Accessor::ValueType;
117 using DataTypeReturnType = DataType&;
127 : MatVariableViewBase(vbi, var)
132 ARCCORE_HOST_DEVICE Accessor
operator[](ComponentItemLocalId lid)
const
139 return Accessor(this->m_value[0][pmvi.valueIndex()]);
143 ARCCORE_HOST_DEVICE Accessor
operator[](ItemIndexType item)
const
145 ARCANE_CHECK_AT(item.localId(), this->m_value[0].size());
146 return Accessor(this->m_value[0].data() + item.localId());
150 ARCCORE_HOST_DEVICE Accessor
value(ComponentItemLocalId lid)
const
156 ARCCORE_HOST_DEVICE
void setValue(ComponentItemLocalId lid,
const DataType& v)
const
163 return Accessor(this->m_value[0][idx.valueIndex()]);
176template <
typename DataType>
auto
179 using Accessor = DataViewSetter<DataType>;
188template <
typename DataType>
auto
191 using Accessor = DataViewSetter<DataType>;
200template <
typename DataType>
auto
203 using Accessor = DataViewGetterSetter<DataType>;
212template <
typename DataType>
auto
215 using Accessor = DataViewGetterSetter<DataType>;
225template <
typename DataType>
auto
237template <
typename DataType>
auto
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.
Vue en lecture sur une variable scalaire du maillage.
__host__ __device__ const DataType & operator[](ComponentItemLocalId lid) const
Opérateur d'accès pour l'entité item.
__host__ __device__ const DataType & value(ComponentItemLocalId mvi) const
Opérateur d'accès pour l'entité item.
__host__ __device__ const DataType & operator[](PureMatVarIndex pmvi) const
Opérateur d'accès pour l'entité item.
__host__ __device__ const DataType & operator[](ItemIndexType item) const
Surcharge pour accéder à la valeure globale à partir du cell id.
Vue en écriture sur une variable scalaire du maillage.
__host__ __device__ Accessor operator[](ComponentItemLocalId lid) const
Opérateur d'accès pour l'entité item.
__host__ __device__ Accessor value(ComponentItemLocalId lid) const
Opérateur d'accès pour l'entité item.
__host__ __device__ void setValue(ComponentItemLocalId lid, const DataType &v) const
Positionne la valeur pour l'entité item à v.
__host__ __device__ Accessor operator[](ItemIndexType item) const
Surcharge pour accéder à la valeure globale à partir du cell id.
Vue modifiable d'un tableau d'un type T.
Variable scalaire sur les mailles d'un milieu du maillage.
Variable scalaire sur les mailles d'un matériau du maillage.
constexpr __host__ __device__ MatVarIndex localId() const
Index générique pour accéder aux valeurs d'une variable.
Interface d'une variable matériau d'un maillage.
constexpr __host__ __device__ Int32 arrayIndex() const
Retourne l'indice du tableau de valeur dans la liste des variables.
constexpr __host__ __device__ Int32 valueIndex() const
Retourne l'indice dans le tableau de valeur.
IMeshMaterialVariable * materialVariable() const
Variable matériau associée.
Index d'un Item matériaux pure dans une variable.
Active toujours les traces dans les parties Arcane concernant les matériaux.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-