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);
classe Champ_Fonc_base Classe de base des champs qui sont fonction d'une grandeur calculee
classe Champ_base Cette classe est la base de la hierarchie des champs.
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
Classe Modele_turbulence_hyd_base Cette classe sert de base a la hierarchie des classes.
const Champ_Fonc_base & viscosite_turbulente() const
int sauvegarder(Sortie &os) const override
NE FAIT RIEN.
OBS_PTR(Champ_Fonc_base) la_viscosite_turbulente
void set_param(Param &) const override
int reprendre(Entree &is) override
NE FAIT RIEN.
bool initTimeStep(double dt) override
A surcharger dans les classes derivees qui possedent une ou des equations Appeler preparer_pas_de_tem...
int lire_motcle_non_standard(const Motcle &, Entree &) override
Lecture des parametres de type non simple d'un objet_U a partir d'un flot d'entree.
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
Complete le modele de turbulence: met a jour des references de l'objet.
void get_noms_champs_postraitables(Noms &nom, Option opt=NONE) const override
int preparer_calcul() override
NE FAIT RIEN.
void imprimer(Sortie &) const override
Effectue l'impression si cela est necessaire.
void mettre_a_jour(double) override
Classe Modele_turbulence_scal_base Cette classe represente un modele de turbulence pour une equation ...
int lire_motcle_non_standard(const Motcle &, Entree &) override
Lecture des parametres de type non simple d'un objet_U a partir d'un flot d'entree.
void get_noms_champs_postraitables(Noms &nom, Option opt=NONE) const override
int reprendre(Entree &) override
NE FAIT RIEN.
bool has_champ(const Motcle &nom, OBS_PTR(Champ_base) &ref_champ) const override
virtual int preparer_calcul()
NE FAIT RIEN.
void a_faire(Sortie &) const
Effectue l'ecriture d'une identite si cela est necessaire.
Une chaine de caractere (Nom) en majuscules.
Un tableau d'objets de la classe Motcle.
int search(const Motcle &t) const
class Nom Une chaine de caractere pour nommer les objets de TRUST
const std::string & getString() const
Un tableau de chaine de caracteres (VECT(Nom)).
const Nom & que_suis_je() const
renvoie la chaine identifiant la classe.
virtual Entree & readOn(Entree &)
Lecture d'un Objet_U sur un flot d'entree Methode a surcharger.
virtual const Nom & le_nom() const
Donne le nom de l'Objet_U Methode a surcharger : renvoie "neant" dans cette implementation.
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
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.
classe Probleme_base C'est un Probleme_U qui n'est pas un couplage.
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()
Mise a jour du temps courant (t+=dt) et du nombre de pas de temps effectue (nb_pas_dt_++).
Classe de base des flux de sortie.
void jump(Entree &) override
const Objet_U & valeur() const