Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
VariableUtilities.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/* VariableUtilities.h (C) 2000-2015 */
9/* */
10/* Utility functions for variables. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IMPL_VARIABLEUTILITIES_H
13#define ARCANE_IMPL_VARIABLEUTILITIES_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/TraceAccessor.h"
18#include "arcane/core/IVariableUtilities.h"
19
20#include <set>
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
25namespace Arcane
26{
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
30
31class IVariableMng;
33
34/*---------------------------------------------------------------------------*/
35/*---------------------------------------------------------------------------*/
36
40class VariableUtilities
41: public TraceAccessor
42, public IVariableUtilities
43{
44 public:
45
46 VariableUtilities(IVariableMng* vm);
47 virtual ~VariableUtilities();
48
49 public:
50
51 virtual IVariableMng* variableMng() const { return m_variable_mng; }
52 virtual void dumpDependencies(IVariable* var, std::ostream& ostr, bool is_recursive);
53 virtual void dumpAllVariableDependencies(std::ostream& ostr, bool is_recursive);
55 const VariableCollection input_variables,
56 bool dump_not_common);
57
58 private:
59
60 IVariableMng* m_variable_mng;
61
62 void _dumpDependencies(IVariable* var, std::ostream& ostr, bool is_recursive);
63 void _dumpDependencies(VariableDependInfo& vdi, std::ostream& ostr, bool is_recursive,
64 std::set<IVariable*>& done_vars, Integer indent_level);
65};
66
67/*---------------------------------------------------------------------------*/
68/*---------------------------------------------------------------------------*/
69
70} // namespace Arcane
71
72/*---------------------------------------------------------------------------*/
73/*---------------------------------------------------------------------------*/
74
75#endif
Interface of the parallelism manager for a subdomain.
Variable manager interface.
Interface providing utility functions on variables.
Interface of a variable.
Definition IVariable.h:40
TraceAccessor(ITraceMng *m)
Constructs an accessor via the trace manager m.
Information about a variable dependency.
virtual void dumpAllVariableDependencies(std::ostream &ostr, bool is_recursive)
Displays dependency information for all variables.
virtual void dumpDependencies(IVariable *var, std::ostream &ostr, bool is_recursive)
Displays dependency information for a variable.
virtual VariableCollection filterCommonVariables(IParallelMng *pm, const VariableCollection input_variables, bool dump_not_common)
virtual IVariableMng * variableMng() const
Associated variable manager.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Int32 Integer
Type representing an integer.