16#include <Paroi_Cisaillement_Imp_VEF.h>
17#include <Champ_P1NC.h>
18#include <Fluide_base.h>
19#include <Champ_Uniforme.h>
20#include <Dirichlet_paroi_fixe.h>
21#include <Modele_turbulence_hyd_base.h>
56 calculer_hyd_commun();
62 calculer_hyd_commun();
68 calculer_hyd_commun();
72int Paroi_Cisaillement_Imp_VEF::calculer_hyd_commun()
76 const Equation_base& eqn_hydr = mon_modele_turb_hyd->equation();
80 const DoubleTab& tab_visco = ch_visco_cin.
valeurs();
81 const Domaine& domaine = domaine_VEF.
domaine();
83 const DoubleTab& xv = domaine_VEF.
xv();
98 visco = std::max(tab_visco(0,0),DMINFLOAT);
107 Cerr <<
"In Paroi_Cisaillement_Imp_VEF::calculer_hyd_commun : visco = " << tab_visco.
local_min_vect() <<
" <= 0 ? " << finl;
118 for (n_bord=0; n_bord<nb_bords; n_bord++)
124 const Cond_lim& la_cl = le_dom_Cl_dis_->les_conditions_limites(n_bord);
125 if (sub_type(Dirichlet_paroi_fixe,la_cl.valeur()) )
127 const Front_VF& le_bord = ref_cast(Front_VF,la_cl->frontiere_dis());
128 const IntTab& elem_faces = domaine_VEF.
elem_faces();
132 for (
int num_face=ndeb; num_face<nfin; num_face++)
134 int elem = face_voisins(num_face,0);
135 if (sub_type(Champ_P1NC,eqn_hydr.
inconnue()))
141 for (
int i=0; i<nfac; i++)
144 int face = elem_faces(elem,i);
147 v[dim] += vit(face,dim);
148 pos[dim] += xv(face,dim);
154 v[dim]/=Compte_face ;
155 pos[dim]/=Compte_face ;
161 scal+=v[dim]*face_normale(num_face,dim);
164 surf+=carre(face_normale(num_face,dim));
167 v[dim]-=face_normale(num_face,dim)*scal;
172 norm_v+=carre(v[dim]);
177 Cerr <<
" On ne sait traiter que des champs P1NC dans Paroi_Cisaillement_Imp_VEF::calculer_hyd" << finl;
181 double dist=distance_face_elem(num_face,elem,domaine_VEF);
185 d_visco = tab_visco[elem];
193 double norm_tau=ustar*ustar;
194 norm_tau/=(norm_v+DMINFLOAT);
classe Champ_Don_base classe de base des Champs donnes (non calcules)
DoubleTab & valeurs() override
Surcharge Champ_base::valeurs() Renvoie le tableau des valeurs.
DoubleTab & valeurs() override
Renvoie le tableau des valeurs du champ au temps courant.
int nb_faces_elem(int=0) const
Renvoie le nombre de face de type i des elements geometriques constituants le domaine.
virtual double face_normales(int face, int comp) const
double xv(int num_face, int k) const
int elem_faces(int i, int j) const
renvoie le numero de le ieme face de la maille num_elem la facon dont ces faces sont numerotees est
int premiere_face_int() const
une face est interne ssi elle separe deux elements.
int face_voisins(int num_face, int i) const
renvoie l'element voisin de numface dans la direction i.
const Domaine & domaine() const
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 Champ_Inc_base & inconnue() const =0
classe Fluide_base Cette classe represente un d'un fluide incompressible ainsi que
const Champ_Don_base & viscosite_cinematique() const
int num_premiere_face() const
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.
Ne pas utiliser cette classe.
int calculer_hyd_BiK(DoubleTab &, DoubleTab &) override
int init_lois_paroi() override
int calculer_hyd(DoubleTab &) override
Entree & lire_donnees(Entree &s)
double calculer_utau(const DoubleVect &pos, double norm_v, double d_visco)
CLASS: Paroi_hyd_base_VEF Classe de base des lois de paroi hydraulique en VEF.
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
Classe de base des flux de sortie.
_TYPE_ local_min_vect(Mp_vect_options opt=VECT_REAL_ITEMS) const
void resize(_SIZE_, RESIZE_OPTIONS opt=RESIZE_OPTIONS::COPY_INIT)
DoubleTab Cisaillement_paroi_