16#include <Source_Transport_K_Eps_Realisable_VEF_Face.h>
17#include <Modele_turbulence_hyd_K_Eps_Realisable.h>
18#include <Schema_Temps_base.h>
19#include <Champ_Uniforme.h>
20#include <Fluide_base.h>
21#include <Champ_P1NC.h>
22#include <Domaine_VEF.h>
43 return ref_cast(Modele_turbulence_hyd_K_Eps_Realisable, eqn_keps_Rea->modele_turbulence()).associe_modele_fonction();
46void Source_Transport_K_Eps_Realisable_VEF_Face::calculer_terme_production_real(
const DoubleTab& vitesse_filtree,
const DoubleTab& visco_turb, DoubleTrav& P)
const
48 const DoubleTab& K_eps_Rea = eqn_keps_Rea->inconnue().valeurs();
49 const bool deactivate_production_limiter=
true;
53void Source_Transport_K_Eps_Realisable_VEF_Face::fill_resu_real(
const int num_face,
const DoubleVect& vol_ent,
const DoubleTrav& P,
const DoubleTab& CC1,
const DoubleTab& S,
const double visco,
54 DoubleTab& resu)
const
56 const DoubleTab& K_eps_Rea = eqn_keps_Rea->inconnue().valeurs();
57 const Modele_turbulence_hyd_K_Eps_Realisable& mod_turb = ref_cast(Modele_turbulence_hyd_K_Eps_Realisable, eqn_keps_Rea->modele_turbulence());
60 resu(num_face, 0) += (P(num_face) - K_eps_Rea(num_face, 1)) * vol_ent(num_face);
62 if ((K_eps_Rea(num_face, 0) >= LeK_MIN) && (K_eps_Rea(num_face, 1) >= LeEPS_MIN))
63 resu(num_face, 1) += K_eps_Rea(num_face, 1) * (CC1(num_face) * S(num_face) - (
C2 * K_eps_Rea(num_face, 1) / (K_eps_Rea(num_face, 0) + sqrt(visco * K_eps_Rea(num_face, 1))))) * vol_ent(num_face);
76 const DoubleTab& vit = eq_hydraulique->inconnue().valeurs();
77 const double epsilon_minimum = eqn_keps_Rea->modele_turbulence().get_EPS_MIN();
79 const DoubleTab& tab_visco = ch_visco_cin.
valeurs();
84 visco_tab = tab_visco(0, 0);
85 const int idt = eq_hydraulique->schema_temps().nb_pas_dt();
90 const DoubleTab& K_eps_Rea = eqn_keps_Rea->inconnue().valeurs();
91 mon_modele_fonc.
Contributions_Sources_Paroi(domaine_dis_keps, zcl_keps, vit, K_eps_Rea, epsilon_minimum, visco_tab, visco_turb, tab_paroi, idt);
96void Source_Transport_K_Eps_Realisable_VEF_Face::fill_coeff_matrice(
const int face,
const DoubleVect& porosite_face,
const DoubleVect& volumes_entrelaces,
const double visco,
Matrice_Morse& matrice)
const
98 const DoubleTab& K_eps_Rea = eqn_keps_Rea->inconnue().valeurs();
102 if ((K_eps_Rea(face, 0) >= LeK_MIN) && (K_eps_Rea(face, 1) >= LeEPS_MIN))
104 const double coef_k = porosite_face(face) * volumes_entrelaces(face) * K_eps_Rea(face, 1) / (K_eps_Rea(face, 0) + sqrt(visco * K_eps_Rea(face, 1)));
105 matrice(face * 2, face * 2) += coef_k;
106 const double coef_eps =
C2 * K_eps_Rea(face, 1) / (K_eps_Rea(face, 0) + sqrt(visco * K_eps_Rea(face, 1))) * volumes_entrelaces(face) * porosite_face(face);
107 matrice(face * 2 + 1, face * 2 + 1) += coef_eps;
void mettre_a_jour(double temps)
DoubleTab & calculer_terme_production_K(const Domaine_VEF &, const Domaine_Cl_VEF &, DoubleTab &, const DoubleTab &, const DoubleTab &, const DoubleTab &, const int &interpol_visco, const double &limiteur, const bool &deactivate_production_limiter=false, const double &cst_production_limiter=0.) const
Compute the production term for the turbulent kinetic energy.
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 Domaine_Cl_dis_base Les objets Domaine_Cl_dis_base representent les conditions aux limites
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 Fluide_base Cette classe represente un d'un fluide incompressible ainsi que
Classe Matrice_Morse Represente une matrice M (creuse), non necessairement carree.
virtual void Contributions_Sources_Paroi(const Domaine_dis_base &domaine_dis, const Domaine_Cl_dis_base &domaine_Cl_dis, const DoubleTab &vitesse, const DoubleTab &K_Eps, const double EPS_MIN, const DoubleTab &visco_tab, const DoubleTab &visco_turb, const DoubleTab &tab_paroi, const int idt)=0
double get_EPS_MIN() const
class Modele_turbulence_hyd_K_Eps_Realisable
const Turbulence_paroi_base & loi_paroi() const
const Champ_Fonc_base & viscosite_turbulente() const
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.
classe Probleme_base C'est un Probleme_U qui n'est pas un couplage.
Classe de base des flux de sortie.
void mettre_a_jour(double temps) override
DOES NOTHING - to override in derived classes.
DoubleTab & ajouter(DoubleTab &) const override
void associer_pb(const Probleme_base &) override
DoubleTab & ajouter_keps_real(DoubleTab &) const
virtual const DoubleTab & get_visc_turb() const
classe Source_base Un objet Source_base est un terme apparaissant au second membre d'une
virtual void associer_pb(const Probleme_base &)=0
_SIZE_ dimension_tot(int) const override
const DoubleTab & Cisaillement_paroi() const
double _coefficient_limiteur
int _interpolation_viscosite_turbulente