Arcane  v3.14.10.0
Documentation développeur
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/*---------------------------------------------------------------------------*/
41class ARCANE_CORE_EXPORT CaseFunctionBuildInfo
42{
43 public:
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
67};
68
69/*---------------------------------------------------------------------------*/
70/*---------------------------------------------------------------------------*/
77class ARCANE_CORE_EXPORT CaseFunction
78: public ICaseFunction
80{
82
83 public:
84
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
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)
Fonction du jeu de données.
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.
eParamType m_param_type
Type du paramètre (x)
String m_name
Nom de la fonction.
eValueType m_value_type
Type de la valeur (y)
String m_transform_param_func
Fonction de transformation du paramètre.
String name() const override
nom de la fonction
Real deltatCoef() const override
Valeur du coefficient multiplicateur du deltat.
String m_transform_value_func
Fonction de transformation de la valeur.
ITraceMng * m_trace
Gestionnaire de traces.
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.
Interface d'une fonction du jeu de données.
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
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Classe gérant un vecteur de réel de dimension 3.
Definition Real3.h:132
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 -*-