Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
ICaseFunction.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/* ICaseFunction.h (C) 2000-2023 */
9/* */
10/* Interface d'une fonction du jeu de données. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_ICASEFUNCTION_H
13#define ARCANE_CORE_ICASEFUNCTION_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27/*!
28 * \internal
29 *
30 * \brief Interface d'une fonction du jeu de données.
31 *
32 * \ingroup CaseOption
33 *
34 * Une fonction du jeu de données est une fonction mathématique f(x)->y avec
35 * \c x le \e paramètre et \c y la \e valeur.
36 *
37 * Dans la version actuelle, une fonction est décrite par morceaux par
38 * un ensemble de couples (x,y).
39 *
40 * Les méthodes qui permettent d'éditer cette table de marche sont utilisées
41 * principalement par l'éditeur du jeu de données. Dans tous les cas,
42 * elles ne doivent pas être appelées une fois que le jeu de données complet
43 * a été lu (ICaseMng::readCaseOptions).
44 */
45class ARCANE_CORE_EXPORT ICaseFunction
46{
48
49 public:
50
51 /*!
52 * \brief Type d'un paramètre d'une fonction.
53 */
55 {
56 ParamUnknown =0, //!< Type de paramètre inconnu
57 ParamReal = 1, //!< Paramètre de type Real
58 ParamInteger = 2 //!< Paramètre de type Integer
59 };
60 /*!
61 * \brief Type d'une valeur d'une fonction
62 */
64 {
65 ValueUnknown = 0, //!< Type de la valeur inconnu
66 ValueReal = 1, //!< Valeur de type réelle
67 ValueInteger = 2, //!< Valeur de type entière
68 ValueBool = 3, //!< Valeur de type entière
69 ValueString = 4, //!< Valeur de type chaîne de caractères
70 ValueReal3 = 5 //!< Valeur de type 'Real3'
71 };
72
73 public:
74
75 // NOTE: Laisse temporairement ce destructeur publique tant
76 // qu'on appelle explicitement ce destructeur mais avec le compteur
77 // de référence cela ne sera normalement plus le cas.
78 virtual ~ICaseFunction() = default; //!< Libère les ressources
79
80 public:
81
82 /*! @name Nom de la fonction */
83 //@{
84 //! nom de la fonction
85 virtual String name() const =0;
86
87 //! Positionne le nom de la fonction en \a new_name
88 virtual void setName(const String& new_name) =0;
89 //@}
90
91 /*! @name Type du paramètre */
92 //@{
93 //! Type du paramètre de la fonction
94 virtual eParamType paramType() const =0;
95
96 //! Positionne le type de paramètre de la fonction
97 virtual void setParamType(eParamType type) =0;
98 //@}
99
100 /*! @name Type de la valeur */
101 //@{
102 //! Type des valeurs de la fonction
103 virtual eValueType valueType() const =0;
104
105 //! Positionne le type des valeurs de la fonction
106 virtual void setValueType(eValueType type) =0;
107 //@}
108
109 /*!
110 * \brief Affecte une fonction de transformation de la valeur.
111 * Pour l'instant, il s'agit juste d'un coefficient multiplicatif.
112 * La chaîne \a str doit pouvoir être convertie en le type de la valeur.
113 */
114 virtual void setTransformValueFunction(const String& str) =0;
115
116 //! Retourne la fonction de transformation de la valeur.
117 virtual String transformValueFunction() const =0;
118
119 /*!
120 * \brief Affecte une fonction de transformation du paramètre.
121 * Pour l'instant, il s'agit juste d'un coefficient multiplicatif.
122 * Il n'est appliqué que pour les paramètre réels.
123 * La chaîne \a str doit pouvoir être convertie en un réel.
124 */
125 virtual void setTransformParamFunction(const String& str) =0;
126
127 //! Fonction de transformation du paramètre
128 virtual String transformParamFunction() const =0;
129
130 /*!
131 * \brief Vérifie la validité de la fonction.
132 * \retval true si la fonction est valide,
133 * \retval false sinon.
134 */
135 virtual bool checkIfValid() const =0;
136
137 /*!
138 * \brief Positionne la Valeur du coefficient multiplicateur du deltat.
139 *
140 * Ce coefficient, 0.0 par défaut est utilisé pour les fonctions
141 * qui prennent en paramètre le temps physique. Dans ce cas,
142 * la fonction utilise comme paramètre le temps courant global
143 * auquel est ajouté le pas de temps courant global multiplié
144 * par ce coefficient.
145 */
146 virtual void setDeltatCoef(Real v) =0;
147
148 //! Valeur du coefficient multiplicateur du deltat
149 virtual Real deltatCoef() const =0;
150
151 public:
152
153 //! Valeur \a v de l'option pour le paramètre \a param.
154 virtual void value(Real param,Real& v) const =0;
155
156 //! Valeur \a v de l'option pour le paramètre \a param.
157 virtual void value(Real param,Integer& v) const =0;
158
159 //! Valeur \a v de l'option pour le paramètre \a param.
160 virtual void value(Real param,bool& v) const =0;
161
162 //! Valeur \a v de l'option pour le paramètre \a param.
163 virtual void value(Real param,String& v) const =0;
164
165 //! Valeur \a v de l'option pour le paramètre \a param.
166 virtual void value(Real param,Real3& v) const =0;
167
168 //! Valeur \a v de l'option pour le paramètre \a param.
169 virtual void value(Integer param,Real& v) const =0;
170
171 //! Valeur \a v de l'option pour le paramètre \a param.
172 virtual void value(Integer param,Integer& v) const =0;
173
174 // Valeur \a v de l'option pour le paramètre \a param.
175 virtual void value(Integer param,bool& v) const =0;
176
177 //! Valeur \a v de l'option pour le paramètre \a param.
178 virtual void value(Integer param,String& v) const =0;
179
180 //! Valeur \a v de l'option pour le paramètre \a param.
181 virtual void value(Integer param,Real3& v) const =0;
182};
183
184/*---------------------------------------------------------------------------*/
185/*---------------------------------------------------------------------------*/
186
187} // End namespace Arcane
188
189/*---------------------------------------------------------------------------*/
190/*---------------------------------------------------------------------------*/
191
192#endif
Déclarations des types généraux de Arcane.
#define ARCCORE_DECLARE_REFERENCE_COUNTED_INCLASS_METHODS()
Macro pour déclarer les méthodes virtuelles gérant les compteurs de référence.
virtual void setName(const String &new_name)=0
Positionne le nom de la fonction en new_name.
virtual void value(Integer param, String &v) const =0
Valeur v de l'option pour le paramètre param.
virtual ~ICaseFunction()=default
Libère les ressources.
virtual void setValueType(eValueType type)=0
Positionne le type des valeurs de la fonction.
virtual Real deltatCoef() const =0
Valeur du coefficient multiplicateur du deltat.
virtual void value(Real param, Integer &v) const =0
Valeur v de l'option pour le paramètre param.
eParamType
Type d'un paramètre d'une fonction.
eValueType
Type d'une valeur d'une fonction.
virtual String transformParamFunction() const =0
Fonction de transformation du paramètre.
virtual void value(Real param, String &v) const =0
Valeur v de l'option pour le paramètre param.
virtual String name() const =0
nom de la fonction
virtual bool checkIfValid() const =0
Vérifie la validité de la fonction.
virtual void setTransformValueFunction(const String &str)=0
Affecte une fonction de transformation de la valeur. Pour l'instant, il s'agit juste d'un coefficient...
virtual void setDeltatCoef(Real v)=0
Positionne la Valeur du coefficient multiplicateur du deltat.
virtual void value(Real param, Real &v) const =0
Valeur v de l'option pour le paramètre param.
virtual void value(Real param, Real3 &v) const =0
Valeur v de l'option pour le paramètre param.
virtual void value(Integer param, Real3 &v) const =0
Valeur v de l'option pour le paramètre param.
virtual eValueType valueType() const =0
Type des valeurs de la fonction.
virtual String transformValueFunction() const =0
Retourne la fonction de transformation de la valeur.
virtual eParamType paramType() const =0
Type du paramètre de la fonction.
virtual void value(Integer param, Real &v) const =0
Valeur v de l'option pour le paramètre param.
virtual void setParamType(eParamType type)=0
Positionne le type de paramètre de la fonction.
virtual void value(Real param, bool &v) const =0
Valeur v de l'option pour le paramètre param.
virtual void setTransformParamFunction(const String &str)=0
Affecte une fonction de transformation du paramètre. Pour l'instant, il s'agit juste d'un coefficient...
virtual void value(Integer param, Integer &v) const =0
Valeur v de l'option pour le paramètre param.
Classe gérant un vecteur de réel de dimension 3.
Definition Real3.h:132
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-