Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
CaseFunction.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 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/* CaseFunction.h (C) 2000-2022 */
9/* */
10/* Classe gérant une fonction du jeu de données. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CASEFUNCTION_H
13#define ARCANE_CASEFUNCTION_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18#include "arccore/base/Ref.h"
19
20#include "arcane/utils/String.h"
21
22#include "arcane/ICaseFunction.h"
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27namespace Arcane
28{
29
30class ISubDomain;
31
32/*---------------------------------------------------------------------------*/
33/*---------------------------------------------------------------------------*/
34/*!
35 * \brief Informations pour construire une instance de \a CaseFunction.
36 *
37 * \param name nom de la fonction
38 * \param param_type type du paramètre de la fonction
39 * \param curve_type type de la courbe de la fonction
40 */
41class ARCANE_CORE_EXPORT CaseFunctionBuildInfo
42{
43 public:
44 //! \deprecated Utiliser CaseFunctionBuildInfo(ITraceMng* tm,const String& name)
45 ARCANE_DEPRECATED_260 CaseFunctionBuildInfo(ISubDomain* sd,const String& name);
47 : m_trace_mng(tm),
48 m_param_type(ICaseFunction::ParamUnknown),
49 m_value_type(ICaseFunction::ValueUnknown),
50 m_deltat_coef(0.0)
51 {}
54 {
55 m_name = name;
56 }
57
58 public:
59
60 ITraceMng* m_trace_mng; //!< Gestionnaire de trace associé.
61 String m_name; //!< Nom de la fonction
62 ICaseFunction::eParamType m_param_type; //!< Type du paramètre (x)
63 ICaseFunction::eValueType m_value_type; //!< Type de la valeur (y)
64 String m_transform_param_func; //!< Fonction de transformation X
65 String m_transform_value_func; //!< Fonction de transformation Y
66 Real m_deltat_coef; //!< Coefficient multiplicateur du deltat pour les tables en temps
67};
68
69/*---------------------------------------------------------------------------*/
70/*---------------------------------------------------------------------------*/
71/*!
72 * \internal
73 * \brief Fonction du jeu de données.
74 *
75 * \ingroup CaseOption
76 */
77class ARCANE_CORE_EXPORT CaseFunction
78: public ICaseFunction
80{
82
83 public:
84
85 //! Construit une fonction du jeu de données.
86 explicit CaseFunction(const CaseFunctionBuildInfo& info);
87 ~CaseFunction() override;
88
89 public:
90
91 String name() const override { return m_name; }
92 void setName(const String& new_name) override;
93
94 eParamType paramType() const override{ return m_param_type; }
95 void setParamType(eParamType type) override;
96
97 eValueType valueType() const override { return m_value_type; }
98 void setValueType(eValueType type) override;
99
100 void setTransformValueFunction(const String& str) override;
101 String transformValueFunction() const override { return m_transform_value_func; }
102
103 void setTransformParamFunction(const String& str) override;
104 String transformParamFunction() const override { return m_transform_param_func; }
105
106 void setDeltatCoef(Real v) override { m_deltat_coef = v; }
107 Real deltatCoef() const override { return m_deltat_coef; }
108
109 bool checkIfValid() const override;
110
111 Ref<ICaseFunction> toReference();
112 ITraceMng* traceMng() const { return m_trace; }
113
114 public:
115
116 private:
117
118 ITraceMng* m_trace; //!< Gestionnaire de traces
119 String m_name; //!< Nom de la fonction
120 eParamType m_param_type; //!< Type du paramètre (x)
121 eValueType m_value_type; //!< Type de la valeur (y)
122 String m_transform_param_func; //!< Fonction de transformation du paramètre
123 String m_transform_value_func; //!< Fonction de transformation de la valeur
124 Real m_deltat_coef;
125
126 private:
127
128 protected:
129
130 template<typename ParamType> void _applyParamTransform2(ParamType& param) const;
131 Real _applyValueComulTransform(Real v,Real comul) const;
132 Integer _applyValueComulTransform(Integer v,Integer comul) const;
133 String _applyValueComulTransform(const String& v,const String& comul) const;
134 bool _applyValueComulTransform(bool v,bool comul) const;
135 Real3 _applyValueComulTransform(Real3 v,Real3 comul) const;
136
137 void _applyValueTransform(Real& value) const;
138 void _applyValueTransform(Integer& value) const;
139 void _applyValueTransform(String& value) const;
140 void _applyValueTransform(Real3& value) const;
141 void _applyValueTransform(bool& value) const;
142 template<typename ValueType> void _applyValueTransform2(ValueType& value) const;
143 void _applyParamTransform(Real& value) const;
144 void _applyParamTransform(Integer& value) const;
145};
146
147/*---------------------------------------------------------------------------*/
148/*---------------------------------------------------------------------------*/
149
150} // End namespace Arcane
151
152/*---------------------------------------------------------------------------*/
153/*---------------------------------------------------------------------------*/
154
155#endif
#define ARCCORE_DEFINE_REFERENCE_COUNTED_INCLASS_METHODS()
Macro pour définir les méthodes gérant les compteurs de référence.
Gestion des références à une classe C++.
Informations pour construire une instance de CaseFunction.
ITraceMng * m_trace_mng
Gestionnaire de trace associé.
String m_name
Nom de la fonction.
String m_transform_value_func
Fonction de transformation Y.
Real m_deltat_coef
Coefficient multiplicateur du deltat pour les tables en temps.
ICaseFunction::eValueType m_value_type
Type de la valeur (y)
String m_transform_param_func
Fonction de transformation X.
ICaseFunction::eParamType m_param_type
Type du paramètre (x)
String transformValueFunction() const override
Retourne la fonction de transformation de la valeur.
void setDeltatCoef(Real v) override
Positionne la Valeur du coefficient multiplicateur du deltat.
String name() const override
nom de la fonction
Real deltatCoef() const override
Valeur du coefficient multiplicateur du deltat.
String transformParamFunction() const override
Fonction de transformation du paramètre.
eValueType valueType() const override
Type des valeurs de la fonction.
eParamType paramType() const override
Type du paramètre de la fonction.
eParamType
Type d'un paramètre d'une fonction.
eValueType
Type d'une valeur d'une fonction.
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:74
Interface du gestionnaire de traces.
Implémentation thread-safe d'un compteur de référence.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-