16#include <Modele_turbulence_scal_Fluctuation_Temperature.h>
17#include <Probleme_base.h>
18#include <Modele_turbulence_hyd_base.h>
50 Cerr <<
"Lecture des parametres du modele de fluctuation thermique. Il doit y avoir deux types d'equation." << finl;
54 les_mots[0] =
"Transport_Fluctuation_Temperature";
55 les_mots[1] =
"Transport_Flux_Chaleur_Turbulente";
57 int rang=les_mots.
search(mot);
62 Cerr <<
"Lecture de l'equation Transport_Fluctuation_Temperature" << finl;
63 eqn_transport_Fluctu_Temp.associer_modele_turbulence(*
this);
64 s >> eqn_transport_Fluctu_Temp;
69 Cerr <<
"Lecture de l'equation Transport_Flux_Chaleur_Turbulente" << finl;
70 eqn_transport_Flux_Chaleur_Turb.associer_modele_turbulence(*
this);
71 s >> eqn_transport_Flux_Chaleur_Turb;
84 la_viscosite_turbulente = visc_turb;
91 eqn_transport_Fluctu_Temp.preparer_calcul();
92 eqn_transport_Flux_Chaleur_Turb.preparer_calcul();
94 mettre_a_jour(eqn_transport_Fluctu_Temp.schema_temps().temps_courant());
100 bool ok=eqn_transport_Fluctu_Temp.initTimeStep(dt);
101 ok = ok && eqn_transport_Flux_Chaleur_Turb.initTimeStep(dt);
108 const DoubleTab& nu_t = la_viscosite_turbulente->valeurs();
109 double temps = la_viscosite_turbulente->temps();
113 constexpr double Prdt_turbulent = 0.9;
115 assert(alpha_t.
size()==nu_t.
size() &&
"Les DoubleTab des champs diffusivite_turbulente et viscosite_turbulente doivent avoir le meme nombre de valeurs nodales");
117 int n = alpha_t.
size();
118 for (
int i=0; i<n; i++)
119 alpha_t[i] = nu_t[i]/Prdt_turbulent;
131 eqn_transport_Fluctu_Temp.domaine_Cl_dis().
mettre_a_jour(temps);
134 eqn_transport_Fluctu_Temp.mettre_a_jour(temps);
135 eqn_transport_Fluctu_Temp.controler_grandeur();
139 eqn_transport_Flux_Chaleur_Turb.domaine_Cl_dis().
mettre_a_jour(temps);
142 eqn_transport_Flux_Chaleur_Turb.mettre_a_jour(temps);
143 eqn_transport_Flux_Chaleur_Turb.controler_grandeur();
149 eqn_transport_Fluctu_Temp.completer();
150 eqn_transport_Flux_Chaleur_Turb.completer();
162 bytes += eqn_transport_Fluctu_Temp.sauvegarder(os);
163 bytes += eqn_transport_Flux_Chaleur_Turb.sauvegarder(os);
173 eqn_transport_Fluctu_Temp.reprendre(is);
174 eqn_transport_Flux_Chaleur_Turb.reprendre(is);
181 DoubleTrav tab_bidon;
182 is >> bidon >> bidon;
197 if (eqn_transport_Fluctu_Temp.
has_champ(nom, ref_champ))
200 if (eqn_transport_Flux_Chaleur_Turb.
has_champ(nom, ref_champ))
211 if (eqn_transport_Fluctu_Temp.has_champ(nom))
214 if (eqn_transport_Flux_Chaleur_Turb.has_champ(nom))
227 if (eqn_transport_Fluctu_Temp.has_champ(nom, ref_champ))
230 if (eqn_transport_Flux_Chaleur_Turb.has_champ(nom, ref_champ))
233 throw std::runtime_error(std::string(
"Field ") + nom.
getString() + std::string(
" not found !"));
240 eqn_transport_Fluctu_Temp.get_noms_champs_postraitables(nom,opt);
242 eqn_transport_Flux_Chaleur_Turb.get_noms_champs_postraitables(nom,opt);
class Champ_Fonc_base Base class of fields that are functions of a calculated quantity
class Champ_base This class is the base of the fields hierarchy.
Class defining operators and methods for all reading operation in an input flow (file,...
virtual const RefObjU & get_modele(Type_modele type) const
bool has_champ(const Motcle &nom, OBS_PTR(Champ_base) &ref_champ) const override
Base class for the turbulence model hierarchy for Navier-Stokes equations.
const Champ_Fonc_base & viscosite_turbulente() const
int sauvegarder(Sortie &os) const override
Does nothing.
OBS_PTR(Champ_Fonc_base) la_viscosite_turbulente
void set_param(Param &) const override
int reprendre(Entree &is) override
Does nothing.
bool initTimeStep(double dt) override
To be overridden in derived classes that own one or more equations. Calls preparer_pas_de_temps on th...
int lire_motcle_non_standard(const Motcle &, Entree &) override
Reads non-simple-type parameters of an Objet_U from an input stream.
Champ_Fonc_base & calculer_diffusivite_turbulente()
const Champ_base & get_champ(const Motcle &nom) const override
void associer_viscosite_turbulente(const Champ_Fonc_base &)
bool has_champ(const Motcle &nom, OBS_PTR(Champ_base) &ref_champ) const override
void completer() override
Completes the turbulence model: updates object references.
void get_noms_champs_postraitables(Noms &nom, Option opt=NONE) const override
int preparer_calcul() override
Does nothing.
void imprimer(Sortie &) const override
Performs printing if necessary.
void mettre_a_jour(double) override
Base class for scalar turbulence models coupled to a Navier-Stokes convection-diffusion equation.
int lire_motcle_non_standard(const Motcle &, Entree &) override
Reads non-simple-type parameters of an Objet_U from an input stream.
void get_noms_champs_postraitables(Noms &nom, Option opt=NONE) const override
int reprendre(Entree &) override
Does nothing.
bool has_champ(const Motcle &nom, OBS_PTR(Champ_base) &ref_champ) const override
virtual int preparer_calcul()
Does nothing.
void a_faire(Sortie &) const
Writes an identity string to the output stream if necessary.
A character string (Nom) in uppercase.
An array of Motcle objects.
int search(const Motcle &t) const
class Nom: a character string for naming TRUST objects.
const std::string & getString() const
An array of character strings (VECT(Nom)).
const Nom & que_suis_je() const
Returns the string identifying the class.
virtual Entree & readOn(Entree &)
Reads an Objet_U from an input stream. Virtual method to override.
virtual const Nom & le_nom() const
Returns the name of the Objet_U. Virtual method to override: returns "neant" in this implementation.
virtual Sortie & printOn(Sortie &) const
Writes the object to an output stream. Virtual method to override.
Helper class to factorize the readOn method of Objet_U classes.
void ajouter_non_std(const char *keyword, const Objet_U *value, Param::Nature nat=Param::OPTIONAL)
Register a keyword handled by Objet_U::lire_motcle_non_standard.
class Probleme_base It is a Probleme_U that is not a coupling.
virtual const Equation_base & equation(int) const =0
virtual int faire_un_pas_de_temps_eqn_base(Equation_base &)=0
virtual int mettre_a_jour()
Updates the current time (t+=dt) and the number of time steps performed (nb_pas_dt_++).
Base class for output streams.
void jump(Entree &) override
const Objet_U & valeur() const