132 const DoubleTab& temper,
133 const DoubleTab& u_teta,
134 DoubleTab& uteta_T)
const
136 int nb_faces= domaine_VDF.
nb_faces();
137 const Domaine& le_dom=domaine_VDF.
domaine();
139 IntTrav numfa(nb_faces_elem);
140 const IntTab& les_elem_faces = domaine_VDF.
elem_faces();
141 DoubleTrav grad_T(nb_faces);
142 int nb_elem = domaine_VDF.
nb_elem();
146 const IntTab& face_voisins = domaine_VDF.
face_voisins();
156 for (face=premiere_face_int; face<nb_faces; face++)
158 n0 = face_voisins(face,0);
159 n1 = face_voisins(face,1);
161 grad_T[face] = (temper[n1] - temper[n0])/dist;
164 for (face=premiere_face_int; face<nb_faces; face++)
166 n0 = face_voisins(face,0);
167 n1 = face_voisins(face,1);
169 grad_T[face] = (temper[n1] - temper[n0])/dist;
174 for (
int n_bord=0; n_bord<domaine_VDF.
nb_front_Cl(); n_bord++)
184 int nfin = ndeb + le_bord.
nb_faces();
185 for (face=ndeb; face<nfin; face++)
187 double T_imp = la_cl_diri.
val_imp(face-ndeb);
188 n0 = face_voisins(face,0);
189 n1 = face_voisins(face,1);
197 grad_T[face] = (T_imp-temper[n0])/dist;
201 grad_T[face] = (temper[n1]-T_imp)/dist;
208 for (
int elem=0; elem<nb_elem; elem++)
210 for (
int i=0; i<nb_faces_elem; i++)
211 numfa[i] = les_elem_faces(elem,i);
213 uteta_T[elem] = (( 0.5*(u_teta[numfa[0]]*porosite_face(numfa[0]) + u_teta[numfa[
dimension]]*porosite_face(numfa[
dimension]))) * (0.5*(grad_T[numfa[0]]*porosite_face(numfa[0]) + grad_T[numfa[
dimension]]*porosite_face(numfa[
dimension]))))
214 + (( 0.5*(u_teta[numfa[1]]*porosite_face(numfa[1]) + u_teta[numfa[
dimension+1]]*porosite_face(numfa[
dimension+1])))*(0.5*(grad_T[numfa[1]]*porosite_face(numfa[1]) + grad_T[numfa[
dimension+1]]*porosite_face(numfa[
dimension+1]))));
217 uteta_T[elem] += ((0.5*(u_teta[numfa[2]]*porosite_face(numfa[2]) + u_teta[numfa[5]]*porosite_face(numfa[5])))
218 *(0.5*(grad_T[numfa[2]]*porosite_face(numfa[2])
219 + grad_T[numfa[5]]*porosite_face(numfa[5]))));
229 const Domaine& le_dom=domaine_VDF.
domaine();
231 const RefObjU& modele_turbulence_hydr = eq_hydraulique->get_modele(TURBULENCE);
235 const DoubleTab& K_eps_Bas_Re = mon_eq_transport_K_Eps_Bas_Re.
inconnue().
valeurs();
236 const DoubleTab& scalaire = eq_thermique->inconnue().valeurs();
237 const DoubleTab& vit = eq_hydraulique->inconnue().valeurs();
239 const DoubleTab& Fluctu_Temperature = mon_eq_transport_Fluctu_Temp->inconnue().valeurs();
243 const DoubleTab& Flux_Chaleur_Turb = mon_eq_transport_Flux_Chaleur_Turb.
inconnue().
valeurs();
244 const DoubleVect& volumes = domaine_VDF.
volumes();
246 const DoubleTab& g = gravite->valeurs();
248 int nb_elem = domaine_VDF.
nb_elem();
255 DoubleTrav uteta_T(nb_elem_tot);
256 DoubleTrav P(nb_elem_tot);
257 DoubleTrav G(nb_elem_tot);
273 const DoubleTab& tab_beta = ch_beta.
valeurs();
278 IntTrav numfa(nb_faces_elem);
280 const IntTab& les_elem_faces = domaine_VDF.
elem_faces();
281 for (
int elem=0; elem<nb_elem; elem++)
283 for (
int i=0; i<nb_faces_elem; i++)
284 numfa[i] = les_elem_faces(elem,i);
286 coef(0) = 0.5*(Flux_Chaleur_Turb(numfa[0])*porosite_surf(numfa[0])
288 coef(1) = 0.5*(Flux_Chaleur_Turb(numfa[1])*porosite_surf(numfa[1])
292 G[elem] = tab_beta(0,0)*(g(0,0)*coef(0) + g(0,1)*coef(1));
296 coef(2) = 0.5*(Flux_Chaleur_Turb(numfa[2])*porosite_surf(numfa[2])
297 + Flux_Chaleur_Turb(numfa[5])*porosite_surf(numfa[5]));
298 G[elem] = tab_beta(0,0)*(g(0,0)*coef(0) + g(0,1)*coef(1) + g(0,2)*coef(2));
307 IntTrav numfa(nb_faces_elem);
308 const IntTab& les_elem_faces = domaine_VDF.
elem_faces();
311 for (
int elem=0; elem<nb_elem; elem++)
313 for (
int i=0; i<nb_faces_elem; i++)
314 numfa[i] = les_elem_faces(elem,i);
316 coef(0) = 0.5*(Flux_Chaleur_Turb(numfa[0])*porosite_surf(numfa[0])
318 coef(1) = 0.5*(Flux_Chaleur_Turb(numfa[1])*porosite_surf(numfa[1])
322 G[elem] = tab_beta(elem)*(g(0)*coef(0) + g(1)*coef(1));
326 coef(2) = 0.5*(Flux_Chaleur_Turb(numfa[2])*porosite_surf(numfa[2])
327 + Flux_Chaleur_Turb(numfa[5])*porosite_surf(numfa[5]));
328 G[elem] = tab_beta(elem)*(g(0)*coef(0) + g(1)*coef(1) + g(2)*coef(2));
332 for (
int elem=0; elem<nb_elem; elem++)
335 resu(elem,0) += -2*(uteta_T(elem)+Fluctu_Temperature(elem,1))*volumes(elem)*porosite_vol(elem);
338 if (K_eps_Bas_Re(elem,0)>1.e-10)
339 A=-
Ca*Fluctu_Temperature(elem,1)*K_eps_Bas_Re(elem,1)/K_eps_Bas_Re(elem,0);
341 if (Fluctu_Temperature(elem,0)>1.e-10)
342 B=-
Cb*(Fluctu_Temperature(elem,1)*Fluctu_Temperature(elem,1))/Fluctu_Temperature(elem,0);
344 if (Fluctu_Temperature(elem,0)>1.e-10)
345 C=-
Cc*(Fluctu_Temperature(elem,1)/Fluctu_Temperature(elem,0))*uteta_T(elem);
347 if (K_eps_Bas_Re(elem,0)>1.e-10)
348 D=-
Cd*(P(elem)+G(elem))*Fluctu_Temperature(elem,1)/K_eps_Bas_Re(elem,0);
354 resu(elem,1) += (A+B+C+D)*volumes(elem)*porosite_vol(elem);
int nb_faces_elem(int=0) const
Renvoie le nombre de face de type i des elements geometriques constituants le domaine.
classe Domaine_Cl_dis_base Les objets Domaine_Cl_dis_base representent les conditions aux limites
const Cond_lim & les_conditions_limites(int) const
Renvoie la i-ieme condition aux limites.
int nb_faces() const
renvoie le nombre global de faces.
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.
classe Domaine_dis_base Cette classe est la base de la hierarchie des domaines discretisees.