16#include <Modele_turbulence_hyd_K_Omega.h>
17#include <Navier_Stokes_Turbulent.h>
18#include <Op_Diff_K_Omega_VDF_base.h>
19#include <Fluide_Dilatable_base.h>
20#include <Operateur_base.h>
21#include <Probleme_base.h>
22#include <Champ_P0_VDF.h>
23#include <Perf_counters.h>
34 iter->associer_champ_convecte_ou_inc(
equation().inconnue(),
nullptr);
35 iter->set_name_champ_inco(
equation().inconnue().
le_nom().getString());
36 iter->set_convective_op_pb_type(
false , 0 );
70 Cerr <<
"Bad equation type, a Transport_K_Omega type is needed." << finl;
102 Cerr<<
" erreur dans Op_Diff_K_Omega_VDF_base::associer_diffusivite ... cas non prevu "<<finl;
132 const auto& tab1=matrice.
get_tab1();
135 const IntTab& face_voisins = iter->domaine().face_voisins();
145 int nb_cl=les_cl.size();
146 for (
int num_cl=0; num_cl<nb_cl; num_cl++)
149 const Cond_lim& la_cl = les_cl[num_cl];
151 int nbfaces = la_front_dis.
nb_faces();
153 int nfin = ndeb + nbfaces;
156 for (
int num_face=ndeb; num_face<nfin; num_face++)
158 int elem= face_voisins(num_face,0);
159 if (elem==-1) elem= face_voisins(num_face,1);
161 for (
int comp=0; comp<nb_comp; comp++)
164 int idiag = tab1[elem*nb_comp+comp]-1;
167 int nbvois = tab1[elem*nb_comp+1+comp] - tab1[elem*nb_comp+comp];
168 for (
int k=1; k < nbvois; k++) coeff[idiag+k]=0;
170 secmem(elem,comp)=val(elem,comp);
177 Cerr<<
" erreur dans Op_Diff_K_Omega_VDF_base::modifier_pour_Cl ... cas non prevu "<<finl;
186 Matrice_Morse *mat = matrices.count(nom_inco) ? matrices.at(nom_inco) :
nullptr, mat2;
195 Matrice_Morse* mat = matrices.count(nom_inco) ? matrices.at(nom_inco) :
nullptr;
198 if(mat) iter->ajouter_contribution(inco, *mat);
200 iter->ajouter(inco,secmem);
class Champ_Fonc_base Base class of fields that are functions of a calculated quantity
DoubleTab & valeurs() override
Returns the array of field values at the current time.
class Champ_base This class is the base of the fields hierarchy.
class Cond_lim Generic class used to represent any class
class Conds_lim This class represents a vector of boundary conditions.
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.
int_t nb_elem_tot() const
class Domaine_Cl_dis_base Domaine_Cl_dis_base objects represent discretized boundary conditions
const Cond_lim & les_conditions_limites(int) const
Returns the i-th boundary condition.
const Domaine & domaine() const
Class defining operators and methods for all reading operation in an input flow (file,...
virtual const Champ_Inc_base & inconnue() const =0
virtual Domaine_Cl_dis_base & domaine_Cl_dis()
Returns the discretized boundary condition domain associated with the equation.
Domaine_dis_base & domaine_dis()
Returns the discretized domain associated with the equation.
void associer(const Champ_base &diffu)
const Champ_base & diffusivite() const
const Champ_Fonc_base & diffusivite_turbulente() const
void associer_diff_turb(const Champ_Fonc_base &diffu)
void associer_tab_F1(const DoubleTab &tabF1)
void associer_Sigma_K_Omega(double Sigma_K, double Sigma_Omega)
void raise_is_SST_or_BSL()
void associer_mvolumique(const Champ_base &mvol)
void initialize_tab_F1(const int nb_elem_tot)
void associer_Sigma_K_Omega_SST(double Sigma_K1, double Sigma_K2, double Sigma_Omega1, double Sigma_Omega2)
const Nom & le_nom() const override
Returns the name of the field.
Base class for an incompressible fluid and its properties:
int num_premiere_face() const
Matrice_Morse class - Represents a (sparse) matrix M, not necessarily square,.
const auto & get_tab1() const
int nb_colonnes() const override
Return local number of columns (=size on the current proc).
virtual const Champ_base & masse_volumique() const
Returns the mass density of the medium (const version).
Classe Modele_turbulence_hyd_K_Omega Cette classe represente le modele de turbulence (k,...
const DoubleTab & get_tabF1() const
Returns the blending table F1 for SST.
const Transport_K_Omega_base & get_eq_transport() const override
bool is_SST_or_BSL() const
Classe Modele_turbulence_hyd_RANS_K_Omega_base Classe de base des modeles de type RANS_komega.
const double & get_Sigma_Omega1() const
const double & get_Sigma_K() const
const double & get_Sigma_K1() const
const double & get_Sigma_Omega2() const
const double & get_Sigma_K2() const
const double & get_Sigma_Omega() const
Base class for the turbulence model hierarchy for Navier-Stokes equations.
const Turbulence_paroi_base & loi_paroi() const
const Champ_Fonc_base & viscosite_turbulente() const
const Equation_base & equation() const
Returns the reference to the equation pointed to by MorEqn::mon_equation.
Navier-Stokes equation for a viscous incompressible fluid (div U = 0) with turbulence modelling.
const Modele_turbulence_hyd_base & modele_turbulence() const
class Nom: a character string for naming TRUST objects.
virtual int debute_par(const char *const n) const
const std::string & getString() 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.
void ajouter_blocs(matrices_t matrices, DoubleTab &secmem, const tabs_t &semi_impl) const override
void dimensionner_blocs(matrices_t matrices, const tabs_t &semi_impl) const override
void associer_diffusivite(const Champ_base &ch_diff) override
virtual void mettre_a_jour_diffusivite() const
const Champ_Fonc_base & diffusivite_turbulente() const
const Champ_base & diffusivite() const override
void completer() override
Associates the operator with the domaine_dis, the domaine_Cl_dis, and the unknown of its equation.
void modifier_pour_Cl(Matrice_Morse &, DoubleTab &) const override
DOES NOTHING - to override in derived classes.
void associer_diffusivite_turbulente()
void modifier_pour_Cl(const Domaine_VDF &, const Domaine_Cl_VDF &, Matrice_Morse &, DoubleTab &) const
void dimensionner(const Domaine_VDF &, const Domaine_Cl_VDF &, Matrice_Morse &, const bool) const
virtual void completer()
Associates the operator with the domaine_dis, the domaine_Cl_dis, and the unknown of its equation.
static void exit(int exit_code=-1)
Exit routine for TRUST within a Kokkos region.
Base class for output streams.
const Modele_turbulence_hyd_2_eq_base & modele_turbulence() const
Renvoie le modele de turbulence associe a l'equation.
Classe Transport_K_Omega_base Classe de base pour les equations.
const Champ_Inc_base & inconnue() const override
Renvoie le champ inconnue de l'equation.
classe Transport_K_Omega Cette classe represente l'equation de transport de l'energie cinetique
Base class for the hierarchy of wall-law models computing turbulent quantities near walls....