16#include <Cond_lim_omega_demi.h>
17#include <Echelle_temporelle_turbulente.h>
18#include <Taux_dissipation_turbulent.h>
19#include <Loi_paroi_adaptative.h>
20#include <Champ_Face_base.h>
21#include <Equation_base.h>
22#include <Probleme_base.h>
23#include <Domaine_VF.h>
41 param.ajouter(
"beta_k", &
beta_k_);
43 param.lire_avec_accolades_depuis(s);
45 le_champ_front.typer(
"Champ_front_vide");
53 Process::exit(
que_suis_je() +
" : you cannot define such a BC for tau equation, only for omega. Use scalaire_impose_paroi Champ_front_uniforme 1 0 for tau.");
68 const DoubleTab& u_tau = corr_loi_paroi.
get_tab(
"u_tau");
70 const int cnu = nu_visc.
dimension(0) == 1;
72 const int nf = la_frontiere_dis->frontiere().nb_faces();
73 const int f1 = la_frontiere_dis->frontiere().num_premiere_face();
74 const IntTab& f_e = domaine.face_voisins();
78 for (
int f = 0; f < nf; f++)
80 const int f_domaine = f + f1;
81 const int e_domaine = (f_e(f_domaine, 0) >= 0) ? f_e(f_domaine, 0) : f_e(f_domaine, 1) ;
82 const double y_loc = f_e(f_domaine, 0) >= 0 ? domaine.dist_face_elem0(f_domaine, e_domaine) : domaine.dist_face_elem1(f_domaine, e_domaine) ;
83 const double u_tau_loc = u_tau(f_domaine, n);
84 const double nu_visc_loc = nu_visc(!cnu * e_domaine, n);
86 d_(f, n) = std::max(0., 2. *
calc_omega(y_loc/2., u_tau_loc, nu_visc_loc) -
calc_omega(y_loc, u_tau_loc, nu_visc_loc));
88 d_.echange_espace_virtuel();
93 const double y_p = y * u_tau / visc;
94 const double w_vis = 6 * visc / (
beta_omega_ * y * y);
96 const double w_1 = w_vis + w_log;
97 const double w_2 = std::pow(std::pow(w_vis, 1.2) + std::pow(w_log, 1.2), 1/1.2);
98 const double blending = std::tanh(y_p/10*y_p/10*y_p/10*y_p/10);
100 return blending * w_1 + (1 - blending) * w_2 ;
DoubleTab & valeurs() override
Renvoie le tableau des valeurs du champ au temps courant.
Domaine_Cl_dis_base & domaine_Cl_dis()
Renvoie le domaine des conditions aux limites discretisee dont l'objet fait partie.
Classe Cond_lim_omega_demi.
virtual void completer() override
NE FAIT RIEN A surcharger dans les classes derivees.
void me_calculer() override
double calc_omega(const double y, const double u_tau, const double visc) const
classe Convection_diffusion_turbulence_multiphase Equation de transport des quantites turbulentes (k,...
Classe Dirichlet_loi_paroi Classe de base pour les valeurs impose pour une condition aux limites des ...
classe Echelle_temporelle_turbulente Equation de transport de l'echelle temporelle turbulente (modele...
Class defining operators and methods for all reading operation in an input flow (file,...
virtual const Champ_Inc_base & inconnue() const =0
Probleme_base & probleme()
Renvoie le probleme associe a l'equation.
classe Loi_paroi_adaptative correlation pour une loi de paroi adaptative qui calcule u_tau et du y_pl...
DoubleTab & get_tab(std::string str)
const Equation_base & equation() const
Renvoie la reference sur l'equation pointe par MorEqn::mon_equation.
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 Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
const Correlation_base & get_correlation(std::string nom_correlation) const
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
Classe de base des flux de sortie.
_SIZE_ dimension(int d) const
classe Taux_dissipation_turbulent Equation de transport du taux de dissipation turbulen (modele k-ome...