Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
MeshMaterialVariablePrivate.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2024 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* MeshMaterialVariablePrivate.h (C) 2000-2024 */
9/* */
10/* Partie privée d'une variable sur un matériau du maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MATERIALS_INTERNAL_MESHMATERIALVARIABLEPRIVATE_H
13#define ARCANE_MATERIALS_INTERNAL_MESHMATERIALVARIABLEPRIVATE_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/Array.h"
18#include "arcane/utils/ScopedPtr.h"
19
20#include "arcane/core/VariableDependInfo.h"
21#include "arcane/core/materials/internal/IMeshMaterialVariableInternal.h"
22
23#include "arcane/materials/MeshMaterialVariableDependInfo.h"
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28namespace Arcane
29{
30class IObserver;
31}
32
33namespace Arcane::Materials
34{
35
36/*---------------------------------------------------------------------------*/
37/*---------------------------------------------------------------------------*/
44{
45 public:
46
48 MeshMaterialVariable* variable);
50
51 public:
52
53 MatVarSpace space() const { return m_var_space; }
54 bool hasRecursiveDepend() const { return m_has_recursive_depend; }
55 const String& name() const { return m_name; }
56 IMeshMaterialMng* materialMng() const { return m_material_mng; }
57 IMeshMaterialVariableInternal* _internalApi() { return this; }
58
59 public:
60
61 Int32 dataTypeSize() const override;
63 Span<std::byte> bytes, RunQueue* queue) const override;
64
66 Span<const std::byte> bytes, RunQueue* queue) override;
67
69
70 void saveData(IMeshComponent* component,IData* data) override;
71
72 void restoreData(IMeshComponent* component, IData* data, Integer data_index,
73 Int32ConstArrayView ids, bool allow_null_id) override;
74
76
78
80 {
81 return m_refs.view();
82 }
83 void syncReferences(bool check_resize) override;
85
86 public:
87
88 Int32 m_nb_reference = 0;
89 MeshMaterialVariableRef* m_first_reference = nullptr;
90
91 private:
92
94 IMeshMaterialMng* m_material_mng = nullptr;
95
96 public:
97
105
106 bool m_keep_on_change = true;
107 IObserver* m_global_variable_changed_observer = nullptr;
108
111
114
117
120
121 private:
122
123 bool m_has_recursive_depend = true;
125 MeshMaterialVariable* m_variable = nullptr;
126};
127
128/*---------------------------------------------------------------------------*/
129/*---------------------------------------------------------------------------*/
130
131} // namespace Arcane::Materials
132
133/*---------------------------------------------------------------------------*/
134/*---------------------------------------------------------------------------*/
135
136#endif
137
File d'exécution pour un accélérateur.
Interface d'une donnée.
Definition IData.h:33
Interface d'un observateur.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Arguments des méthodes de copie entre valeurs partielles et globales.
Interface d'un composant (matériau ou milieu) d'un maillage.
Interface du gestionnaire des matériaux et des milieux d'un maillage.
API interne Arcane de 'IMeshMaterialVariable'.
Arguments des méthodes de copie entre valeurs partielles et globales.
UniqueArray< VariableRef * > m_refs
Stocke les références sur les variables tableaux qui servent pour stocker les valeurs par matériau....
void restoreData(IMeshComponent *component, IData *data, Integer data_index, Int32ConstArrayView ids, bool allow_null_id) override
void copyBetweenPartialAndGlobal(const CopyBetweenPartialAndGlobalArgs &args) override
UniqueArray< VariableDependInfo > m_depends
Liste des dépendances de cette variable.
UniqueArray< Int64 > m_modified_times
Tag de la dernière modification par matériau.
void copyToBuffer(SmallSpan< const MatVarIndex > matvar_indexes, Span< std::byte > bytes, RunQueue *queue) const override
Copie les valeurs de la variable dans un buffer.
ScopedPtrT< IMeshMaterialVariableComputeFunction > m_compute_function
Fonction de calcul.
ConstArrayView< VariableRef * > variableReferenceList() const override
Liste des 'VariableRef' associées à cette variable.
String m_name
Première référence sur la variable.
UniqueArray< MeshMaterialVariableDependInfo > m_mat_depends
Liste des dépendances de cette variable.
Ref< IData > internalCreateSaveDataRef(Integer nb_value) override
void copyFromBuffer(SmallSpan< const MatVarIndex > matvar_indexes, Span< const std::byte > bytes, RunQueue *queue) override
Copie les valeurs de la variable depuis un buffer.
void syncReferences(bool check_resize) override
Synchronise les références.
Int32 dataTypeSize() const override
Taille en octet pour conserver une valeur de la variable.
void resizeForIndexer(ResizeVariableIndexerArgs &args) override
Redimensionne la valeur partielle associée à l'indexer index.
void initializeNewItemsWithZero(InitializeWithZeroArgs &args) override
Initialize les valeurs des nouveaux constituants avec la valeur zéro.
void saveData(IMeshComponent *component, IData *data) override
Classe de base des références aux variables matériaux.
Classe de base des variables matériaux.
Arguments des méthodes de copie entre valeurs partielles et globales.
Vue constante d'un tableau de type T.
Chaîne de caractères unicode.
Active toujours les traces dans les parties Arcane concernant les matériaux.
MatVarSpace
Espace de définition d'une variable matériau.
@ MaterialAndEnvironment
Variable ayant des valeurs sur les milieux et matériaux.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-