16#include <Transport_Interfaces_FT_Disc.h>
17#include <Dirichlet_paroi_fixe.h>
18#include <Fluide_Diphasique.h>
19#include <Champ_Face_VDF.h>
20#include <Champ_Face_VDF.h>
21#include <Champ_Uniforme.h>
22#include <Probleme_base.h>
23#include <distances_VDF.h>
24#include <Domaine_Cl_VDF.h>
33 int ndeb, nfin, elem, ori, l_unif;
34 double norm_tau, u_etoile, norm_v = 0, dist, val0, val1, val2, d_visco = 0, visco_ph0 = 1.;
37 const Champ_Face_VDF& vit = *
this;
40 const IntVect& orientation = domaine_VDF.
orientation();
41 const Equation_base& eqn_hydr =
equation();
44 const Fluide_Diphasique& le_fluide = ref_cast(Fluide_Diphasique, eqn_hydr.
milieu());
51 const double delta_nu = tab_visco_ph1(0, 0) - tab_visco_ph0(0, 0);
54 const Domaine_Cl_dis_base& domaine_Cl_dis_base = eqn_hydr.
domaine_Cl_dis();
56 const Transport_Interfaces_FT_Disc& eqn_interf = ref_cast(Transport_Interfaces_FT_Disc, eqn_trans);
59 if (sub_type(Champ_Uniforme,ch_visco_cin_ph1) && sub_type(Champ_Uniforme, ch_visco_cin_ph0))
61 visco_ph0 = std::max(tab_visco_ph0(0, 0), DMINFLOAT);
69 Cerr <<
"Negative viscosity !!!" << finl;
73 DoubleTab yplus_faces(1, 1);
74 int yplus_already_computed = 0;
76 const RefObjU& modele_turbulence = eqn_hydr.
get_modele(TURBULENCE);
77 if (modele_turbulence && sub_type(Modele_turbulence_hyd_base, modele_turbulence.
valeur()))
79 const Modele_turbulence_hyd_base& mod_turb = ref_cast(Modele_turbulence_hyd_base, modele_turbulence.
valeur());
80 const Turbulence_paroi_base& loipar = mod_turb.
loi_paroi();
83 yplus_already_computed = 1;
86 for (
int n_bord = 0; n_bord < domaine_VDF.
nb_front_Cl(); n_bord++)
90 if (sub_type(Dirichlet_paroi_fixe, la_cl.valeur()))
92 const Front_VF& le_bord = ref_cast(Front_VF, la_cl->frontiere_dis());
96 for (
int num_face = ndeb; num_face < nfin; num_face++)
99 if (face_voisins(num_face, 0) != -1)
100 elem = face_voisins(num_face, 0);
102 elem = face_voisins(num_face, 1);
104 if (yplus_already_computed)
107 y_plus(elem) = yplus_faces(num_face);
113 ori = orientation(num_face);
114 norm_v = norm_2D_vit(vit.
valeurs(), elem, ori, domaine_VDF, val0);
118 ori = orientation(num_face);
119 norm_v = norm_3D_vit(vit.
valeurs(), elem, ori, domaine_VDF, val1, val2);
128 d_visco = visco_ph0 + indic(elem) * delta_nu;
130 d_visco = (tab_visco_ph0.
nb_dim() == 1 ? (tab_visco_ph0(elem) + indic(elem) * delta_nu) : (tab_visco_ph0(elem, 0) + indic(elem) * delta_nu));
133 norm_tau = d_visco * norm_v / dist;
135 u_etoile = sqrt(norm_tau);
136 y_plus(elem) = dist * u_etoile / d_visco;
DoubleTab & valeurs() override
Surcharge Champ_base::valeurs() Renvoie le tableau des valeurs.
const Domaine_VDF & domaine_vdf() const override
void calcul_y_plus_diphasique(DoubleTab &, const Domaine_Cl_VDF &)
DoubleTab & valeurs() override
Renvoie le tableau des valeurs du champ au temps courant.
const Cond_lim & les_conditions_limites(int) const
Renvoie la i-ieme condition aux limites.
double dist_norm_bord_axi(int num_face) const
int orientation(int) const override
inline DoubleVect& Domaine_VDF::porosite_face() {
double dist_norm_bord(int num_face) const override
int nb_faces_tot() const
renvoie le nombre total de faces.
int face_voisins(int num_face, int i) const
renvoie l'element voisin de numface dans la direction i.
virtual const Milieu_base & milieu() const =0
virtual const RefObjU & get_modele(Type_modele type) const
virtual Domaine_Cl_dis_base & domaine_Cl_dis()
Renvoie le domaine des conditions aux limite discretisee associee a l'equation.
Probleme_base & probleme()
Renvoie le probleme associe a l'equation.
const Fluide_Incompressible & fluide_phase(int la_phase) const
const Champ_Don_base & viscosite_cinematique() const
int num_premiere_face() const
const Turbulence_paroi_base & loi_paroi() const
const Equation_base & equation() const
Renvoie la reference sur l'equation pointe par MorEqn::mon_equation.
virtual const Equation_base & equation(int) const =0
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
_TYPE_ local_min_vect(Mp_vect_options opt=VECT_REAL_ITEMS) const
const Objet_U & valeur() const
const Champ_Inc_base & inconnue() const override
const DoubleVect & tab_d_plus() const