12#ifndef ARCANE_CORE_MATERIALS_INTERNAL_IMESHMATERIALVARIABLEINTERNAL_H
13#define ARCANE_CORE_MATERIALS_INTERNAL_IMESHMATERIALVARIABLEINTERNAL_H
18#include "arcane/core/materials/MaterialsCoreGlobal.h"
19#include "arcane/accelerator/core/RunQueue.h"
33struct ARCANE_CORE_EXPORT CopyBetweenDataInfo
40 , m_data_size(data_size)
47 Int32 m_data_size = 0;
53class ARCANE_CORE_EXPORT VariableIndexerCommonArgs
57 VariableIndexerCommonArgs(
Int32 var_index,
const RunQueue& queue)
58 : m_var_index(var_index)
66 Int32 data_size)
const
74 bool isUseOneCommand()
const {
return m_copy_data; }
78 Int32 m_var_index = -1;
89class ARCANE_CORE_EXPORT CopyBetweenPartialAndGlobalArgs
90:
public VariableIndexerCommonArgs
94 CopyBetweenPartialAndGlobalArgs(
Int32 var_index,
98 bool is_global_to_partial,
100 : VariableIndexerCommonArgs(var_index, queue)
101 , m_local_ids(local_ids)
102 , m_indexes_in_multiple(indexes_in_multiple)
103 , m_do_copy_between_partial_and_pure(do_copy)
104 , m_is_global_to_partial(is_global_to_partial)
111 bool m_do_copy_between_partial_and_pure =
true;
112 bool m_is_global_to_partial =
false;
113 bool m_use_generic_copy =
false;
121class ARCANE_CORE_EXPORT InitializeWithZeroArgs
122:
public VariableIndexerCommonArgs
128 : VariableIndexerCommonArgs(var_index, queue)
129 , m_indexes_in_multiple(indexes_in_multiple)
142class ARCANE_CORE_EXPORT ResizeVariableIndexerArgs
143:
public VariableIndexerCommonArgs
147 ResizeVariableIndexerArgs(
Int32 var_index,
const RunQueue& queue)
148 : VariableIndexerCommonArgs(var_index, queue)
Déclarations de types sur les entités.
File d'exécution pour un accélérateur.
Vue constante d'un tableau de type T.
Classe d'aide à la construction d'une liste de ComponentItem pour un MeshMaterialVariableIndexer.
Arguments des méthodes de copie entre valeurs partielles et globales.
Interface d'un composant (matériau ou milieu) d'un maillage.
API interne Arcane de 'IMeshMaterialVariable'.
virtual void syncReferences(bool check_resize)=0
Synchronise les références.
virtual ConstArrayView< VariableRef * > variableReferenceList() const =0
Liste des 'VariableRef' associées à cette variable.
virtual void copyFromBuffer(SmallSpan< const MatVarIndex > matvar_indexes, Span< const std::byte > bytes, RunQueue *queue)=0
Copie les valeurs de la variable depuis un buffer.
virtual Int32 dataTypeSize() const =0
Taille en octet pour conserver une valeur de la variable.
virtual void restoreData(IMeshComponent *component, IData *data, Integer data_index, Int32ConstArrayView ids, bool allow_null_id)=0
virtual void resizeForIndexer(ResizeVariableIndexerArgs &args)=0
Redimensionne la valeur partielle associée à l'indexer index.
virtual void saveData(IMeshComponent *component, IData *data)=0
virtual void copyToBuffer(SmallSpan< const MatVarIndex > matvar_indexes, Span< std::byte > bytes, RunQueue *queue) const =0
Copie les valeurs de la variable dans un buffer.
virtual void copyBetweenPartialAndGlobal(const CopyBetweenPartialAndGlobalArgs &args)=0
virtual void initializeNewItemsWithZero(InitializeWithZeroArgs &args)=0
Initialize les valeurs des nouveaux constituants avec la valeur zéro.
virtual Ref< IData > internalCreateSaveDataRef(Integer nb_value)=0
Arguments des méthodes de copie entre valeurs partielles et globales.
Arguments des méthodes de copie entre valeurs partielles et globales.
UniqueArray< CopyBetweenDataInfo > * m_copy_data
Informations de copie si on n'utilise qu'une seule commande.
Référence à une instance.
Vue d'un tableau d'éléments de type T.
Vue d'un tableau d'éléments de type T.
Vecteur 1D de données avec sémantique par valeur (style STL).
Active toujours les traces dans les parties Arcane concernant les matériaux.
Int32 Integer
Type représentant un entier.
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
std::int32_t Int32
Type entier signé sur 32 bits.
Informations pour la copie entre deux zones mémoire.