14#include "arcane/CaseFunction.h"
16#include "arcane/utils/ITraceMng.h"
17#include "arcane/utils/FatalErrorException.h"
18#include "arcane/utils/NotImplementedException.h"
19#include "arcane/utils/ValueConvert.h"
20#include "arcane/utils/TraceInfo.h"
22#include "arcane/MathUtils.h"
24#include "arcane/ISubDomain.h"
47: m_trace(info.m_trace_mng)
49, m_param_type(info.m_param_type)
50, m_value_type(info.m_value_type)
51, m_transform_param_func(info.m_transform_param_func)
52, m_transform_value_func(info.m_transform_value_func)
53, m_deltat_coef(info.m_deltat_coef)
85 if (new_type==m_param_type)
87 m_param_type = new_type;
96 if (new_type==m_value_type)
98 m_value_type = new_type;
111 m_transform_value_func = str;
120 m_transform_param_func = str;
136_applyValueComulTransform(Real v,Real comul)
const
140Integer CaseFunction::
141_applyValueComulTransform(Integer v,Integer comul)
const
146_applyValueComulTransform(Real3 v,Real3 comul)
const
151_applyValueComulTransform(
const String& v,
const String& comul)
const
154 ARCANE_UNUSED(comul);
158_applyValueComulTransform(
bool v,
bool comul)
const
161 ARCANE_UNUSED(comul);
168template<
typename ValueType>
void CaseFunction::
169_applyValueTransform2(ValueType& value)
const
173 if (m_transform_value_func.
null())
175 ValueType comul = ValueType();
176 bool is_bad = builtInGetValue(comul,m_transform_value_func);
178 ARCANE_FATAL(
"Can not convert 'comul' value '{0}'",m_transform_value_func);
179 value = _applyValueComulTransform(
value,comul);
186_applyValueTransform(Real& value)
const
188 _applyValueTransform2(
value);
191_applyValueTransform(Real3& value)
const
193 _applyValueTransform2(
value);
196_applyValueTransform(Integer& value)
const
198 _applyValueTransform2(
value);
201_applyValueTransform(String& value)
const
203 _applyValueTransform2(
value);
206_applyValueTransform(
bool& value)
const
208 _applyValueTransform2(
value);
214template<
typename ParamType>
void CaseFunction::
215_applyParamTransform2(ParamType& param)
const
219 if (m_transform_param_func.
null())
222 ParamType comul = ParamType();
223 bool is_bad = builtInGetValue(comul,m_transform_param_func);
225 ARCANE_FATAL(
"Can not convert 'comul-x' value '{0}'",m_transform_param_func);
226 if (math::isZero(comul))
227 ARCANE_FATAL(
"The parameter 'comul-x' can not be zero");
228 param = param / comul;
235_applyParamTransform(Real& value)
const
237 _applyParamTransform2(
value);
244_applyParamTransform(Integer& value)
const
246 _applyParamTransform2(
value);
252Ref<ICaseFunction> CaseFunction::
255 return Arccore::makeRefFromInstance<ICaseFunction>(
this);
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
Informations pour construire une instance de CaseFunction.
ARCANE_DEPRECATED_260 CaseFunctionBuildInfo(ISubDomain *sd, const String &name)
void setTransformParamFunction(const String &str) override
Affecte une fonction de transformation du paramètre. Pour l'instant, il s'agit juste d'un coefficient...
bool checkIfValid() const override
Vérifie la validité de la fonction.
void setParamType(eParamType type) override
Positionne le type de paramètre de la fonction.
void setName(const String &new_name) override
Positionne le nom de la fonction en new_name.
CaseFunction(const CaseFunctionBuildInfo &info)
Construit une fonction du jeu de données.
void setValueType(eValueType type) override
Positionne le type des valeurs de la fonction.
void setTransformValueFunction(const String &str) override
Affecte une fonction de transformation de la valeur. Pour l'instant, il s'agit juste d'un coefficient...
eParamType
Type d'un paramètre d'une fonction.
eValueType
Type d'une valeur d'une fonction.
virtual void value(Real param, Real &v) const =0
Valeur v de l'option pour le paramètre param.
Interface du gestionnaire d'un sous-domaine.
Chaîne de caractères unicode.
bool null() const
Retourne true si la chaîne est nulle.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-