Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
IVariableMng.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 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/* IVariableMng.h (C) 2000-2023 */
9/* */
10/* Variable manager interface. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IVARIABLEMNG_H
13#define ARCANE_CORE_IVARIABLEMNG_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28class IVariable;
29class IVariableFilter;
30class VariableInfo;
31class MeshVariable;
32class IModule;
33class IParallelMng;
34class IDataReader;
35class IDataWriter;
36class IObservable;
41class VariableRef;
42class IMesh;
46
47/*---------------------------------------------------------------------------*/
48/*---------------------------------------------------------------------------*/
49
58{
59 public:
60
61 virtual ~IVariableMng() = default;
62
63 public:
64
66 ARCCORE_DEPRECATED_2020("Do not use this method. Try to get 'ISubDomain' from another way")
67 virtual ISubDomain* subDomain() = 0;
68
70 virtual IParallelMng* parallelMng() const = 0;
71
73 virtual ITraceMng* traceMng() = 0;
74
96 virtual IVariable* checkVariable(const VariableInfo& infos) = 0;
103
105 virtual void dumpList(std::ostream&, IModule*) = 0;
106
108 virtual void dumpList(std::ostream&) = 0;
109
128 virtual Real exportSize(const VariableCollection& vars) = 0;
129
138
146
155 virtual void writeVariables(IDataWriter* writer, IVariableFilter* filter = 0) = 0;
156
163 virtual void writeVariables(IDataWriter* writer, const VariableCollection& vars) = 0;
164
177 virtual void writeCheckpoint(ICheckpointWriter* writer) = 0;
178
189 virtual void writePostProcessing(IPostProcessorWriter* writer) = 0;
190
203 virtual void readVariables(IDataReader* reader, IVariableFilter* filter = 0) = 0;
204
218 virtual void readCheckpoint(ICheckpointReader* reader) = 0;
219
233 virtual void readCheckpoint(const CheckpointReadInfo& infos) = 0;
234
236 virtual void variables(VariableRefCollection v, IModule* i) = 0;
237
240
243
245 virtual void notifyUsedVariableChanged() = 0;
246
248 virtual IVariable* findVariable(const String& name) = 0;
249
251 virtual IVariable* findMeshVariable(IMesh* mesh, const String& name) = 0;
252
254 virtual IVariable* findVariableFullyQualified(const String& name) = 0;
255
257 virtual void dumpStats(std::ostream& ostr, bool is_verbose) = 0;
258
260 virtual void dumpStatsJSON(JSONWriter& writer) = 0;
261
263 virtual IVariableUtilities* utilities() const = 0;
264
267
268 public:
269
271
272
274
278
279 public:
280
288 ARCANE_DEPRECATED_REASON("Y2023: This method is internal to Arcane")
289 virtual void build() = 0;
290
297 ARCANE_DEPRECATED_REASON("Y2023: This method is internal to Arcane")
298 virtual void initialize() = 0;
299
301 ARCANE_DEPRECATED_REASON("Y2023: This method is internal to Arcane")
302 virtual void removeAllVariables() = 0;
303
305 ARCANE_DEPRECATED_REASON("Y2023: This method is internal to Arcane")
306 virtual void detachMeshVariables(IMesh* mesh) = 0;
307
317 ARCANE_DEPRECATED_REASON("Y2023: This method is internal to Arcane")
318 virtual void addVariableRef(VariableRef* var) = 0;
319
328 ARCANE_DEPRECATED_REASON("Y2023: This method is internal to Arcane")
329 virtual void removeVariableRef(VariableRef* var) = 0;
330
342 ARCANE_DEPRECATED_REASON("Y2023: This method is internal to Arcane")
343 virtual void addVariable(IVariable* var) = 0;
344
355 ARCANE_DEPRECATED_REASON("Y2023: This method is internal to Arcane")
356 virtual void removeVariable(IVariable* var) = 0;
357
366 ARCANE_DEPRECATED_REASON("Y2023: This method is internal to Arcane")
367 virtual void initializeVariables(bool is_continue) = 0;
368
369 public:
370
375 ARCANE_DEPRECATED_REASON("Y2023: This method is internal to Arcane")
376 virtual ISubDomain* _internalSubDomain() const = 0;
377
378 public:
379
382};
383
384/*---------------------------------------------------------------------------*/
385/*---------------------------------------------------------------------------*/
386
387} // End namespace Arcane
388
389/*---------------------------------------------------------------------------*/
390/*---------------------------------------------------------------------------*/
391
392#endif
Declarations of Arcane's general types.
Checkpoint reading information.
Interface for the protection/recovery reading service.
Interface of the checkpoint/recovery write service.
Interface for reading variable data.
Definition IDataReader.h:35
Interface for writing variable data.
Definition IDataWriter.h:45
Interface of a module.
Definition IModule.h:40
Interface of the parallelism manager for a subdomain.
Interface for a writer for post-processing information.
Interface of the subdomain manager.
Definition ISubDomain.h:75
Functor of a filter applicable to variables.
Interface of the variable manager.
Variable manager interface.
virtual void writeCheckpoint(ICheckpointWriter *writer)=0
Writes variables for a checkpoint.
virtual EventObservable< const VariableStatusChangedEventArgs & > & onVariableRemoved()=0
Event sent when a variable is destroyed.
virtual IVariableUtilities * utilities() const =0
Interface of associated utility functions.
virtual void notifyUsedVariableChanged()=0
Notifies the manager that a variable's state has changed.
virtual void readVariables(IDataReader *reader, IVariableFilter *filter=0)=0
Reads all variables.
virtual void variables(VariableRefCollection v, IModule *i)=0
Gets all variables of module i.
virtual void removeVariableRef(VariableRef *var)=0
Removes a reference to a variable.
virtual void addVariable(IVariable *var)=0
Adds a variable.
virtual ~IVariableMng()=default
Frees resources.
virtual IParallelMng * parallelMng() const =0
Associated parallelism manager.
virtual EventObservable< const VariableStatusChangedEventArgs & > & onVariableAdded()=0
Event sent when a variable is created.
virtual void dumpStatsJSON(JSONWriter &writer)=0
Writes statistics with the writer writer.
virtual VariableCollection usedVariables()=0
List of used variables.
virtual void writeVariables(IDataWriter *writer, IVariableFilter *filter=0)=0
Writes the variables.
virtual IVariable * findMeshVariable(IMesh *mesh, const String &name)=0
Returns the mesh variable named name or 0 if no such name exists.
virtual IObservable * writeObservable()=0
Observable for variables being written.
virtual IVariable * checkVariable(const VariableInfo &infos)=0
Checks a variable.
virtual void detachMeshVariables(IMesh *mesh)=0
Detaches variables associated with the mesh mesh.
virtual void writePostProcessing(IPostProcessorWriter *writer)=0
Writes variables for post-processing.
virtual void build()=0
Constructs the instance members.
virtual IVariableSynchronizerMng * synchronizerMng() const =0
Interface of the variable synchronization manager.
virtual IVariableMngInternal * _internalApi()=0
Internal Arcane API.
virtual IVariable * findVariable(const String &name)=0
Returns the variable named name or 0 if no such name exists.
virtual ISubDomain * subDomain()=0
Sub-domain manager.
virtual ISubDomain * _internalSubDomain() const =0
virtual void initializeVariables(bool is_continue)=0
Initializes the variables.
virtual void initialize()=0
Initializes the instance. The instance is not usable until this method has been called.
virtual ITraceMng * traceMng()=0
Message manager.
virtual IObservable * readObservable()=0
Observable for variables being read.
virtual void readCheckpoint(ICheckpointReader *reader)=0
Reads all variables from a checkpoint.
virtual Real exportSize(const VariableCollection &vars)=0
Estimated size for exporting variables.
virtual IVariable * findVariableFullyQualified(const String &name)=0
Returns the fully qualified variable named name or 0 if no such name exists.
virtual void addVariableRef(VariableRef *var)=0
Adds a reference to a variable.
virtual void dumpStats(std::ostream &ostr, bool is_verbose)=0
Writes statistics about variables to the stream ostr.
virtual void removeVariable(IVariable *var)=0
Removes a variable.
virtual void removeAllVariables()=0
Removes and destroys the variables managed by this manager.
virtual String generateTemporaryVariableName()=0
Generates a name for a temporary variable.
virtual void dumpList(std::ostream &, IModule *)=0
Displays the list of variables managed by a module.
Interface of the variable synchronization manager.
Interface providing utility functions on variables.
Interface of a variable.
Definition IVariable.h:40
Information characterizing a variable.
Reference to a variable.
Definition VariableRef.h:56
Arguments of the event notifying a change in the state of a variable.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Collection< VariableRef * > VariableRefCollection
Collection of variables.
double Real
Type representing a real number.