12#ifndef ARCANE_ACCELERATOR_MATERIALVARIABLEVIEWS_H
13#define ARCANE_ACCELERATOR_MATERIALVARIABLEVIEWS_H
17#include "arcane/utils/ArcaneCxx20.h"
19#include "arcane/core/materials/IMeshMaterialVariable.h"
22#include "arcane/core/materials/MatItem.h"
57template<
typename ItemType,
typename DataType>
73 return this->m_value[
lid.localId().arrayIndex()][
lid.localId().valueIndex()];
79 return this->m_value[0][
pmvi.valueIndex()];
83 ARCCORE_HOST_DEVICE
const DataType&
operator[](ItemIndexType item)
const
85 return this->m_value[0][item.localId()];
91 return this->m_value[
mvi.localId().arrayIndex()][
mvi.localId().valueIndex()];
96 return this->m_value[0][idx.valueIndex()];
123template<
typename ItemType,
typename Accessor>
129 using DataType =
typename Accessor::ValueType;
130 using DataTypeReturnType = DataType&;
143 return Accessor(this->m_value[
lid.localId().arrayIndex()].
data()+
lid.localId().valueIndex());
148 return Accessor(this->m_value[0][
pmvi.valueIndex()]);
152 ARCCORE_HOST_DEVICE Accessor
operator[](ItemIndexType item)
const
154 ARCANE_CHECK_AT(item.localId(),this->m_value[0].size());
155 return Accessor(this->m_value[0].data() + item.localId());
161 return Accessor(this->m_value[
lid.localId().arrayIndex()].
data()+
lid.localId().valueIndex());
167 this->m_value[
lid.localId().arrayIndex()][
lid.localId().valueIndex()] = v;
172 return Accessor(this->m_value[0][idx.valueIndex()]);
185template<
typename DataType>
auto
197template<
typename DataType>
auto
209template<
typename DataType>
auto
221template<
typename DataType>
auto
234template<
typename DataType>
auto
246template<
typename DataType>
auto
Vue en lecture sur une variable scalaire du maillage. TODO: Faut-il rajouter la gestion des SIMD comm...
ARCCORE_HOST_DEVICE const DataType & operator[](ComponentItemLocalId lid) const
Opérateur d'accès pour l'entité item.
ARCCORE_HOST_DEVICE const DataType & operator[](ItemIndexType item) const
Surcharge pour accéder à la valeure globale à partir du cell id.
ARCCORE_HOST_DEVICE const DataType & value(ComponentItemLocalId mvi) const
Opérateur d'accès pour l'entité item.
ARCCORE_HOST_DEVICE const DataType & operator[](PureMatVarIndex pmvi) const
Opérateur d'accès pour l'entité item.
Vue en écriture sur une variable scalaire du maillage. TODO: Faut il rajouter la gestion des types SI...
ARCCORE_HOST_DEVICE Accessor operator[](ComponentItemLocalId lid) const
Opérateur d'accès pour l'entité item.
ARCCORE_HOST_DEVICE Accessor operator[](ItemIndexType item) const
Surcharge pour accéder à la valeure globale à partir du cell id.
ARCCORE_HOST_DEVICE Accessor value(ComponentItemLocalId lid) const
Opérateur d'accès pour l'entité item.
ARCCORE_HOST_DEVICE void setValue(ComponentItemLocalId lid, const DataType &v) const
Positionne la valeur pour l'entité item à v.
Classe de base des vues sur les variables matériaux.
Gestion d'une commande sur accélérateur.
Caractéristiques des éléments du maillage.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Index d'un Item matériaux dans une variable.
Interface d'une variable matériau d'un maillage.
Index d'un Item matériaux pure dans une variable.
constexpr const_pointer data() const noexcept
Pointeur sur le début de la vue.
Espace de nom pour l'utilisation des accélérateurs.
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.
Active toujours les traces dans les parties Arcane concernant les matériaux.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-