16#include <Modele_turbulence_scal_Fluctuation_Temperature_W.h>
17#include <Modele_turbulence_hyd_K_Eps_Bas_Reynolds.h>
18#include <Probleme_base.h>
38 eqn.typer(
"Transport_Fluctuation_Temperature_W");
39 eqn_transport_Fluctu_Temp = ref_cast(Transport_Fluctuation_Temperature_W, eqn.valeur());
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_W";
56 int rang=les_mots.
search(mot);
61 Cerr <<
"Lecture de l'equation Transport_Fluctuation_Temperature_W" << finl;
62 eqn_transport_Fluctu_Temp->associer_modele_turbulence(*
this);
63 s >> eqn_transport_Fluctu_Temp.valeur();
68 Cerr <<
"Erreur a la lecture des donnees du modele de fluctuation thermique" << finl;
69 Cerr <<
"On attendait les motcles Transport_Fluctuation_Temperature_W au lieu de " << mot << finl;
79 la_viscosite_turbulente = visc_turb;
84 eqn_transport_Fluctu_Temp->preparer_calcul();
93 return eqn->initTimeStep(dt);
99 const DoubleTab& mu_t = la_viscosite_turbulente->valeurs();
100 double temps = la_viscosite_turbulente->temps();
101 const Champ_base& chFluctuTemp = eqn_transport_Fluctu_Temp->inconnue();
111 static const double C_Lambda = 0.11;
112 int n= alpha_t.
size();
113 if (mu_t.
size() != n)
115 Cerr <<
"Les DoubleTab des champs diffusivite_turbulente et viscosite_turbulente" << finl;
116 Cerr <<
"doivent avoir le meme nombre de valeurs nodales" << finl;
120 for (
int i=0; i<n; i++)
121 if ( (K_eps_Bas_Re(i,1) > 1.e-3 ) && (chFluctuTemp.
valeurs()(i,1) > 1.e-3) && (K_eps_Bas_Re(i,0) > 1.e-3 ) && (chFluctuTemp.
valeurs()(i,0) > 1.e-3))
122 alpha_t[i] =C_Lambda*K_eps_Bas_Re(i,0)*sqrt((K_eps_Bas_Re(i,0)/K_eps_Bas_Re(i,1))*(chFluctuTemp.
valeurs()(i,0)/(2*chFluctuTemp.
valeurs()(i,1))));
125 Cerr <<
" !!!! Eps ou EpsTeta est nul !!!! " << finl;
126 Cerr <<
" K = " << K_eps_Bas_Re(i,0) << finl;
127 alpha_t[i] = 0.0000001;
140 eqn_transport_Fluctu_Temp->domaine_Cl_dis().
mettre_a_jour(temps);
143 eqn_transport_Fluctu_Temp->mettre_a_jour(temps);
144 eqn_transport_Fluctu_Temp->controler_grandeur();
151 Cerr <<
"Dans Modele_turbulence_scal_Fluctuation_Temperature_W::completer()" << finl;
152 eqn_transport_Fluctu_Temp->completer();
158 Cerr <<
"Fin de Modele_turbulence_scal_Fluctuation_Temperature_W::completer()" << finl;
181 DoubleTrav tab_bidon;
182 is >> bidon >> bidon;
197 if (eqn->has_champ(nom, ref_champ))
208 if (eqn->has_champ(nom))
221 if (eqn->has_champ(nom, ref_champ))
224 throw std::runtime_error(std::string(
"Field ") + nom.
getString() + std::string(
" not found !"));
231 eqn->get_noms_champs_postraitables(nom,opt);
class Champ_Fonc_base Base class of fields that are functions of a calculated quantity
DoubleTab & valeurs() override
Returns the array of field values at the current time.
virtual DoubleTab & valeurs()=0
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,...
int reprendre(Entree &) override
We resume the unknown from an input stream.
virtual const RefObjU & get_modele(Type_modele type) const
int sauvegarder(Sortie &) const override
We save the unknown, then the source terms to an output stream.
class Modele_turbulence_hyd_K_Eps_Bas_Reynolds
const Transport_K_Eps_Bas_Reynolds & get_eq_transport() const override
Base class for the turbulence model hierarchy for Navier-Stokes equations.
const Champ_Fonc_base & viscosite_turbulente() const
virtual Champ_Fonc_base & calculer_diffusivite_turbulente()
bool initTimeStep(double dt) override
To be overridden in derived classes that own one or more equations. Calls preparer_pas_de_temps on th...
bool has_champ(const Motcle &nom, OBS_PTR(Champ_base) &ref_champ) const override
int lire_motcle_non_standard(const Motcle &, Entree &) override
Reads non-simple-type parameters of an Objet_U from an input stream.
const Champ_base & get_champ(const Motcle &nom) const override
void associer_viscosite_turbulente(const Champ_Fonc_base &)
void get_noms_champs_postraitables(Noms &nom, Option opt=NONE) const override
virtual Transport_Fluctuation_Temperature_W & equation_Fluctu()
int reprendre(Entree &is) override
Does nothing.
int sauvegarder(Sortie &os) const override
Does nothing.
int preparer_calcul() override
Does nothing.
void imprimer(Sortie &) const override
Performs printing if necessary.
void set_param(Param &) const override
void completer() override
Completes the turbulence model: updates object references.
void mettre_a_jour(double) override
Base class for scalar turbulence models coupled to a Navier-Stokes convection-diffusion equation.
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
static void exit(int exit_code=-1)
Exit routine for TRUST within a Kokkos region.
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
Classe Transport_K_Eps_base Classe de base pour les equations.
const Champ_Inc_base & inconnue() const override
Renvoie le champ inconnue de l'equation.