16#include <Paroi_std_scal_hyd_VDF.h>
17#include <Paroi_std_hyd_VDF.h>
18#include <Champ_Uniforme.h>
19#include <Champ_Uniforme_Morceaux.h>
20#include <Champ_Fonc_Tabule.h>
21#include <Champ_Fonc_Tabule_P0_VDF.h>
22#include <Domaine_Cl_VDF.h>
23#include <Dirichlet_paroi_fixe.h>
24#include <Dirichlet_paroi_defilante.h>
25#include <Probleme_base.h>
26#include <Fluide_base.h>
27#include <Modele_turbulence_hyd_base.h>
28#include <Convection_Diffusion_Concentration.h>
29#include <Modele_turbulence_scal_base.h>
30#include <Constituant.h>
68 param.lire_avec_accolades_depuis(s);
88 DoubleTab& alpha_t = diffusivite_turb.
valeurs();
93 const DoubleTab& tab_visco = ch_visco_cin.
valeurs();
99 visco = std::max(tab_visco(0,0),DMINFLOAT);
107 Cerr <<
"In Paroi_std_scal_hyd_VDF::calculer_scal : visco = " << tab_visco.
local_min_vect() <<
" <= 0 ? " << finl;
118 const RefObjU& modele_turbulence_hydr = eqn_hydr.
get_modele(TURBULENCE);
121 const DoubleVect& tab_u_star = loi.
tab_u_star();
123 const IntVect& orientation = domaine_VDF.
orientation();
135 double d_alpha = alpha.
valeurs()(0,0);
137 for (
int nc=0; nc<alpha.
valeurs().line_size(); nc++)
139 if (d_alpha!=alpha.
valeurs()(0,nc))
141 Cerr <<
"Error!" << finl;
142 Cerr <<
"Law of the wall are not implemented yet for constituants with different diffusion coefficients." << finl;
151 double d_alpha = alpha.
valeurs()(elem,0);
152 for (
int nc=0; nc<alpha.
valeurs().line_size(); nc++)
154 if (d_alpha!=alpha.
valeurs()(elem,nc))
156 Cerr <<
"Error!" << finl;
157 Cerr <<
"Law of the wall are not implemented yet for constituants with different diffusion coefficients." << finl;
166 for (
int n_bord=0; n_bord<domaine_VDF.
nb_front_Cl(); n_bord++)
176 const Cond_lim& la_cl = le_dom_Cl_dis_->les_conditions_limites(n_bord);
183 int nfin = ndeb + le_bord.
nb_faces();
186 int boundary_index=-1;
188 boundary_index=n_bord;
189 assert(boundary_index >= 0);
191 for (
int num_face=ndeb; num_face<nfin; num_face++)
193 int elem = face_voisins(num_face,0);
195 elem = face_voisins(num_face,1);
201 double u_star = tab_u_star(num_face);
202 double d_alpha = (alpha_uniforme ? alpha.
valeurs()(0,0) : alpha.
valeurs()(elem,0) );
204 int global_face=num_face;
207 if (u_star == 0 || d_alpha == 0)
215 double d_visco = (l_unif ? visco : tab_visco(elem,0));
216 double Pr = d_visco/d_alpha;
217 double y_plus = dist*u_star/d_visco;
228 int ori = orientation(num_face);
229 double y0=0.5*domaine_VDF.
dim_elem(elem,ori)*u_star/d_visco;
class Champ_Don_base base class of Given Fields (not calculated)
DoubleTab & valeurs() override
Overrides Champ_base::valeurs() Returns the array of values.
class Champ_Fonc_base Base class of fields that are functions of a calculated quantity
class Cond_lim Generic class used to represent any class
Convection_Diffusion_Concentration Special case of Convection_Diffusion_std.
Convection_Diffusion_std This class is the base for equations modelling the transport.
Dirichlet_paroi_defilante Imposes the wall velocity in an equation of type Navier_Stokes.
Dirichlet_paroi_fixe Represents a fixed wall in a Navier-Stokes type equation.
double dist_norm_bord_axi(int num_face) const
Returns the normal distance for a boundary face (cylindrical coordinates).
double dim_elem(int, int) const
int orientation(int) const override
inline DoubleVect& Domaine_VDF::porosite_face() {
double dist_norm_bord(int num_face) const override
Returns the normal distance for a boundary face (Cartesian coordinates).
int face_voisins(int num_face, int i) const
Returns the neighbouring element of num_face in direction i.
const Front_VF & front_VF(int i) const
Class defining operators and methods for all reading operation in an input flow (file,...
class Equation_base The role of an equation is the calculation of one or more fields....
virtual const Milieu_base & milieu() const =0
virtual const RefObjU & get_modele(Type_modele type) const
Probleme_base & probleme()
Returns the problem associated with the equation.
Base class for an incompressible fluid and its properties:
const Champ_Don_base & viscosite_cinematique() const
int num_local_face(const int) const
int num_premiere_face() const
const Nom & le_nom() const override
Returns the name of the geometric boundary.
cette classe permet de specifier des options a la loi de paroi standard.
virtual const Champ_Don_base & diffusivite() const
Returns the diffusivity of the medium (const version).
Base class for the turbulence model hierarchy for Navier-Stokes equations.
const Turbulence_paroi_base & loi_paroi() const
const Nom & que_suis_je() const
Returns the string identifying the class.
virtual Entree & readOn(Entree &)
Reads an Objet_U from an input stream. Virtual method to override.
virtual const Nom & le_nom() const
Returns the name of the Objet_U. Virtual method to override: returns "neant" in this implementation.
virtual Sortie & printOn(Sortie &) const
Writes the object to an output stream. Virtual method to override.
int init_lois_paroi() override
classe Paroi_std_scal_hyd_VDF
int init_lois_paroi_scalaire()
int init_lois_paroi() override
int calculer_scal(Champ_Fonc_base &) override
virtual const Equation_base & equation(int) const =0
static void exit(int exit_code=-1)
Exit routine for TRUST within a Kokkos region.
Base class for output streams.
_TYPE_ local_min_vect(Mp_vect_options opt=VECT_REAL_ITEMS) const
const Objet_U & valeur() const
Base class for the hierarchy of wall-law models computing turbulent quantities near walls....
const DoubleVect & tab_u_star() const
DoubleVects equivalent_distance_
KOKKOS_INLINE_FUNCTION double T_plus(double y_plus, double Pr, double Prdt_sur_kappa)