Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
IVariableUtilities.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/* IVariableUtilities.h (C) 2000-2025 */
9/* */
10/* Interface providing utility functions on variables. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IVARIABLEUTILITIES_H
13#define ARCANE_CORE_IVARIABLEUTILITIES_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28/*!
29 * \brief Interface providing utility functions on variables.
30 */
31class ARCANE_CORE_EXPORT IVariableUtilities
32{
33 public:
34
35 virtual ~IVariableUtilities() = default; //!< Frees resources.
36
37 public:
38
39 //! Associated variable manager
40 virtual IVariableMng* variableMng() const = 0;
41
42 /*!
43 * \brief Displays dependency information for a variable.
44 *
45 * Displays on the stream \a ostr the information about the variables
46 * that depend on \a var. If \a is_recursive is true, this
47 * method is also called for these variables.
48 */
49 virtual void dumpDependencies(IVariable* var, std::ostream& ostr, bool is_recursive) = 0;
50
51 /*!
52 * \brief Displays dependency information for all variables.
53 *
54 * Displays on the stream \a ostr the information of all
55 * used variables.
56 */
57 virtual void dumpAllVariableDependencies(std::ostream& ostr, bool is_recursive) = 0;
58
59 /*!
60 * \brief Filters common variables between multiple ranks.
61 *
62 * This method allows filtering the variables in \a input_variables
63 * that are present on all ranks of \a pm. It returns
64 * the list sorted alphabetically of variables common to all
65 * ranks.
66 *
67 * If \a dump_no_common is true, it displays (via ITraceMng::info()) the list
68 * of variables that are not common on all ranks.
69 */
71 VariableCollection input_variables,
72 bool dump_not_common) = 0;
73};
74
75/*---------------------------------------------------------------------------*/
76/*---------------------------------------------------------------------------*/
77
78} // namespace Arcane
79
80/*---------------------------------------------------------------------------*/
81/*---------------------------------------------------------------------------*/
82
83#endif
Declarations of Arcane's general types.
Interface of the parallelism manager for a subdomain.
Variable manager interface.
Interface providing utility functions on variables.
virtual void dumpAllVariableDependencies(std::ostream &ostr, bool is_recursive)=0
Displays dependency information for all variables.
virtual VariableCollection filterCommonVariables(IParallelMng *pm, VariableCollection input_variables, bool dump_not_common)=0
Filters common variables between multiple ranks.
virtual void dumpDependencies(IVariable *var, std::ostream &ostr, bool is_recursive)=0
Displays dependency information for a variable.
virtual IVariableMng * variableMng() const =0
Associated variable manager.
virtual ~IVariableUtilities()=default
Frees resources.
Interface of a variable.
Definition IVariable.h:40
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --