16#include <Modele_turbulence_scal_Fluctuation_Temperature_W_Bas_Re.h>
17#include <Modele_turbulence_hyd_K_Eps_Bas_Reynolds.h>
18#include <Probleme_base.h>
19#include <Champ_Uniforme.h>
33 eqn.typer(
"Transport_Fluctuation_Temperature_W_Bas_Re");
34 eqn_transport_Fluctu_Temp = ref_cast(Transport_Fluctuation_Temperature_W_Bas_Re, eqn.valeur());
40 param.
ajouter_non_std(
"Transport_Fluctuation_Temperature_W_Bas_Re",
this);
47 Cerr <<
"Lecture des parametres du modele de fluctuation thermique." << finl;
51 les_mots[0] =
"Transport_Fluctuation_Temperature_W_Bas_Re";
52 les_mots[1] =
"Modele_Fonc_Bas_Reynolds_Thermique";
54 int rang=les_mots.
search(mot);
59 Cerr <<
"Lecture de l'equation Transport_Fluctuation_Temperature_W_Bas_Re" << finl;
60 eqn_transport_Fluctu_Temp->associer_modele_turbulence(*
this);
61 s >> eqn_transport_Fluctu_Temp.valeur();
66 Cerr <<
"Lecture du modele bas reynolds associe " << finl;
68 mon_modele_fonc->discretiser();
69 Cerr <<
"mon_modele_fonc.que_suis_je() " << mon_modele_fonc->que_suis_je() << finl;
83 eqn_transport_Fluctu_Temp->preparer_calcul();
94 const DoubleTab& nu_t = la_viscosite_turbulente->valeurs();
95 double temps = la_viscosite_turbulente->temps();
96 const DoubleTab& chFluctuTemp = eqn_transport_Fluctu_Temp->inconnue().valeurs();
97 const Domaine_dis_base& le_dom_dis = eqn_transport_Fluctu_Temp->domaine_dis();
101 const RefObjU& modele_turbulence = eqn_hydr.
get_modele(TURBULENCE);
110 const DoubleTab& tab_visco = ch_visco_cin.
valeurs();
111 const DoubleTab& tab_diffu = ch_diffu.
valeurs();
116 visco = std::max(tab_visco(0,0),DMINFLOAT);
121 Cerr <<
"La viscosite doit etre uniforme !!!!" << finl;
127 diffu = std::max(tab_diffu(0,0),DMINFLOAT);
132 Cerr <<
"La diffusivite doit etre uniforme !!!!" << finl;
137 DoubleTab Flambda(nb_elem);
138 mon_modele_fonc->Calcul_Flambda( Flambda,le_dom_dis,K_eps_Bas_Re,chFluctuTemp,visco,diffu);
142 static const double C_Lambda = 0.11;
143 int n= alpha_t.
size();
144 if (nu_t.
size() != n)
146 Cerr <<
"Les DoubleTab des champs diffusivite_turbulente et viscosite_turbulente" << finl;
147 Cerr <<
"doivent avoir le meme nombre de valeurs nodales" << finl;
151 for (
int i=0; i<n; i++)
153 if ( (K_eps_Bas_Re(i,1) > 1.e-10 ) && (chFluctuTemp(i,1) > 1.e-10) && (K_eps_Bas_Re(i,0) > 1.e-10 ) && (chFluctuTemp(i,0) > 1.e-10))
154 alpha_t[i] =C_Lambda*Flambda(i)*K_eps_Bas_Re(i,0)*sqrt((K_eps_Bas_Re(i,0)/K_eps_Bas_Re(i,1))*(chFluctuTemp(i,0)/(2*chFluctuTemp(i,1))));
157 alpha_t[i] = 0.0000001;
170 eqn_transport_Fluctu_Temp->completer();
182 eqn_transport_Fluctu_Temp->domaine_Cl_dis().
mettre_a_jour(temps);
184 eqn_transport_Fluctu_Temp->mettre_a_jour(temps);
185 eqn_transport_Fluctu_Temp->controler_grandeur();
196 if (mon_modele_fonc->has_champ(nom, ref_champ))
208 if (mon_modele_fonc->has_champ(nom))
222 if (mon_modele_fonc->has_champ(nom, ref_champ))
225 throw std::runtime_error(std::string(
"Field ") + nom.
getString() + std::string(
" not found !"));
233 mon_modele_fonc->get_noms_champs_postraitables(nom,opt);
classe Champ_Don_base classe de base des Champs donnes (non calcules)
DoubleTab & valeurs() override
Surcharge Champ_base::valeurs() Renvoie le tableau des valeurs.
classe Champ_Fonc_base Classe de base des champs qui sont fonction d'une grandeur calculee
DoubleTab & valeurs() override
Renvoie le tableau des valeurs du champ au temps courant.
classe Champ_base Cette classe est la base de la hierarchie des champs.
classe Domaine_dis_base Cette classe est la base de la hierarchie des domaines discretisees.
Class defining operators and methods for all reading operation in an input flow (file,...
classe Equation_base Le role d'une equation est le calcul d'un ou plusieurs champs....
virtual const Milieu_base & milieu() const =0
virtual const RefObjU & get_modele(Type_modele type) const
classe Fluide_base Cette classe represente un d'un fluide incompressible ainsi que
const Champ_Don_base & viscosite_cinematique() const
virtual const Champ_Don_base & diffusivite() const
Renvoie la diffusivite du milieu.
static void typer_lire_Modele_Fonc_Bas_Reynolds_Thermique(OWN_PTR(Modele_Fonc_Bas_Reynolds_Thermique_Base)&, const Equation_base &, Entree &)
class Modele_turbulence_hyd_K_Eps_Bas_Reynolds
const Transport_K_Eps_Bas_Reynolds & get_eq_transport() const override
Classe Modele_turbulence_hyd_base Cette classe sert de base a la hierarchie des classes.
const Champ_Fonc_base & viscosite_turbulente() const
void mettre_a_jour(double) override
void get_noms_champs_postraitables(Noms &nom, Option opt=NONE) const override
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() override
void completer() override
Complete le modele de turbulence: met a jour des references de l'objet.
bool has_champ(const Motcle &nom, OBS_PTR(Champ_base) &ref_champ) const override
void set_param(Param &) const override
const Champ_base & get_champ(const Motcle &nom) const override
int preparer_calcul() override
NE FAIT RIEN.
bool has_champ(const Motcle &nom, OBS_PTR(Champ_base) &ref_champ) const override
void associer_viscosite_turbulente(const Champ_Fonc_base &)
void get_noms_champs_postraitables(Noms &nom, Option opt=NONE) const override
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.
virtual void set_param(Param &) const override
virtual int preparer_calcul()
NE FAIT RIEN.
Une chaine de caractere (Nom) en majuscules.
Un tableau d'objets de la classe Motcle.
int search(const Motcle &t) const
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
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
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.
_SIZE_ dimension(int d) const
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.