Arcane  v3.14.10.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{
25class VariableDependInfo;
26}
27
28namespace Arcane::Materials
29{
30
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
33
34class IMeshMaterialVariableComputeFunction;
35class MeshMaterialVariableSynchronizerList;
36class MeshMaterialVariableDependInfo;
37class MeshMaterialVariableRef;
38class ComponentItemListBuilder;
39class IMeshMaterialVariableInternal;
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
82
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
147 virtual void fillPartialValuesWithSuperValues(Int32 level) =0;
148
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
179 virtual Int64 modifiedTime(IMeshMaterial* mat) =0;
180
183
186
188 virtual void addDepend(IVariable* var) =0;
189
191 virtual void addDepend(IVariable* var,const TraceInfo& tinfo) =0;
192
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
Interface d'une variable.
Definition IVariable.h:54
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Vue sur une liste de mailles avec infos sur les milieux.
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.
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.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Structure équivalente à la valeur booléenne vrai.