Arcane  v3.16.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
core/materials/IMeshMaterialVariable.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2023 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/* IMeshMaterialVariable.h (C) 2000-2023 */
9/* */
10/* Interface d'un variable sur un matériau du maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_MATERIALS_IMESHMATERIALVARIABLE_H
13#define ARCANE_CORE_MATERIALS_IMESHMATERIALVARIABLE_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/ItemTypes.h"
18#include "arcane/core/materials/MaterialsCoreGlobal.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
26}
27
28namespace Arcane::Materials
29{
30
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
33
36class MeshMaterialVariableDependInfo;
40
41/*---------------------------------------------------------------------------*/
42/*---------------------------------------------------------------------------*/
46class ARCANE_CORE_EXPORT IMeshMaterialVariable
47{
48 public:
49
50 virtual ~IMeshMaterialVariable() = default;
51
52 public:
53
55 virtual String name() const =0;
56
58 virtual IVariable* globalVariable() const =0;
59
65 virtual void buildFromManager(bool is_continue) =0;
66
74 virtual void syncReferences() =0;
75
81 virtual void addVariableRef(MeshMaterialVariableRef* var_ref) =0;
82
89 virtual void removeVariableRef(MeshMaterialVariableRef* var_ref) =0;
90
93
99
104 virtual void setKeepOnChange(bool v) =0;
105
110 virtual bool keepOnChange() const =0;
111
119 virtual void synchronize() =0;
120
121 virtual void synchronize(MeshMaterialVariableSynchronizerList& sync_list) =0;
122
126 virtual void dumpValues(std::ostream& ostr) =0;
127
131 virtual void dumpValues(std::ostream& ostr,AllEnvCellVectorView view) =0;
132
137
148
150 virtual void serialize(ISerializer* sbuffer,Int32ConstArrayView ids) =0;
151
153 virtual MatVarSpace space() const =0;
154
155 public:
156
158
159
168 virtual void update(IMeshMaterial* mat) =0;
169
176 virtual void setUpToDate(IMeshMaterial* mat) =0;
177
180
182 virtual void addDepend(IMeshMaterialVariable* var) =0;
183
185 virtual void addDepend(IMeshMaterialVariable* var,const TraceInfo& tinfo) =0;
186
188 virtual void addDepend(IVariable* var) =0;
189
191 virtual void addDepend(IVariable* var,const TraceInfo& tinfo) =0;
192
195 virtual void removeDepend(IMeshMaterialVariable* var) =0;
196
199 virtual void removeDepend(IVariable* var) =0;
200
207
210
220
221 public:
222
223 virtual IMeshMaterialVariableInternal* _internalApi() =0;
224};
225
226/*---------------------------------------------------------------------------*/
227/*---------------------------------------------------------------------------*/
231template<typename TrueType>
233{
234 public:
235 static ARCANE_CORE_EXPORT MaterialVariableTypeInfo _buildVarTypeInfo(MatVarSpace space);
236 static ARCANE_CORE_EXPORT TrueType* getVariableReference(const MaterialVariableBuildInfo& v,MatVarSpace mvs);
237};
238
239/*---------------------------------------------------------------------------*/
240/*---------------------------------------------------------------------------*/
241
242} // End namespace Arcane::Materials
243
244/*---------------------------------------------------------------------------*/
245/*---------------------------------------------------------------------------*/
246
247#endif
248
Tableau d'items de types quelconques.
Interface d'une variable.
Definition IVariable.h:56
Vue sur une liste de mailles avec infos sur les milieux.
Classe d'aide à la construction d'une liste de ComponentItem pour un MeshMaterialVariableIndexer.
API interne Arcane de 'IMeshMaterialVariable'.
Interface d'une variable matériau d'un maillage.
virtual void addDepend(IVariable *var, const TraceInfo &tinfo)=0
Ajoute var à la liste des dépendances avec les infos de trace tinfo.
virtual void addVariableRef(MeshMaterialVariableRef *var_ref)=0
Ajoute une référence à cette variable.
virtual bool keepOnChange() const =0
Indique si on souhaite conserver la valeur de la variable apres un changement de la liste des matéria...
virtual void setComputeFunction(IMeshMaterialVariableComputeFunction *v)=0
Positionne la fonction de recalcule de la variable.
virtual void synchronize()=0
Synchronise la variable.
virtual void addDepend(IMeshMaterialVariable *var)=0
Ajoute var à la liste des dépendances.
virtual void setKeepOnChange(bool v)=0
Indique si on souhaite conserver la valeur de la variable apres un changement de la liste des matéria...
virtual MatVarSpace space() const =0
Espace de définition de la variable (matériau+milieu ou milieu uniquement)
virtual Int64 modifiedTime(IMeshMaterial *mat)=0
Temps auquel la variable a été mise à jour.
virtual void removeDepend(IMeshMaterialVariable *var)=0
Supprime var de la liste des dépendances.
virtual void dependInfos(Array< VariableDependInfo > &infos, Array< MeshMaterialVariableDependInfo > &mat_infos)=0
Infos de dépendances.
virtual void removeVariableRef(MeshMaterialVariableRef *var_ref)=0
Supprime une référence à cette variable.
virtual void dumpValues(std::ostream &ostr, AllEnvCellVectorView view)=0
Affiche les valeurs de la variable pour la vue view sur le flot ostr.
virtual void fillPartialValuesWithGlobalValues()=0
Remplit les valeurs partielles avec la valeur de la maille globale associée.
virtual void syncReferences()=0
Synchronise les références.
virtual MeshMaterialVariableRef * firstReference() const =0
virtual void addDepend(IMeshMaterialVariable *var, const TraceInfo &tinfo)=0
Ajoute var à la liste des dépendances avec les infos de trace tinfo.
virtual void fillPartialValuesWithSuperValues(Int32 level)=0
Remplit les valeurs partielles avec la valeur de la maille du dessus. Si level vaut LEVEL_MATERIAL,...
virtual IVariable * globalVariable() const =0
Variable globale sur le maillage associée.
virtual void addDepend(IVariable *var)=0
Ajoute var à la liste des dépendances.
virtual IMeshMaterialVariableComputeFunction * computeFunction()=0
Fonction utilisée pour mettre à jour la variable.
virtual void setUpToDate(IMeshMaterial *mat)=0
Indique que la variable vient d'être mise à jour.
virtual void dumpValues(std::ostream &ostr)=0
Affiche les valeurs de la variable sur le flot ostr.
virtual void removeDepend(IVariable *var)=0
Supprime var de la liste des dépendances.
virtual IVariable * materialVariable(IMeshMaterial *mat)=0
Variable contenant les valeurs spécifiques du matériau mat.
virtual void serialize(ISerializer *sbuffer, Int32ConstArrayView ids)=0
Sérialise la variable pour les entités de numéro local ids.
virtual void update(IMeshMaterial *mat)=0
Recalcule la variable pour le matériau mat si nécessaire.
virtual String name() const =0
Nom de la variable.
virtual void buildFromManager(bool is_continue)=0
Construit les infos de la variable. A usage interne à Arcane.
Interface d'un matériau d'un maillage.
Informations caractérisant le type d'une variable matériau.
Classe pour gérer la création du type concret de la variable matériaux.
Classe de base des références aux variables matériaux.
Chaîne de caractères unicode.
Informations sur une dépendance de variable.
Active toujours les traces dans les parties Arcane concernant les matériaux.
MatVarSpace
Espace de définition d'une variable matériau.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
std::int64_t Int64
Type entier signé sur 64 bits.
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:569
std::int32_t Int32
Type entier signé sur 32 bits.
Structure équivalente à la valeur booléenne vrai.