16#include <Modele_turbulence_hyd_LES_base.h>
17#include <Modifier_pour_fluide_dilatable.h>
18#include <Discretisation_base.h>
19#include <Equation_base.h>
20#include <Probleme_base.h>
21#include <Milieu_base.h>
24#include <TRUSTArray_kokkos.tpp>
75 Cerr <<
"The characteristic length of the subgrid scale model is calculated with the method : " <<
methode_ << finl;
93 if ((nom_loipar ==
"loi_standard_hydr_VEF" || nom_loipar ==
"loi_standard_hydr_VDF") && nom_eq ==
"Navier_Stokes_FT_Disc" && nom_mil ==
"Fluide_Diphasique")
96 if (discr ==
"VEF" || discr ==
"VEFPreP1B")
98 loipar_.typer(
"loi_standard_hydr_diphasique_VEF");
99 Cerr <<
"Associating the two-phase hydraulic wall turbulence model : loi_standard_hydr_diphasique_VEF ..." << finl;
101 else if (discr ==
"VDF")
103 loipar_.typer(
"loi_standard_hydr_diphasique_VDF");
104 Cerr <<
"Associating the two-phase hydraulic wall turbulence model : loi_standard_hydr_diphasique_VDF ..." << finl;
108 Cerr <<
"Unknown discretization type !!!";
111 loipar_->associer_modele(*
this);
118 Cerr <<
"Modele_turbulence_hyd_LES_base::completer()" << finl;
124 DoubleVect& k = energie_cinetique_turb_->valeurs();
125 DoubleTab& visco_turb = la_viscosite_turbulente_->valeurs();
130 const int nb_elem = visco_turb.
size();
131 if (k.
size() != nb_elem)
133 Cerr <<
"Size error for the array containing the values of the turbulent kinetic energy." << finl;
137 CDoubleArrView l_v =
l_.view_ro();
138 CDoubleTabView visco_turb_v = visco_turb.
view_ro();
139 DoubleArrView k_v = k.view_rw();
140 Kokkos::parallel_for(start_gpu_timer(__KERNEL_NAME__), nb_elem, KOKKOS_LAMBDA(
143 k_v(elem)=visco_turb_v(elem, 0)*visco_turb_v(elem, 0)/(Cq*Cq*l_v(elem)*l_v(elem));
145 end_gpu_timer(__KERNEL_NAME__);
147 double temps = mon_equation_->inconnue().temps();
148 energie_cinetique_turb_->changer_temps(temps);
Class defining operators and methods for all reading operation in an input flow (file,...
virtual const Milieu_base & milieu() const =0
const Discretisation_base & discretisation() const
Renvoie la discretisation associee a l'equation.
classe Milieu_base Cette classe est la base de la hierarchie des milieux (physiques)
Classe Modele_turbulence_hyd_0_eq_base Classe de base des modeles a 0 equation.
void mettre_a_jour(double) override
Classe Modele_turbulence_hyd_LES_base Classe representant le modele de turbulence sous maille pour le...
void completer() override
void verifie_loi_paroi_diphasique()
Modele_turbulence_hyd_LES_base()
virtual void calculer_longueurs_caracteristiques()=0
int preparer_calcul() override
Prepare le calcul.
void set_param(Param ¶m) const override
void calculer_energie_cinetique_turb() override
virtual int preparer_calcul()
Prepare le calcul.
virtual void set_param(Param ¶m) const override
Equation_base & equation()
Renvoie l'equation associee au modele de turbulence.
class Nom Une chaine de caractere pour nommer les objets de TRUST
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.
Helper class to factorize the readOn method of Objet_U classes.
void ajouter(const char *keyword, const int *value, Param::Nature nat=Param::OPTIONAL)
Register an integer parameter.
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
Classe de base des flux de sortie.
std::enable_if_t< is_default_exec_space< EXEC_SPACE >, ConstView< _TYPE_, _SHAPE_ > > view_ro() const